Skip to content

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

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

hyperpolymath merged 1 commit 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.

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 5b1d00229e5e8c0c0fbfedc7e80f37ea50f49236.

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=0 permlines=0 from=092dedada188f56c5915f74a5fd40aac093742c3,5b1d00229e5e8c0c0fbfedc7e80f37ea50f49236 target=8f2ee508 sig=G 3494ca3 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=0 permlines=0 from=092dedada188f56c5915f74a5fd40aac093742c3,5b1d00229e5e8c0c0fbfedc7e80f37ea50f49236 target=8f2ee508

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

sonarqubecloud Bot commented Sep 9, 2026

Copy link
Copy Markdown

@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: c13c48a4-cb88-47f9-9051-a7895a15a2f4

📥 Commits

Reviewing files that changed from the base of the PR and between be78284 and 3494ca3.

📒 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. (1)
  • GitHub Check: Deposit findings for gitbot-fleet
⚠️ CI failures not shown inline (4)

GitHub Actions: SonarQube / 0_SonarQube.txt: fix(ci): pin standards reusables to default-branch HEAD

Conclusion: failure

View job details

##[group]Run SonarSource/sonarqube-scan-action@22918119ff8e1ca75a623e15c8296b6ea4fbe28f
 with:
   projectBaseDir: .
   scannerVersion: 8.1.0.6389
   scannerBinariesUrl: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli
   skipSignatureVerification: false
 env:
   SONAR_***REDACTED_SECRET_ASSIGNMENT***
 ##[endgroup]
 Installing Sonar Scanner CLI 8.1.0.6389 for linux-x64...
 Downloading from: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.1.0.6389-linux-x64.zip
 Downloading signature from: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.1.0.6389-linux-x64.zip.asc
 Importing SonarSource public key from hkps://keyserver.ubuntu.com...
 [command]/usr/bin/gpg --homedir /home/runner/work/_temp/gpg-717e0aa8 --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 679F1EE92B19609DE816FDE81DB198F93525EC1A
 gpg: keybox '/home/runner/work/_temp/gpg-717e0aa8/pubring.kbx' created
 gpg: /home/runner/work/_temp/gpg-717e0aa8/trustdb.gpg: trustdb created
 gpg: key 1DB198F93525EC1A: public key "SonarSource S.A. <infra@sonarsource.com>" imported
 gpg: Total number processed: 1
 gpg:               imported: 1
 Successfully imported key from hkps://keyserver.ubuntu.com
 ✓ SonarSource public key imported successfully
 Verifying GPG signature...
 [command]/usr/bin/gpg --homedir /home/runner/work/_temp/gpg-717e0aa8 --batch --verify /home/runner/work/_temp/80dcf0db-63fb-4a6d-99c9-c7cbbbc5edd2 /home/runner/work/_temp/eea0da54-1df2-4586-92ab-e6b38add1710
 gpg: Signature made Tue Apr 21 07:20:26 2026 UTC
 gpg:                using RSA key D1436C0DBACEA48702AF97C363F1DD7753B8B315
 gpg: Good signature from "SonarSource S.A. <infra@sonarsource.com>" [unknown]
 gpg: WARNING: This key is not certified with a trusted signature!
 gpg:          There is no indication that the signature belongs to the owner.
 Primary key fingerprint: 679F 1EE9 2B19 609D E816  FDE8 1DB1 98F9 3525 EC1A
      Subkey fingerprint: D14...

GitHub Actions: SonarQube / SonarQube: fix(ci): pin standards reusables to default-branch HEAD

Conclusion: failure

View job details

##[group]Run SonarSource/sonarqube-scan-action@22918119ff8e1ca75a623e15c8296b6ea4fbe28f
 with:
   projectBaseDir: .
   scannerVersion: 8.1.0.6389
   scannerBinariesUrl: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli
   skipSignatureVerification: false
 env:
   SONAR_***REDACTED_SECRET_ASSIGNMENT***
 ##[endgroup]
 Installing Sonar Scanner CLI 8.1.0.6389 for linux-x64...
 Downloading from: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.1.0.6389-linux-x64.zip
 Downloading signature from: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.1.0.6389-linux-x64.zip.asc
 Importing SonarSource public key from hkps://keyserver.ubuntu.com...
 [command]/usr/bin/gpg --homedir /home/runner/work/_temp/gpg-717e0aa8 --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 679F1EE92B19609DE816FDE81DB198F93525EC1A
 gpg: keybox '/home/runner/work/_temp/gpg-717e0aa8/pubring.kbx' created
 gpg: /home/runner/work/_temp/gpg-717e0aa8/trustdb.gpg: trustdb created
 gpg: key 1DB198F93525EC1A: public key "SonarSource S.A. <infra@sonarsource.com>" imported
 gpg: Total number processed: 1
 gpg:               imported: 1
 Successfully imported key from hkps://keyserver.ubuntu.com
 ✓ SonarSource public key imported successfully
 Verifying GPG signature...
 [command]/usr/bin/gpg --homedir /home/runner/work/_temp/gpg-717e0aa8 --batch --verify /home/runner/work/_temp/80dcf0db-63fb-4a6d-99c9-c7cbbbc5edd2 /home/runner/work/_temp/eea0da54-1df2-4586-92ab-e6b38add1710
 gpg: Signature made Tue Apr 21 07:20:26 2026 UTC
 gpg:                using RSA key D1436C0DBACEA48702AF97C363F1DD7753B8B315
 gpg: Good signature from "SonarSource S.A. <infra@sonarsource.com>" [unknown]
 gpg: WARNING: This key is not certified with a trusted signature!
 gpg:          There is no indication that the signature belongs to the owner.
 Primary key fingerprint: 679F 1EE9 2B19 609D E816  FDE8 1DB1 98F9 3525 EC1A
      Subkey fingerprint: D14...

GitHub Actions: Rust CI / 1_rust-ci _ Cargo check + clippy + fmt.txt: fix(ci): pin standards reusables to default-branch HEAD

Conclusion: failure

View job details

##[group]Run cargo fmt --all -- --check
 �[36;1mcargo fmt --all -- --check�[0m
 shell: /usr/bin/bash -e {0}
 env:
   CARGO_HOME: /home/runner/.cargo
   CARGO_INCREMENTAL: 0
   CARGO_TERM_COLOR: always
   CACHE_ON_FAILURE: false
 ##[endgroup]
 Diff in /home/runner/work/cicd-squabbler/cicd-squabbler/crates/squabble-cli/src/fetch.rs:344:
      #[test]
      fn a_job_id_is_read_from_a_real_details_url() {
          // Shape taken from a live `gh pr view --json statusCheckRollup`.
 -        let url = "https://github.com/hyperpolymath/standards/actions/runs/33817314194/job/100852208701";
 +        let url =
 +            "https://github.com/hyperpolymath/standards/actions/runs/33817314194/job/100852208701";
          assert_eq!(job_id_from_details_url(url), Some(100852208701));
      }
 Diff in /home/runner/work/cicd-squabbler/cicd-squabbler/crates/squabble-cli/src/fetch.rs:354:
          // of course. Cutting the id on `/` alone leaves the suffix attached,
          // `parse::<u64>` fails, and the green is skipped without a word — the
          // exact silent undercount this module exists to prevent.
 -        let base = "https://github.com/hyperpolymath/standards/actions/runs/33817314194/job/100852208701";
 +        let base =
 +            "https://github.com/hyperpolymath/standards/actions/runs/33817314194/job/100852208701";
          for suffix in ["?check_suite_focus=true", "`#step`:4:1", "?a=1#step:2:9"] {
              let url = format!("{base}{suffix}");
              assert_eq!(
 Diff in /home/runner/work/cicd-squabbler/cicd-squabbler/crates/squabble-cli/src/fetch.rs:374:
              None
          );
          assert_eq!(
 -            job_id_from_details_url(
 -                "https://github.com/o/r/actions/runs/1"
 -            ),
 +            job_id_from_details_url("https://github.com/o/r/actions/runs/1"),
              None
          );
      }
 Diff in /home/runner/work/cicd-squabbler/cicd-squabbler/crates/squabble-cli/src/fetch.rs:383:
      #[tes...

GitHub Actions: Rust CI / rust-ci _ Cargo check + clippy + fmt: fix(ci): pin standards reusables to default-branch HEAD

Conclusion: failure

View job details

##[group]Run cargo fmt --all -- --check
 �[36;1mcargo fmt --all -- --check�[0m
 shell: /usr/bin/bash -e {0}
 env:
   CARGO_HOME: /home/runner/.cargo
   CARGO_INCREMENTAL: 0
   CARGO_TERM_COLOR: always
   CACHE_ON_FAILURE: false
 ##[endgroup]
 Diff in /home/runner/work/cicd-squabbler/cicd-squabbler/crates/squabble-cli/src/fetch.rs:344:
      #[test]
      fn a_job_id_is_read_from_a_real_details_url() {
          // Shape taken from a live `gh pr view --json statusCheckRollup`.
 -        let url = "https://github.com/hyperpolymath/standards/actions/runs/33817314194/job/100852208701";
 +        let url =
 +            "https://github.com/hyperpolymath/standards/actions/runs/33817314194/job/100852208701";
          assert_eq!(job_id_from_details_url(url), Some(100852208701));
      }
 Diff in /home/runner/work/cicd-squabbler/cicd-squabbler/crates/squabble-cli/src/fetch.rs:354:
          // of course. Cutting the id on `/` alone leaves the suffix attached,
          // `parse::<u64>` fails, and the green is skipped without a word — the
          // exact silent undercount this module exists to prevent.
 -        let base = "https://github.com/hyperpolymath/standards/actions/runs/33817314194/job/100852208701";
 +        let base =
 +            "https://github.com/hyperpolymath/standards/actions/runs/33817314194/job/100852208701";
          for suffix in ["?check_suite_focus=true", "`#step`:4:1", "?a=1#step:2:9"] {
              let url = format!("{base}{suffix}");
              assert_eq!(
 Diff in /home/runner/work/cicd-squabbler/cicd-squabbler/crates/squabble-cli/src/fetch.rs:374:
              None
          );
          assert_eq!(
 -            job_id_from_details_url(
 -                "https://github.com/o/r/actions/runs/1"
 -            ),
 +            job_id_from_details_url("https://github.com/o/r/actions/runs/1"),
              None
          );
      }
 Diff in /home/runner/work/cicd-squabbler/cicd-squabbler/crates/squabble-cli/src/fetch.rs:383:
      #[tes...
🔇 Additional comments (6)
.github/workflows/governance.yml (1)

20-20: LGTM!

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

29-29: LGTM!

.github/workflows/mirror.yml (1)

15-15: LGTM!

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

18-18: LGTM!

.github/workflows/scorecard.yml (1)

18-18: LGTM!

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

24-24: LGTM!


📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated the pinned revisions used by governance, security scanning, mirroring, Rust CI, and Scorecard automation.
    • Existing workflow triggers, permissions, and job behaviour remain unchanged.

Walkthrough

Six GitHub Actions workflows now reference newer pinned commits for reusable governance, scanning, mirroring, Rust CI, Scorecard, and secret-scanner workflows. No workflow logic or permissions changed.

Changes

Workflow pin updates

Layer / File(s) Summary
Update reusable workflow references
.github/workflows/*.yml
The governance, Hypatia scan, mirror, Rust CI, Scorecard, and secret-scanner workflows now use newer pinned reusable workflow commits.

Priority: ⬇️ Low

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

Merge Risk: ⚪ Minimal · up to 3494c

This updates six reusable GitHub Actions workflow pins to a newer immutable revision without changing local workflow behavior or permissions. No current merge-blocking risk is identified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: pinning CI reusable workflows to the standards default-branch HEAD.
Description check ✅ Passed The description clearly explains the purpose, affected references, previous and target commits, verification details, and expected impact. It does not reproduce the template headings or checklist, but…
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 checks each workflow pin
New commits hop neatly in
Scans and mirrors follow the trail
CI runs with a fresher rail
Six small changes, no logic spin

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: SonarQube / 0_SonarQube.txt

@hyperpolymath
hyperpolymath enabled auto-merge (squash) September 9, 2026 09:24
@hyperpolymath
hyperpolymath merged commit d8b9275 into main Sep 9, 2026
49 of 51 checks passed
@hyperpolymath
hyperpolymath deleted the fix/bump-diverged-standards-pin branch September 9, 2026 09:36
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