Skip to content

chore: pin GitHub Actions to SHAs; switch mise install snippet to github backend#10

Merged
harikaduyu merged 8 commits into
mainfrom
chore-pin-actions-and-mise-prefix
May 22, 2026
Merged

chore: pin GitHub Actions to SHAs; switch mise install snippet to github backend#10
harikaduyu merged 8 commits into
mainfrom
chore-pin-actions-and-mise-prefix

Conversation

@harikaduyu
Copy link
Copy Markdown
Contributor

What did you do?

  • SHA-pinned every uses: line across ci.yml, cla.yml, and release.yml. Each reference is now <owner>/<action>@<full-commit-sha> # vX.Y.Z.
  • Updated the README.md install snippet to use mise use github:Staffbase/gq@latest (the ubi: backend is deprecated in current mise).
  • Updated the GoReleaser release-notes footer the same way (github: instead of ubi:).
  • Dropped the misleading brew install staffbase/tap/gq line from the README — there is no public Homebrew tap, and recommending one in a public OSS README would mislead external readers.

Why did you do it?

  • SHA-pin (from @michaelkrug's review comment): floating tags like @v6 are mutable. If an upstream maintainer's account is compromised, an attacker can force-push v6 to a malicious commit and every workflow on the planet using @v6 silently executes it next run. There is a real-world precedent (tj-actions/changed-files, March 2025). A full commit SHA is content-addressable and immune to this. Dependabot understands the @<sha> # vX.Y.Z pattern and will continue to open bump PRs.
  • ubi:github:: mise warns on ubi:Staffbase/gq@... that the backend is deprecated and will be removed in mise 2027.1.0. The github: backend is the supported successor and downloads from the same release assets.
  • README brew line removal: there is no public tap. Staffbase folks have an internal tap; that's not relevant to OSS readers.

Checklist

  • Tests added/updated — n/a (workflow/docs only)
  • Documentation updated if needed — README install snippet rewritten

🤖 Generated with Claude Code.

- All `uses:` lines in ci.yml, cla.yml, release.yml now reference an
  immutable commit SHA with a trailing `# vX.Y.Z` comment. Tags can be
  force-pushed by upstream maintainers (or an attacker who compromises
  them); SHAs cannot. Dependabot understands this pattern and will open
  bump PRs as new versions ship.

- README install snippet and the GoReleaser release-notes footer now
  recommend `mise use github:Staffbase/gq@<tag>`. mise's `ubi:` backend
  prints a deprecation warning since the `github:` backend supersedes
  it; both download from the same release assets.

- README install no longer mentions Homebrew. There is no public tap,
  and recommending one in a public OSS README would be misleading.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@harikaduyu harikaduyu marked this pull request as ready for review May 21, 2026 12:18
@harikaduyu harikaduyu requested a review from a team as a code owner May 21, 2026 12:18
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 hardens the repo’s GitHub Actions supply-chain security by SHA-pinning all uses: references, and updates end-user installation guidance to use mise’s supported github: backend (plus removes a misleading Homebrew instruction).

Changes:

  • Pinned all GitHub Actions uses: references in CI/CLA/release workflows to full commit SHAs with version annotations.
  • Updated installation snippets in README.md and GoReleaser release notes from ubi: to github: for mise.
  • Removed the README’s Homebrew tap install line that doesn’t apply to OSS readers.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
README.md Replaces install instructions with mise (github backend) and Go install, and adds a releases-page fallback.
.goreleaser.yml Updates the release notes footer install snippet to use mise github: backend.
.github/workflows/release.yml Pins checkout/setup-go/goreleaser actions to SHAs for the release workflow.
.github/workflows/cla.yml Pins CLA Assistant action to a full SHA.
.github/workflows/ci.yml Pins checkout/setup-go/golangci-lint actions to SHAs for CI jobs.

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

Comment thread README.md Outdated
Comment thread .goreleaser.yml Outdated
harikaduyu and others added 2 commits May 21, 2026 14:48
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 21, 2026 12:49
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/ci.yml Outdated
harikaduyu and others added 3 commits May 21, 2026 14:57
Per Micha's review: while we're SHA-pinning, also bump release.yml
to current majors (matches ci.yml's pinning).

- actions/checkout      v4.3.1 → v6.0.2
- actions/setup-go      v5.6.0 → v6.4.0
- goreleaser-action     v6.4.0 → v7.2.2

goreleaser-action v7's only breaking change is internal Node 24 / ESM
migration; how we invoke it (`distribution`, `version`, `args`) is
unchanged.

Co-Authored-By: Claude Opus 4.7
Copilot Autofix added the global flag to README (`--global`) and
goreleaser footer (`-g`) in separate commits. Normalize on the long
form for consistency with the README and clarity in docs.

Co-Authored-By: Claude Opus 4.7
Copy link
Copy Markdown
Member

@monotek monotek left a comment

Choose a reason for hiding this comment

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

LGTM. I think the Copiliot suggestion should be merged too...

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 22, 2026 09:06
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/ci.yml Outdated
Comment on lines +49 to +51
- uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
with:
version: latest
version: v1.64.8
golangci-lint-action >= v7 explicitly rejects v1.x with
"invalid version string 'v1.64.8', golangci-lint v1 is not supported
by golangci-lint-action >= v7" — CI was failing for that reason.
v2.12.2 is the current stable golangci-lint release (2026-05-06)
and is compatible with the Go toolchain declared in go.mod.

Also bumps the action SHA to v9.2.1 (patch release, 2026-05-22)
since we're in the area.

Co-Authored-By: Claude Opus 4.7
@harikaduyu harikaduyu merged commit 142b9f4 into main May 22, 2026
9 checks passed
@harikaduyu harikaduyu deleted the chore-pin-actions-and-mise-prefix branch May 22, 2026 11:12
@github-actions github-actions Bot locked and limited conversation to collaborators May 22, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants