Repository navigation
Build with Go 1.27.3 and run the required checks on pull requests - #14
Merged
Merged
Conversation
govulncheck failed on main with GO-2026-6809 (crypto/x509 distrusts compromised intermediate certificates), fixed in go1.27.3. Bump the mise pin and go.mod's toolchain line; release builds take Go from mise.toml, so the next binaries and image carry the fix. The go line (minimum for go install) stays at 1.25. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main's ruleset requires lint, package and test on all three OSes, but test.yml skipped every job on push and pull_request events while the repository is private, and a skipped matrix job reports as plain `test`. No pull request could report the required checks, and a run started by hand does not count toward one. Pull requests now run test, lint and package while the repository is private; branch pushes still run nothing and install-scripts stays hand-run. Once the repository is public every job runs on every event, as before, so nothing needs undoing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The CLI talks to the SaladCloud API over HTTPS, and it checks the server's certificate with the certificate code in
Go's standard library, which is built into every binary. The Go version we pinned, 1.27.2, does not reject certain
intermediate certificates that are known to be compromised
(GO-2026-6809). The vulnerability scanner in our lint step found that the
CLI's code can reach that check, so
just ciand CI's lint job failed onmainand on every branch. This pins Go1.27.3, which rejects those certificates. Release builds take Go from the same pin, so the next binaries and container
image include the fix.
This PR also lets pull requests run CI while the repository is private.
main's ruleset requireslint,packageand
teston all three OSes, buttest.ymlskipped every job on pushes and pull requests while the repository isprivate. A skipped matrix job reports only as plain
test, and a run started by hand doesn't count toward a pullrequest, so no pull request could ever report the required checks. The two changes go together because neither can
merge alone: a CI-only PR fails
linton Go 1.27.2.Changes
mise.toml:go = "1.27.3".test.ymlandrelease.ymlinstall Go from here through.github/actions/setup-mise.go.mod:toolchain go1.27.3, to match. Thego 1.25line stays, so the minimum Go forgo installisunchanged.
CHANGELOG.md: a### Securityentry under Unreleased..github/workflows/test.yml:test,lintandpackagenow run on pull requests while the repository is private(
github.event_name != 'push' || !github.event.repository.private). Branch pushes still run nothing while private,and
install-scriptsstays hand-run (gh workflow run test.yml --ref <branch>) to save macOS minutes. Once therepository is public, every job runs on every event, as before, so nothing needs undoing at launch.
Nothing else pins the Go version:
.goreleaser.yaml, the workflows and the Dockerfile all inherit it.Checklist
just cipasses (formatting, lint, and the offline tests): run locally on Windows with Go 1.27.3; govulncheckreports no vulnerabilities. This PR's own run now reports the required checks on all three OSes.
docs/(and the README, if install or getting started changed) andCHANGELOG.md(under Unreleased) reflect thechange: CHANGELOG updated for the Go bump; the CI change isn't user-visible; nothing in
docs/or the READMEnames the Go patch version.
but the new toolchain changes the certificate check behind every HTTPS request. The live suite was not run.
🤖 Generated with Claude Code