Skip to content

Reference in-repo workflows with GitHub's self-repository syntax - #700

Merged
jeremy merged 3 commits into
mainfrom
self-repository-uses
Sep 10, 2026
Merged

Reference in-repo workflows with GitHub's self-repository syntax#700
jeremy merged 3 commits into
mainfrom
self-repository-uses

Conversation

@jeremy

@jeremy jeremy commented Sep 10, 2026

Copy link
Copy Markdown
Member

zizmor 1.30.0, which zizmor-action 0.6.3 runs by default, adds a self-repository audit that flags workspace-relative uses: ./... references to in-repo actions and reusable workflows. This rewrites the two reusable-workflow calls in release.yml to GitHub's uses: $/... form. GitHub's uses: $/... form is the syntax GitHub now recommends for same-repository references and the one zizmor's audit requires. For a job-level reusable-workflow call it changes nothing at runtime: ./ already resolves to the caller's commit, and reusable workflows are exempt from the org SHA-pinning policy, so the gain is conformance with the recommended form, not security. This repo pins zizmor 1.29.0 explicitly (the action's version: input and .mise.toml), so the audit fails as soon as that pin moves to 1.30.0.

actionlint 1.7.12 rejects the new form and no release knows it yet (rhysd/actionlint#711), so .github/actionlint.yaml ignores that one message for workflow files, with a note to drop it once a release does. Locally: actionlint exits 0 with the config and 1 without it; zizmor 1.30.0 reports no findings after the change.

CI's audit job on this PR is the proof.

Same change as basecamp/hey-sdk#171 and #174.


Summary by cubic

Converts the two reusable-workflow calls in release.yml from uses: ./... to GitHub's uses: $/... form, which resolves against the running commit and counts as pinned under zizmor 1.30.0's self-repository audit.

Bumps zizmor-action to 0.6.3 and zizmor to 1.30.0 in the action's version: input and .mise.toml, so CI runs the audit this change addresses; the 0.6.2 version map doesn't know 1.30.0, so the pins move together and the audit job on this branch is the proof.

Adds .github/actionlint.yaml to ignore actionlint 1.7.12's rejection of the $/ form until a release recognizes it (rhysd/actionlint#711). The ignore names the exact calls, so a new $/ call requires a deliberate config edit rather than passing silently.

Written for commit 792dd65. Summary will update on new commits.

Review in cubic

zizmor 1.30.0, which zizmor-action 0.6.3 runs by default, adds a
self-repository audit that flags workspace-relative `uses: ./...` references
to in-repo actions and reusable workflows. GitHub's `uses: $/...` form resolves
against the running commit rather than the checked-out filesystem, so it can't
pick up an action cloned by an earlier step, and GitHub counts it as pinned.
This repo pins zizmor 1.29.0 explicitly (the action's `version:` input and
.mise.toml) and would fail the audit as soon as that pin moves to 1.30.0.

actionlint 1.7.12 rejects the new form and no release knows it yet
(rhysd/actionlint#711), so an actionlint config ignores that one message for
workflow files, with a note to drop it once a release does.

Same change as basecamp/hey-sdk#171 and #174.
Copilot AI balanced review requested due to automatic review settings September 10, 2026 09:48
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 10, 2026

Copy link
Copy Markdown

Codex Review Summary

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

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-10T18:21:37.781017Z 792dd65 New commits
ℹ️ 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.

@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown

Sensitive Change Detection (shadow mode)

This PR modifies control-plane files:

  • .github/workflows/release.yml
  • .github/workflows/test.yml

Shadow mode — this check is informational only. When activated, changes to these paths will require approval from a maintainer.

@github-actions github-actions Bot added the ci CI/CD workflows label Sep 10, 2026
Copilot AI previously approved these changes Sep 10, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The syntax and compatibility rule are correctly scoped, and the GitHub Actions audit passes.

Pull request overview

Updates reusable workflow references to GitHub’s pinned self-repository syntax and accommodates actionlint 1.7.12.

Changes:

  • Replaces two local workflow references with $/....
  • Adds a narrowly scoped actionlint compatibility rule.

[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.

File summaries
File Description
.github/workflows/release.yml Uses self-repository workflow references.
.github/actionlint.yaml Suppresses actionlint’s unsupported-syntax diagnostic.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

The ignore for actionlint 1.7.12's rejection of the `$/` reusable-workflow
form now names the exact calls this repository makes, so a new `$/` call is
a deliberate edit to the config rather than a silent pass. actionlint accepts
`$/path@ref` as the owner/repo/path@ref shape with or without this ignore, so
the scoping is about new sites, not malformed references.
Copilot AI review requested due to automatic review settings September 10, 2026 16:02
Copilot AI dismissed their stale review, a newer Copilot review was requested September 10, 2026 16:02
Copilot AI previously approved these changes Sep 10, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The focused workflow and lint configuration changes are valid, complete, and narrowly scoped.

Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

…is fixes

This repo pins zizmor explicitly through the action's version input and
.mise.toml, so the Dependabot bump of the action alone (#698) would have left
CI on 1.29.0 and the self-repository fix in the previous commit untested.
Both pins move to 1.30.0 together with the action, whose version map at
0.6.2 does not know 1.30.0, so the audit job on this branch is the proof.
Copilot AI review requested due to automatic review settings September 10, 2026 18:19
Copilot AI dismissed their stale review, a newer Copilot review was requested September 10, 2026 18:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The syntax, version pins, compatibility suppression, and successful audit check are consistent and correctly scoped.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@jeremy
jeremy merged commit d707425 into main Sep 10, 2026
35 of 37 checks passed
@jeremy
jeremy deleted the self-repository-uses branch September 10, 2026 21:29
jeremy added a commit that referenced this pull request Sep 10, 2026
…endor-hash

* origin/main:
  ci: bump zizmorcore/zizmor-action in the github-actions group (#698)
  Reference in-repo workflows with GitHub's self-repository syntax (#700)
  Kill the Codex probe's process group when its deadline expires (#694)
  Refresh the Nix vendorHash for the go-dependencies bump (#701)
jeremy added a commit that referenced this pull request Sep 10, 2026
* origin/main:
  ci: bump zizmorcore/zizmor-action in the github-actions group (#698)
  Reference in-repo workflows with GitHub's self-repository syntax (#700)
  Kill the Codex probe's process group when its deadline expires (#694)
  Refresh the Nix vendorHash for the go-dependencies bump (#701)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants