Skip to content

fix(ci): pin standards reusables to default-branch HEAD - #76

Merged
hyperpolymath merged 2 commits into
mainfrom
fix/bump-diverged-standards-pin
Sep 9, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
fix/bump-diverged-standards-pin

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Re-points this repo's hyperpolymath/standards reusable-workflow pins at the standards default-branch HEAD, 8f2ee50841e216cd8c192eeb68953118190f105c.

This PR makes two changes, not one. It also widens the top-level permissions: block of 3 workflow file(s). A caller that grants a reusable less than the reusable's own permissions: request is rejected at workflow startup — the exact failure this PR exists to cure — so bumping the pin without this would move the repo from one silent disappearance to another. The scopes added are not hardcoded: each reusable's request is read from 8f2ee508 at sweep time and only the genuinely missing scopes are added, at the indent the file already uses. Only read-level scopes are added this way; anything needing write is held for review instead.

Why this is not a routine version bump. uses: org/repo/.github/workflows/x.yml@<ref> is resolved at workflow startup, so a bad ref is not a failing job — it is no job at all. This campaign repairs three kinds of drift and does not assume which one this repo had:

  • an unreachable sha kills the run before any job is created, so GitHub reports no check at all rather than a failing one: the gate does not go red, it disappears, and gh pr checks simply lists fewer rows. A repo in this state looks greener than one with working gates;
  • a floating ref such as @main runs, but unpinned — the supply-chain property the estate pins for is absent;
  • a stale but reachable sha runs the reusable as it was, silently reintroducing every bug fixed since it.

The refs this repo was actually pinned to, before this PR: 092dedada188f56c5915f74a5fd40aac093742c3 412a7031577112b31ee287cc6060179d638d6500 81dbf2dd854b1444fd6236fa2352474383b2c2b9 d135b05bfc647d0c0fbfedc7e80f37ea50f49236.

Expect this PR to surface failures that main does not show. Those failures are revealed, not introduced — they are the gates resuming work after being silently absent. The honest comparison is the set of check names emitted here versus on main, not pass/fail counts. On the canary (hyperpolymath/empty-linter#79) the governance suite was absent on main and emitted 25 checks once repaired.

The target is default-branch HEAD resolved at sweep time, never a sha copied from a plan: a reachable but non-HEAD sha silently reintroduces every bug fixed since it.

Engine: .git-private-farm/scripts/smtp-notify-sweep.sh --campaign campaigns/pin-repair.sh. Verification for this repo: files=6 pins=6 perms=3 permlines=3 from=092dedada188f56c5915f74a5fd40aac093742c3,412a7031577112b31ee287cc6060179d638d6500,81dbf2dd854b1444fd6236fa2352474383b2c2b9,d135b05bfc647d0c0fbfedc7e80f37ea50f49236 target=8f2ee508 sig=G edfdc8c canon=a7325fbdc356 base=main

🤖 Generated with Claude Code

https://claude.ai/code/session_0178nN4Nm3neFRy5K9StZKnB

This repo's standards reusable pins are re-pointed at the standards default-branch HEAD, resolved live at sweep time. The prior refs are recorded in the verification line below. Three kinds of drift are repaired together and the body does not claim which one this repo had: an UNREACHABLE sha kills the run at workflow STARTUP, so GitHub reports no check at all rather than a failing one and the gate disappears instead of going red; a FLOATING ref (@main) is unpinned supply chain; a merely STALE but reachable sha silently reintroduces every bug fixed since it. files=6 pins=6 perms=3 permlines=3 from=092dedada188f56c5915f74a5fd40aac093742c3,412a7031577112b31ee287cc6060179d638d6500,81dbf2dd854b1444fd6236fa2352474383b2c2b9,d135b05bfc647d0c0fbfedc7e80f37ea50f49236 target=8f2ee508

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0178nN4Nm3neFRy5K9StZKnB
@coderabbitai

coderabbitai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 6b2072ae-6069-4894-bf8b-9f32e8512952

📥 Commits

Reviewing files that changed from the base of the PR and between f901a61 and edfdc8c.

📒 Files selected for processing (6)
  • .github/workflows/governance.yml
  • .github/workflows/hypatia-scan.yml
  • .github/workflows/mirror.yml
  • .github/workflows/rust-ci.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/secret-scanner.yml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (11)
  • GitHub Check: Dogfooding compliance summary
  • GitHub Check: rust-ci / Cargo check + clippy + fmt
  • GitHub Check: rust-ci / llvm-cov line coverage
  • GitHub Check: rust-ci / Cargo audit (security)
  • GitHub Check: scan / shell-secrets
  • GitHub Check: hypatia / Hypatia Neurosymbolic Analysis
  • GitHub Check: governance / Language / package anti-pattern policy
  • GitHub Check: governance / Guix packaging policy (Nix retired)
  • GitHub Check: governance / Licence consistency
  • GitHub Check: governance / Actions lockfile verify
  • GitHub Check: governance / Check Workflow Staleness
⚠️ CI failures not shown inline (2)

GitHub Actions: ClusterFuzzLite PR fuzzing / 0_PR (address).txt: fix(ci): pin standards reusables to default-branch HEAD

Conclusion: failure

View job details

Current runner version: '2.337.0'
 ##[group]Runner Image Provisioner
 Hosted Compute Agent
 Version: 20260828.587
 Commit: abac92662cab4cc7352de4f9f9d2e2419aad9c29
 Build Date:
 Worker ID: {f6c78ebe-5e71-4c02-9beb-cc94001e1441}
 Azure Region: northcentralus
 ##[endgroup]
 ##[group]Operating System
 Ubuntu
 24.04.4
 LTS
 ##[endgroup]
 ##[group]Runner Image
 Image: ubuntu-24.04
 Version: 20260831.293.1
 Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260831.293/images/ubuntu/Ubuntu2404-Readme.md
 Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260831.293
 ##[endgroup]
 ##[group]GITHUB_TOKEN Permissions
 Contents: read
 Metadata: read
 ##[endgroup]
 Secret source: Actions
 Using locked action versions from the workflow's lockfile
 Prepare workflow directory
 Prepare all required actions
 Getting action download info
 Download action repository 'google/clusterfuzzlite@v1' (SHA:884713a6c30a92e5e8544c39945cd7cb630abcd1)
 Complete job name: PR (address)
 ##[group]Pull down action image 'gcr.io/oss-fuzz-base/clusterfuzzlite-build-fuzzers:v1'
 ##[command]/usr/bin/docker pull gcr.io/oss-fuzz-base/clusterfuzzlite-build-fuzzers:v1
 v1: Pulling from oss-fuzz-base/clusterfuzzlite-build-fuzzers
 b549f31133a9: Pulling fs layer
 6e628c8ef21f: Pulling fs layer
 f53ab3868c1c: Pulling fs layer
 cac03dd67be9: Pulling fs layer
 6ad67417113a: Pulling fs layer
 0f23db3019f6: Pulling fs layer
 f7f923ac7112: Pulling fs layer
 5ac5fd5c9155: Pulling fs layer
 e55f3aeb0db5: Pulling fs layer
 99a80ef90662: Pulling fs layer
 ed071ff265fb: Pulling fs layer
 8ea7612e89e3: Pulling fs layer
 5acd3defd0b1: Pulling fs layer
 cb9fc028b38c: Pulling fs layer
 f875d495afb8: Pulling fs layer
 75f78d57ea55: Pulling fs layer
 17240e9f55fc: Pulling fs layer
 5ca435cbfcbd: Pulling fs layer
 943a3a494328: Pulling fs layer
 7104cb51b378: Pulling fs layer
 4065365cc179: Pulling fs layer
 da4c240a289d: Pulling fs layer
 ed67bd6f81a3: Pulling fs layer
...

GitHub Actions: ClusterFuzzLite PR fuzzing / PR (address): fix(ci): pin standards reusables to default-branch HEAD

Conclusion: failure

View job details

##[group]Run google/clusterfuzzlite/actions/build_fuzzers@v1
 with:
   language: rust
   sanitizer: address
   dry-run: false
   bad-build-check: true
   keep-unaffected-fuzz-targets: false
   upload-build: false
 ##[endgroup]
 ##[command]/usr/bin/docker run --name gcrioossfuzzbaseclusterfuzzlitebuildfuzzersv1_1d2303 --label aa1882 --workdir /github/workspace --rm -e "INPUT_LANGUAGE" -e "INPUT_SANITIZER" -e "INPUT_DRY-RUN" -e "INPUT_ALLOWED-BROKEN-TARGETS-PERCENTAGE" -e "INPUT_PROJECT-SRC-PATH" -e "INPUT_BAD-BUILD-CHECK" -e "INPUT_KEEP-UNAFFECTED-FUZZ-TARGETS" -e "INPUT_STORAGE-REPO" -e "INPUT_STORAGE-REPO-BRANCH" -e "INPUT_STORAGE-REPO-BRANCH-COVERAGE" -e "INPUT_UPLOAD-BUILD" -e "INPUT_GITHUB-TOKEN" -e "ALLOWED_BROKEN_TARGETS_PERCENTAGE" -e "BAD_BUILD_CHECK" -e "UPLOAD_BUILD" -e "LANGUAGE" -e "DRY_RUN" -e "SANITIZER" -e "PROJECT_SRC_PATH" -e "GITHUB_TOKEN" -e "GIT_STORE_REPO" -e "GIT_STORE_BRANCH" -e "GIT_STORE_BRANCH_COVERAGE" -e "CFL_PLATFORM" -e "LOW_DISK_SPACE" -e "KEEP_UNAFFECTED_FUZZ_TARGETS" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "GITHUB_ARTIFACTS" -e "GITHUB_ARTIFACTS_LIST" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_ENVIRONMENT" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNN...
🔇 Additional comments (6)
.github/workflows/governance.yml (1)

31-31: LGTM!

.github/workflows/hypatia-scan.yml (1)

20-20: LGTM!

Also applies to: 26-26

.github/workflows/mirror.yml (1)

9-9: LGTM!

Also applies to: 13-13

.github/workflows/rust-ci.yml (1)

15-15: LGTM!

.github/workflows/scorecard.yml (1)

12-12: LGTM!

Also applies to: 15-15

.github/workflows/secret-scanner.yml (1)

17-17: LGTM!


📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated automated governance, scanning, mirroring, Rust CI, scorecard and secret-scanning workflows to use newer shared workflow versions.
    • Adjusted read-only permissions for selected checks, helping ensure automated analysis and repository operations continue to run reliably.
    • No changes were made to the application’s public features or functionality.

Walkthrough

The pull request updates six GitHub Actions workflows to newer pinned reusable workflow commits. It also adds actions: read or contents: read permissions to selected workflows.

Changes

Workflow security updates

Layer / File(s) Summary
Reusable workflow pins and permissions
.github/workflows/*.yml
Reusable workflow references now use commit 8f2ee50841e216cd8c192eeb68953118190f105c. Selected workflows now grant read permissions for actions or repository contents.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to edfdc

This updates reusable GitHub Actions workflow pins and supplies only required read permissions, preserving pinned dependency behavior without introducing an evidenced merge blocker.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the primary change: updating the pinned standards reusable workflows to the default-branch HEAD.
Description check ✅ Passed The description is directly related to the changes. It explains the reusable-workflow pin updates, the added read permissions, and the reason for both changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🛠️ Fix failing CI checks
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit reads each line,
The patch grows clear beneath the moon,
Small changes hop in place,
Tests guard the garden path,
Reviews bloom before the dawn.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

✅ Coding Agent task started: View task and status

The task will inspect the CI failures, validate its fix, and open a stacked fix pull request automatically.

Note: Fixing CI failures is a beta feature and may encounter errors. Expect some limitations and changes as we gather feedback and continue to improve it.

⏭️ 1 check(s) skipped — already failing on `main` (not caused by this PR)
  • GitHub Actions: Rust CI / 1_rust-ci _ Cargo check + clippy + fmt.txt

@hyperpolymath
hyperpolymath merged commit 88a6539 into main Sep 9, 2026
35 of 39 checks passed
@hyperpolymath
hyperpolymath deleted the fix/bump-diverged-standards-pin branch September 9, 2026 09:35
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