open-code-review/.github
chethanuk ce1d1487f0
ci: pin govulncheck, narrow release permissions (#436)
Pin govulncheck to v1.6.0 instead of @latest. The argument is
reproducibility, not supply chain: golang.org/x/vuln is the Go team's
own module and go install is already checksum-verified via GOSUMDB.
What @latest costs is a new govulncheck release turning CI red on an
unchanged tree. This gate is load-bearing - e6e5da0 bumped the Go image
to fix GO-2026-5856 after govulncheck caught it - so protecting it from
unrelated churn is worth a pin.

Pinning costs nothing in scan freshness: the vulnerability database is
fetched at runtime, independently of the binary version. Verified:
Scanner govulncheck@v1.6.0, DB updated 2026-07-08, no vulnerabilities,
exit 0.

Narrow release.yml's workflow-level permissions from contents: write to
contents: read. Only the build job inherits it, and it only checks out
and uploads artifacts - upload-artifact authenticates with
ACTIONS_RUNTIME_TOKEN, not GITHUB_TOKEN. The release and npm-publish
jobs declare their own job-level permissions, which replace the
inherited set entirely, so both are unaffected.

Verified with actionlint (clean across all workflows) and by confirming
the release.yml still parses as YAML.
2026-08-04 14:52:29 +08:00
..
ISSUE_TEMPLATE chore: route security reports to private advisories (#435) 2026-07-22 11:35:22 +08:00
workflows ci: pin govulncheck, narrow release permissions (#436) 2026-08-04 14:52:29 +08:00
dependabot.yml chore(deps): let dependabot cover the VS Code extension (#437) 2026-07-23 20:28:34 +08:00
pull_request_template.md Add issue and PR templates with bilingual contributing guide (#9) 2026-05-30 14:22:50 +08:00
release.yml feat(release): auto-generate structured release notes from conventional commits 2026-06-22 15:52:06 +08:00