Repository navigation
ci: pass only named secrets to the called workflows - #80
Conversation
3 callers had `secrets: inherit`: hypatia-scan, mirror and secret-scanner. With the owner name `metadatastician`, that line gives every secret of this repository to a workflow of another owner. SonarCloud reports it on this pull request (rule S7635, 3 findings, "Only pass required secrets to this workflow"). The called files at the old pins declare no secrets, so `inherit` was the only way to give them a secret. The owner decided to pass only named secrets: - `hypatia-scan.yml` and `mirror.yml` move from 571cc73 to 740c9d7 (2026-10-19), the commit that echidnabot pins. At that commit the called files declare their secrets. `mirror.yml` passes its 7 key secrets, and `hypatia-scan.yml` passes `HYPATIA_SCAN_PAT`. - `secret-scanner.yml` keeps its pin (db12a6a) and has no `secrets:` line. The called file uses only the automatic token. No caller inherits secrets now. `governance.yml`, `rust-ci.yml` and `scorecard.yml` do not change in this commit. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0136P7ZmiFSCoB3UR9Kk56rK
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 55 minutes. View limit details
No actionable comments were generated in the recent review. Summary
Merge Risk:
|
|
2 checks are red on this pull request, and both are red on
The SonarCloud app check (a different check) is green on this pull request. It reported the 3 Generated by Claude Code |
|



Summary
3 callers on
mainhavesecrets: inherit. That line gives every secret of this repository to the called workflow. SonarCloud reported it on PR #79 (rulegithubactions:S7635, "Only pass required secrets to this workflow"). This PR removes the 3 lines and passes only the secrets that each called workflow declares.Merge this before
metadatastician/standardsgoes on the Actions allow list of this repository. At this time the Actions policy refuses the 6 standards callers, so no secret is passed. When the policy permits them, the callers onmainstart to run with the lines thatmainhas at that time.Changes
hypatia-scan.yml: the pin moves from571cc73to740c9d7, and the caller passesHYPATIA_SCAN_PATonly. At571cc73the called workflow declares no secrets, so a named secret is not possible there.mirror.yml: the pin moves from571cc73to740c9d7, and the caller passes the 7 key secrets that the called workflow declares (GITLAB_SSH_KEY,BITBUCKET_SSH_KEY,CODEBERG_SSH_KEY,SOURCEHUT_SSH_KEY,DISROOT_SSH_KEY,GITEA_SSH_KEY,RADICLE_KEY).secret-scanner.yml: the pin stays atdb12a6a. Thesecrets: inheritline goes, with no replacement. The called workflow uses only the automatic token.740c9d7(2026-10-19) is an ancestor of standardsmain. It is the pin that echidnabot uses for the same 2 workflows.RSR Quality Checklist
Required
just testor equivalent): not run, the change is in 3 workflow files onlyjust fmtor equivalent): not run, same reasonunsafeblocks without// SAFETY:commentsbelieve_me,unsafeCoerce,Obj.magic,Admitted,sorry).envfiles included (secret names only, no values)As Applicable
None of the listed documents changes.
Testing
grepfinds 0secrets: inheritlines outside comments in.github/workflows/.yqparses the 3 files.workflow_callblock of the called file at740c9d7(read from a clone of the standards repository).Not verified:
metadatastician/standards. The first runs after that change are the proof.inherit. GitHub passesGITHUB_TOKENto a called workflow by default, but I did not see a run that shows it for this caller.Note for the owner:
mirror.ymlstarts on each push tomain. At740c9d7, a forge job runs only if the repository variable<FORGE>_MIRROR_ENABLEDistrue(for exampleGITLAB_MIRROR_ENABLED), and it pushes only if the key secret of that forge exists. Read those variables before the Actions policy permits the callers.🤖 Generated with Claude Code
https://claude.ai/code/session_0136P7ZmiFSCoB3UR9Kk56rK