Skip to content

DRIVERS-3596 Adopt GitHub Actions self-repository syntax for internal action references - #112

Merged
blink1073 merged 18 commits into
mongodb-labs:mainfrom
blink1073:DRIVERS-3596
Aug 3, 2026
Merged

DRIVERS-3596 Adopt GitHub Actions self-repository syntax for internal action references#112
blink1073 merged 18 commits into
mongodb-labs:mainfrom
blink1073:DRIVERS-3596

Conversation

@blink1073

@blink1073 blink1073 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

Migrates this repo's internal action-to-action references from pinned mongodb-labs/drivers-github-tools/<path>@v3 tags to GitHub Actions' new $/<path> self-repository syntax. This removes the recurring manual-retagging maintenance cost, without changing the public interface driver repos consume. Rollout was staged: a canary migration of one action was validated in real CI before migrating the rest, per DRIVERS-3596's acceptance criteria.

node/release_template.yml keeps its pinned references, since it is a template rendered into driver repos rather than something that runs in this repo. Docs and the pinned zizmor-action version were also updated as part of this change.

Test plan

  • zizmor security-scan CI job passes on the canary commit (requires zizmor >=1.29.0, which added $/ support 2026-08-01; the job's zizmorcore/zizmor-action installs latest by default)
  • test.yml (pre-commit) CI job passes on the canary commit
  • Remaining internal self-references migrated
  • update-action-tag.yml's ./setup / ./git-sign migrated, external v3 tagging behavior unchanged
  • README/CONTRIBUTING docs updated
  • Full pre-commit + zizmor clean on the whole repo

Comment thread tag-version/action.yml
@semgrep-code-mongodb

Copy link
Copy Markdown

Semgrep found 31 github-actions-mutable-action-tag findings:

GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608.

🛟 Help? Slack #semgrep-help or go/semgrep-help.

Resolution Options:

  • Fix the code
  • Reply /fp $reason (if security gap doesn’t exist)
  • Reply /ar $reason (if gap is valid but intentional; add mitigations/monitoring)
  • Reply /other $reason (e.g., test-only)

@blink1073

Copy link
Copy Markdown
Member Author

/fp this is a new feature of GitHub. The actions are pinned to the same sha as the calling action.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates internal action-to-action references within mongodb-labs/drivers-github-tools from pinned mongodb-labs/drivers-github-tools/<path>@v3 usage to GitHub Actions’ new $/<path> self-repository syntax, aiming to remove ongoing maintenance associated with keeping internal tag references current while preserving the external consumer interface.

Changes:

  • Replaced internal composite-action uses: references across multiple language publish/release actions from ...@v3 to $/....
  • Updated docs (README/CONTRIBUTING) to document $/ usage, requirements, and the one exception (node/release_template.yml) that must remain pinned for downstream rendering.
  • Updated the zizmor workflow to a newer pinned zizmor-action revision and migrated update-action-tag.yml internal local references to $/.

Reviewed changes

Copilot reviewed 20 out of 21 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tag-version/action.yml Switches internal reference to git-sign from @v3 to $/git-sign.
bump-version/action.yml Switches internal reference to git-sign from @v3 to $/git-sign.
full-report/action.yml Migrates internal sub-action calls (authorized-pub, sbom, etc.) to $/ syntax.
create-branch/action.yml Migrates internal reference to bump-version to $/bump-version.
ruby/publish/action.yml Migrates internal action dependencies (secure-checkout, setup, gpg-sign, etc.) to $/.
ruby/cleanup/action.yml Migrates internal secure-checkout reference to $/secure-checkout.
ruby/build/action.yml Migrates internal secure-checkout reference to $/secure-checkout.
python/pre-publish/action.yml Migrates internal references (bump-version, tag-version) to $/.
python/post-publish/action.yml Migrates internal references (gpg-sign, full-report, upload-s3-assets, bump-version) to $/.
python-labs/pre-publish/action.yml Migrates internal tag-version reference to $/tag-version.
python-labs/post-publish/action.yml Migrates internal bump-version reference to $/bump-version.
golang/pre-publish/action.yml Migrates internal references (bump-version, tag-version) to $/.
golang/publish/action.yml Migrates internal references (full-report, upload-s3-assets) to $/.
node/sign_node_package/action.yml Migrates internal references (node/get_version_info, setup, gpg-sign) to $/.
node/release_template.yml Adds clarification comment explaining why this template must stay pinned (not $/).
node/generate_release.mjs Strips the new explanatory template comment line during generation so consumers don’t receive it.
.github/workflows/update-action-tag.yml Migrates workflow-local action references from ./... to $/....
.github/workflows/zizmor.yml Updates zizmor-action pin to a newer revision.
README.md Documents $/ semantics, runner requirement, and consumer implications of internal dependency freezing.
CONTRIBUTING.md Updates version-bump guidance to reflect that internal references no longer require bulk updates.
.gitignore Ignores .superpowers/ and docs/superpowers/plans/.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@blink1073
blink1073 requested a review from GromNaN August 3, 2026 16:40
@blink1073
blink1073 marked this pull request as ready for review August 3, 2026 16:40

@GromNaN GromNaN left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Could you update the PR description to reflect the current state?

The changes LGTM; the side notes could be improved.

Comment thread .gitignore Outdated
Comment thread README.md Outdated
@blink1073
blink1073 requested a review from GromNaN August 3, 2026 19:36
@blink1073
blink1073 merged commit 7fc64f7 into mongodb-labs:main Aug 3, 2026
6 checks passed
@blink1073
blink1073 deleted the DRIVERS-3596 branch August 3, 2026 20:10
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