Skip to content

Neutralize Dependabot action pins in verbatim normalization (#414 Q3) - #415

Merged
ptr727 merged 4 commits into
developfrom
audit-normalize-action-pins
Jul 23, 2026
Merged

Neutralize Dependabot action pins in verbatim normalization (#414 Q3)#415
ptr727 merged 4 commits into
developfrom
audit-normalize-action-pins

Conversation

@ptr727

@ptr727 ptr727 commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Resolves Q3 of #414.

The github-release job is fidelity: interface with a verbatimJobs: [github-release] contract, so it is byte-verbatim-checked - but normalize() masked no action SHAs. So every release repo's live workflow drifts from the canonical after any Dependabot uses: ...@<sha> bump, and the verbatim check can never stay green fleet-wide.

  • normalize() now neutralizes a uses: <action>@<40-hex sha> pin and its trailing # vN comment - governed drift Dependabot owns per repo, same category as EOL. A 64-hex docker digest and a tag/branch ref (@v4) do not match, so only a real action pin is masked, and a changed action name still differs.
  • Selftest: a SHA + version-comment bump normalizes equal; a changed action name still hashes differently.
  • spec/fidelity-model.md Normalization section updated.

Note: PhotoCleaner/PlexCleaner still show github-release drift after this - they differ structurally (backstop, comments, expect_release_assets), which #414 Q1/Q2/Q4 (PR-B) reconciles. This PR only removes the SHA-only noise so that, post-reconciliation + re-vendor, the job stays green through routine bumps.

The github-release job is fidelity interface with a verbatimJobs contract, so
it is byte-verbatim-checked, but normalize() masked no action SHAs. Every
release repo's live workflow therefore drifts from the canonical after any
Dependabot uses:@<sha> bump - the verbatim check can never stay green across
the fleet.

Neutralize a uses:<action>@<40-hex sha> pin and its trailing # vN comment in
normalize(), the same governed-drift treatment as EOL (Dependabot owns those
bumps per repo). A 64-hex docker digest and a tag/branch ref do not match, so
only a real action pin is masked; a changed action name still differs. Selftest
covers the bump-equal and changed-action-differs cases; fidelity-model.md
Normalization documents it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 23, 2026 22:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the fidelity hashing/normalization model so verbatim workflow-job comparisons are stable across routine Dependabot action SHA pin bumps, keeping the github-release verbatim contract enforceable fleet-wide.

Changes:

  • Extend spec/audit.py normalization to neutralize uses: <action>@<40-hex sha> pins (and associated version comments) prior to hashing.
  • Add a selftest that verifies SHA/comment-only bumps normalize equal while action-name changes still register as drift.
  • Update spec/fidelity-model.md to document action-pin normalization as part of verbatim hashing.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
spec/audit.py Adds action-pin neutralization to normalize() and selftests to prevent verbatim drift from routine Dependabot action bumps.
spec/fidelity-model.md Documents that verbatim hashing normalizes both EOL and action pins.

Comment thread spec/audit.py Outdated
…case hex

Restrict the trailing-comment neutralization to a Dependabot version comment
(# v1.2.3, leading v-or-digit required) so a hand-written note on a pin still
counts. Accept uppercase hex in the sha. Recast the helper comment's semicolon.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 23, 2026 22:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 23, 2026 22:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread spec/fidelity-model.md
…ization

Keep the fidelity-list bullet consistent with the Normalization section.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 23, 2026 22:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit f7ff0e2 into develop Jul 23, 2026
7 checks passed
@ptr727
ptr727 deleted the audit-normalize-action-pins branch July 23, 2026 22:59
ptr727 added a commit that referenced this pull request Jul 23, 2026
…e reconciliation (#418)

Carries #413 (PhotoCleaner registry), #415 (Q3 action-pin SHA masking), #416 (PlexCleaner #880 canonical prose fixes), #417 (Q4 docker atomicity + validate-release contract). Merge commit, no release.
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.

2 participants