Skip to content

[dev]: audit reusable-workflow pins that are not on main #775

Closed

Description

@ss-o

Your feedback for the existing codebase

Nothing stops a repository from pinning an organization reusable workflow to a commit that is not on this repository's main. In #774, twelve callers pinned commit-lint.yml to 64a427d, the pre-squash commit of #764; after the merge it was on no branch, and every Commit Lint run in those repositories ended in a startup failure with no jobs, so the required Policy checks never reported. The CI guidance requires full-SHA pins but does not say the SHA must be on main, and no audit checks it.

Acceptance criteria:

  • automation/governance/repo-settings-audit.rb gains --workflow-pins: for each repository it reads the top-level workflow files on the default branch, finds every z-shell/.github/.github/workflows/NAME@SHA pin, and reports a pin whose SHA the compare API does not place on main (identical or behind) as off_main, or as missing when the commit is not found; --fail-on-drift exits 1 on either. Tests cover extraction, both drift states, nested paths and the CLI.
  • The daily Community Health Audit runs with --workflow-pins.
  • The CI workflow contract says an organization reusable workflow is pinned only to a commit on main, and how to check it.

Contact Details

Not applicable: filed by a maintainer.

Activity

  1. added
    type:maintenanceNon-feature maintenance, cleanup, or org work.
    area:ciContinuous integration or GitHub Actions work.
    on Oct 9, 2026
  2. self-assigned this
    on Oct 9, 2026
  3. ss-o commented on Oct 9, 2026

    @ss-o
    MemberAuthor

    Project 28 triage. Values set on this new issue:

    • Item Type: CI. An audit check and CI guidance.
    • Impact: High. An off-branch pin blocks every pull request in the calling repository, as in [bug]: commit-lint callers pinned to 64a427d end in a startup failure #774.
    • Effort: S. One auditor option with tests, one workflow flag and one guidance line.
    • Priority: P2 - Medium. No pin is off main today; this keeps it that way.
    • Workstream: Automation. Shared CI.
    • Status: In Progress. The change is ready for a pull request.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:ciContinuous integration or GitHub Actions work.type:maintenanceNon-feature maintenance, cleanup, or org work.

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions