Skip to content

ci: name the standards repository by its current owner in 6 callers - #79

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/standards-callers-owner-name
Nov 10, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
claude/standards-callers-owner-name

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

6 workflows of this repository do not start: governance.yml, hypatia-scan.yml, mirror.yml, rust-ci.yml, scorecard.yml and secret-scanner.yml. Each one calls a reusable workflow in hyperpolymath/standards. For rust-ci.yml, GitHub Actions says (run 42889708382):

Invalid workflow file: .github/workflows/rust-ci.yml#L17. error parsing called workflow ... "hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@571cc734..." : workflow was not found.

The last runs of governance.yml (run 42889708030) and secret-scanner.yml (run 42889708195) end in the same way: failure at creation, with the file path as the run name. So this repository has no governance gate, no secret scan, no shared Rust CI, no Hypatia scan, no scorecard and no mirror at this time. The other 3 callers have the same line form; their runs were not read.

The cause is the name only. The standards repository now has the owner metadatastician. git follows the old name. GitHub Actions does not. echidnabot had the same fault (hyperpolymath/echidnabot#203).

Changes

In each of the 6 uses: lines, hyperpolymath/standards becomes metadatastician/standards. Nothing else changes: 6 lines, 1 name each.

Each caller keeps its own pinned commit:

Caller Pinned commit Date of the commit
governance, hypatia-scan, mirror, rust-ci 571cc73 2026-08-29
secret-scanner db12a6a 2026-07-07
scorecard d7c2271 2026-06-26

What to know before a merge

  • The pins are old. These workflows have not run for some time. The first runs can show findings that are not from this change.
  • Newer versions exist. gitbot-fleet calls the governance bundle at ea2f4d8 (2026-11-07), and it takes the secret scanner from hyperpolymath/proven-cicd. A move to those versions is a different decision and is not in this pull request.
  • The Actions settings can still refuse the workflows. In echidnabot, the settings refuse a reusable workflow from another owner. If this repository has the same rule, each run ends at creation with "not allowed", and the repair is the setting (Settings, Actions, General: allow metadatastician/standards). The runs on this pull request show which case applies.
  • mirror.yml becomes active after a merge. It runs on each push to main and sends the repository to the other forges for which a key secret exists. It does not run on this pull request. Decide if that is wanted before the merge.

RSR Quality Checklist

Required

  • No banned language patterns
  • SPDX license headers present on all new/modified source files
  • No secrets, credentials, or .env files included
  • Not applicable: tests, formatter, linter, unsafe blocks, banned functions. Only 6 workflow lines change.

Testing

Read from the standards repository (fetched from metadatastician/standards):

  • Each of the 3 pinned commits is an ancestor of main there, and each has the called file.
  • Each called file requests only permissions that its caller grants.
  • No called file has a concurrency: key, so the concurrency: key of each caller does not clash with it.
  • No called file has a necessary input or secret.
  • Each action in the 6 called files is pinned to a full commit hash.

Not verified:

  • A real run of the 6 workflows. The runs on this pull request are the first evidence, and the result is added here.

Generated by Claude Code

6 workflows call a reusable workflow in `hyperpolymath/standards`:
governance, hypatia-scan, mirror, rust-ci, scorecard and secret-scanner.
None of them starts. For `rust-ci.yml`, GitHub Actions says (run
42889708382): `error parsing called workflow ... hyperpolymath/standards/
.github/workflows/rust-ci-reusable.yml@571cc73...: workflow was not found`.
The last runs of governance and secret-scanner end in the same way, at
creation.

The standards repository now has the owner `metadatastician`. `git`
follows the old name, GitHub Actions does not.

This change replaces only the owner name in the 6 `uses:` lines. Each
caller keeps its own pinned commit (571cc73, d7c2271, db12a6a). Each of
those commits is on `main` of the standards repository and has the called
file. The permissions that each called file requests are permissions that
its caller grants. No called file has a `concurrency:` key.

Not known: if the Actions settings of this repository permit a reusable
workflow from another owner. In echidnabot they do not.

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

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Caution

Review failed

The pull request is closed.

Summary

Summary by CodeRabbit

  • Chores
    • Updated the shared workflows used for governance, security scanning, mirroring, Rust CI and scorecard checks. The workflow paths and pinned revisions remain unchanged.

Six GitHub Actions jobs now reference reusable workflows from metadatastician/standards instead of hyperpolymath/standards. The workflow paths and pinned commits remain unchanged.

Changes: Reusable workflow source updates

Layer / File(s) Summary
Update reusable workflow references
.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
The six jobs now use metadatastician/standards as the reusable workflow source. Workflow paths and commit pins remain unchanged.

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

Change: Bug fix

Merge Risk: Moderate · up to c4a57

After this change the governance check is likely to fail on every push and PR to main or master, because the allowlist does not include the new owner. Update the allowlist upstream and re-pin governance before merging. The other workflows may also be blocked by Actions settings that restrict reusable workflows from another owner.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@hyperpolymath
hyperpolymath marked this pull request as ready for review November 10, 2026 20:02
@chatgpt-codex-connector

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ❌ Failed 2026-11-10T20:02:03.729595Z
We couldn’t complete this review. Comment @codex review to try again.
c4a57f7 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@hyperpolymath
hyperpolymath merged commit b20e139 into main Nov 10, 2026
23 of 27 checks passed
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@hyperpolymath
hyperpolymath deleted the claude/standards-callers-owner-name branch November 10, 2026 20:02
hyperpolymath added a commit that referenced this pull request Nov 10, 2026
## Summary

3 callers on `main` have `secrets: inherit`. That line gives every
secret of this repository to the called workflow. SonarCloud reported it
on PR #79 (rule `githubactions: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/standards` goes 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 on `main` start to run with the lines that `main` has
at that time.

## Changes

- `hypatia-scan.yml`: the pin moves from `571cc73` to `740c9d7`, and the
caller passes `HYPATIA_SCAN_PAT` only. At `571cc73` the called workflow
declares no secrets, so a named secret is not possible there.
- `mirror.yml`: the pin moves from `571cc73` to `740c9d7`, 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 at `db12a6a`. The `secrets:
inherit` line goes, with no replacement. The called workflow uses only
the automatic token.

`740c9d7` (2026-10-19) is an ancestor of standards `main`. It is the pin
that echidnabot uses for the same 2 workflows.

## RSR Quality Checklist

### Required

- [ ] Tests pass (`just test` or equivalent): not run, the change is in
3 workflow files only
- [ ] Code is formatted (`just fmt` or equivalent): not run, same reason
- [ ] Linter is clean (no new warnings or errors): not run locally, the
PR checks give the result
- [x] No banned language patterns (no TypeScript, no npm/bun, no
Go/Python)
- [x] No `unsafe` blocks without `// SAFETY:` comments
- [x] No banned functions (`believe_me`, `unsafeCoerce`, `Obj.magic`,
`Admitted`, `sorry`)
- [x] SPDX license headers present on all new/modified source files
- [x] No secrets, credentials, or `.env` files included (secret names
only, no values)

### As Applicable

None of the listed documents changes.

## Testing

- `grep` finds 0 `secrets: inherit` lines outside comments in
`.github/workflows/`.
- `yq` parses the 3 files.
- Each secret that a caller passes is declared in the `workflow_call`
block of the called file at `740c9d7` (read from a clone of the
standards repository).
- SonarCloud on this pull request: Quality Gate passed, 0 new issues.
The finding from #79 is gone.

Not verified:

- No run of these 3 callers is possible before the Actions policy
permits `metadatastician/standards`. The first runs after that change
are the proof.
- That the called secret scanner receives the automatic token without
`inherit`. GitHub passes `GITHUB_TOKEN` to a called workflow by default,
but I did not see a run that shows it for this caller.

Note for the owner: `mirror.yml` starts on each push to `main`. At
`740c9d7`, a forge job runs only if the repository variable
`<FORGE>_MIRROR_ENABLED` is `true` (for example
`GITLAB_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.com/claude-code)

https://claude.ai/code/session_0136P7ZmiFSCoB3UR9Kk56rK

Co-authored-by: Claude <noreply@anthropic.com>
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.

3 participants