Skip to content

Exempt an Archived Repository From configure.sh's Label and Settings Checks #1671

Description

@ptr727

What

repo-config/configure.sh checks one repository whatever its registry status, so a fleet-wide loop over registry/repos.json reports a finding on each archived repository that no write can ever clear. GitHub answers HTTP 403: Repository was archived so is read-only on a label write, and no ordering or retry changes that.

Found while rolling the comments label out to the 21 live fleet repositories ahead of promotion PR #1669. The three archived entries, DiskSpeedTest, GEM-Echo-Server and GoogleTo1Password, refused the write, so labels.json declaring comments leaves all three permanently non-conformant on that assertion.

Decision (ptr727, 2026-09-17)

configure.sh reads the target's registry/repos.json status and exits early on status: "archived", reporting the repository as out of scope rather than as drift.

This asserts no new policy. spec/audit.py already treats an archived entry as known and out of scope by design (spec/audit.py:418), and each of the three registry entries already carries the driftNote "Archived on GitHub. [...] No further conformance work is expected while archived." Only configure.sh does not honor what the registry and the audit already say.

The two alternatives were declined. Documenting that a fleet loop filters on status before calling the script leaves the filtering to whoever writes the loop, which is how this finding appeared. Accepting three permanent findings trains a reader to ignore lines in the check's output.

Scope

  • repo-config/configure.sh: early exit on an archived status, on the check and apply paths alike, with a message that names the status as the reason.
  • Cover it wherever the script self-test suite reaches this script.
  • repo-config/README.md, where it documents what the check covers.

Not in scope: whether an archived repository keeps its registry entry. It does, because the fleet membership check reads it (#550).

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

    gateA rule with no mechanical check, or a check that misses a shapescriptA defect in hub tooling

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions