Skip to content

Batch 18: enforce REL-006 -- signing secrets never reach PR jobs (#462) - #469

Merged
zackees merged 1 commit into
mainfrom
feat/ci-lint-batch18
Oct 26, 2026
Merged

zackees merged 1 commit into
mainfrom
feat/ci-lint-batch18

Conversation

@zackees

@zackees zackees commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator

Selftest (with PyYAML): 1646 tests OK; local gate passed.

REL-006, partially enforced (#462; the issue stays open for obs-studio adopting the action)

New ci_lint/rules/macos_signing.py. A job is a signing job if it uses actions/app-signing-macos (local or zackees/ci.yml/...) or references one of the documented signing/notary secrets, directly or through the workflow-level env:.

  • A signing job in a pull_request_target workflow is a violation, whatever its if:.
  • In a pull_request/merge_group workflow:
    • with no if:, it is a violation;
    • with an if: that limits it to tag refs, release or workflow_dispatch, it passes;
    • with any other if: (including != 'pull_request'), it is needs_review.
  • Local reusable workflows are scanned using the calling job's if:, as GATE-012 does.
  • A signing job without environment: is needs_review, because the policy also allows repository-level secrets.

Still Candidate: checking the signing steps when a repo doesn't use the reference action, and detecting a published unsigned artifact.

Batch 18's other work landed as PRs in fleet repos, none merged by this change:

…#462)

Local-Gate: v1 tree=973a3d53f805f8eeb8c8bbfd9b25ecfaff4a3039 secs=140
@zackees
zackees merged commit d867399 into main Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant