Skip to content

conformance: measure the dark-factory arrangement per repo — required checks, arming lane, gate_ready #389

Description

@bdelanghe

Step 4 of .github-private#913. Steps 1–3 put the pieces in place on 37 repos (required standard / test, allow_auto_merge, the auto-merge.yml caller, measured live on desk#84). Today the epic asserts that arrangement; the standard should measure it, per public repo, so a repo that falls out of it is a finding and not a memory.

What the snapshot gains

Per row, a dark_factory object read with the lane's own token:

  • required_checks — the required_status_checks contexts on the default branch, from GET /repos/{r}/rules/branches/{default} (public on public repos). Unreadable → a lane gap, never a silent empty list.
  • arming_laneauto-merge.yml if the repo carries the org caller on its default branch, else null; dependabot-auto-merge.yml reported beside it while it still exists (#929).
  • gate_ready — true only when standard / test and pr-claim / pr-claim are required and the arming lane is present. Three facts, all observed.

allow_auto_merge is not in this object: GitHub returns it only to an admin-rights caller, and the lane deliberately mints nothing. It is declared in infra github-admin/repositories.tf and applied there; the snapshot says so rather than guessing.

New findings (repo's, not the lane's)

  • arming-lane-absent — gated (standard / test required) but no arming lane: green waits for a person.
  • gate-absent — calls the standard but nothing on the default branch requires it: green gates nothing (the fail-open case #913 names).

Totals gain gate_ready; the summary line and the reader print it. desk's Repo health section picks it up in a later PR.

Expected on the first run: 37 gate_ready; the remaining callers land in gate-absent, which is the step-1 rollout's remaining denominator stated by the instrument rather than by hand.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions