Skip to content

fix(ci): call the estate reusables by their real ref — root and nested copies - #45

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/reusable-workflow-refs
Sep 19, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
fix/reusable-workflow-refs

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

uses: ../….github/workflows/<x>-reusable.yml is not a ref form GitHub Actions supports — a
reusable-workflow uses: may be ./.github/… (same repo) or <owner>/<repo>/….yml@<ref> (cross
repo). A ../ path is rejected at parse time, so every workflow carrying one is dead:
conclusion=failure, 0 jobs, and a run name equal to its path rather than its declared name:.

Two changes per calling file:

  1. the ref becomes the pinned cross-repo form,
    hyperpolymath/standards/.github/workflows/<x>-reusable.yml@4e6ffe55…;
  2. each calling job is granted the permissions its callee's job declares. A cross-repo callee cannot
    hold more than its caller grants, so repairing only the ref would move the failure from parse time
    to run time. Permissions are keyed off the callee named in the ref, not the caller's filename:
    several callers point at the same reusable (scorecard-enforcer.yml also calls
    scorecard-reusable.yml).

This repairs the whole tree, not only the root .github/workflows/. The root is where the refs
are live; the nested copies are where they propagate — format templates, dispatch templates and
action scaffolds are what new repos are minted from, and each copy carried an unparseable ref, so
every repo created from one inherited a broken workflow.

Found by a whole-tree sweep of all 390 names in the account (blobless clones + git grep, git
protocol rather than the REST API). Across the estate, 6 repos carried such refs: standards (76
files), k9-ecosystem (46), deed-core (42), repo-guardian (14), lol (7),
deed-validate-action (7) — 192 files in total, all repaired in this campaign.

Refs hyperpolymath/standards#808.

…d copies

`uses: ../….github/workflows/<x>-reusable.yml` is not a ref form GitHub Actions supports, so every
workflow carrying it fails at parse time: conclusion=failure, 0 jobs, and a run name equal to its
path rather than its declared `name:`.

This repairs them throughout the tree, not only in the root `.github/workflows/`, because the root
is where they are *live* but the nested copies are where they *propagate* — standards' format
templates, k9-ecosystem's dispatch templates and deed-core's action scaffolds are what new repos are
minted from, and each one carried an unparseable ref.

Each ref becomes the pinned cross-repo form
`hyperpolymath/standards/.github/workflows/<x>-reusable.yml@4e6ffe55…`, and each calling job is
granted the permissions its callee declares — keyed off the callee named in the ref, since several
callers point at the same reusable. Without that step the repair only moves the failure from parse
time to run time.

Refs hyperpolymath/standards#808.
@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 5539dd5b-dc54-441b-a5ae-496f0b484fb6

📥 Commits

Reviewing files that changed from the base of the PR and between 3071d51 and 1db2368.

📒 Files selected for processing (46)
  • deno/.github/workflows/codeql.yml
  • deno/.github/workflows/governance.yml
  • deno/.github/workflows/hypatia-scan.yml
  • deno/.github/workflows/mirror.yml
  • deno/.github/workflows/scorecard-enforcer.yml
  • deno/.github/workflows/scorecard.yml
  • deno/.github/workflows/secret-scanner.yml
  • dispatch-templates/from-k9-svc/codeql.yml
  • dispatch-templates/from-k9-svc/governance.yml
  • dispatch-templates/from-k9-svc/hypatia-scan.yml
  • dispatch-templates/from-k9-svc/scorecard.yml
  • editors/vscode/.github/workflows/codeql.yml
  • editors/vscode/.github/workflows/governance.yml
  • editors/vscode/.github/workflows/hypatia-scan.yml
  • editors/vscode/.github/workflows/mirror.yml
  • editors/vscode/.github/workflows/scorecard-enforcer.yml
  • editors/vscode/.github/workflows/scorecard.yml
  • editors/vscode/.github/workflows/secret-scanner.yml
  • haskell/.github/workflows/codeql.yml
  • haskell/.github/workflows/governance.yml
  • haskell/.github/workflows/hypatia-scan.yml
  • haskell/.github/workflows/mirror.yml
  • haskell/.github/workflows/scorecard-enforcer.yml
  • haskell/.github/workflows/scorecard.yml
  • haskell/.github/workflows/secret-scanner.yml
  • pandoc/.github/workflows/codeql.yml
  • pandoc/.github/workflows/governance.yml
  • pandoc/.github/workflows/hypatia-scan.yml
  • pandoc/.github/workflows/mirror.yml
  • pandoc/.github/workflows/scorecard-enforcer.yml
  • pandoc/.github/workflows/scorecard.yml
  • pandoc/.github/workflows/secret-scanner.yml
  • rs/.github/workflows/codeql.yml
  • rs/.github/workflows/governance.yml
  • rs/.github/workflows/hypatia-scan.yml
  • rs/.github/workflows/mirror.yml
  • rs/.github/workflows/scorecard-enforcer.yml
  • rs/.github/workflows/scorecard.yml
  • rs/.github/workflows/secret-scanner.yml
  • validate-action/.github/workflows/codeql.yml
  • validate-action/.github/workflows/governance.yml
  • validate-action/.github/workflows/hypatia-scan.yml
  • validate-action/.github/workflows/mirror.yml
  • validate-action/.github/workflows/scorecard-enforcer.yml
  • validate-action/.github/workflows/scorecard.yml
  • validate-action/.github/workflows/secret-scanner.yml
 ________________________
< EV: Electric Verifier. >
 ------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ

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

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

@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit cd78f29 into main Sep 19, 2026
9 of 10 checks passed
@hyperpolymath
hyperpolymath deleted the fix/reusable-workflow-refs branch September 19, 2026 19:45
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