Repository navigation
ci: adopt OSS CI and supply-chain best practices - #62
Merged
Merged
Conversation
- remove online integration workflow; offline dummy smoke test in build - pin all actions by SHA, dependabot for github-actions - least-privilege permissions, concurrency, timeouts - go-version-file, go mod tidy -diff, -race, gofmt/goimports - govulncheck replaces syft+grype gate - add CodeQL, OpenSSF Scorecard, zizmor - release: goreleaser SBOMs per archive, cosign-signed checksums, build provenance attestation Closes #39 Closes #61
wiebe-vandendriessche
force-pushed
the
ci/hardening
branch
from
October 7, 2026 14:42
b3ec0c1 to
437338c
Compare
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
This was referenced Oct 7, 2026
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
Brings CI in line with what large Go OSS projects (Kubernetes, Syft/Grype, cosign, Helm) use as a baseline, and removes the flaky online integration workflow.
build.yml
integration.ymldeleted ([fix] remove integration GH actions #39): 4 of 6 jobs hit huggingface.co unauthenticated (rate limits / upstream drift),go runrecompiled 1+2N times per job, thedistcache was a no-op, and it wasn't part of the required gate. Its offline value is kept as one dummy-mode smoke step (scan→validate --strict→completeness).go-version-file: go.mod(no more1.27.xin 3 places),go mod tidy -diff(the oldgo mod tidynever failed),go test -race. The 50% coverage gate from Refactor: remove dead code and duplication (~3.2k lines) #60 is kept (currently 54.5%).buildgate now coverstest+zizmor.permissions: contents: read,concurrencywith cancel-in-progress,timeout-minutes,persist-credentials: false.Supply chain
github-actions(both ecosystems weekly, grouped).codeql.yml(Go) andscorecard.yml(OpenSSF Scorecard + README badge).sboms:generates a CycloneDX SBOM per shipped archive (previously the SBOM described a separatego build, not the release binaries); cosign keyless-signschecksums.txt(previously only the vulnerability report was signed);actions/attest-build-provenanceadds SLSA provenance; goreleaser pinned to~> v2; Go cache disabled in release builds (cache-poisoning).Misc
go mod tidy: Refactor: remove dead code and duplication (~3.2k lines) #60 leftgo.moduntidy (spf13/pflagis now a direct dependency), which the newtidy -diffcheck caught..golangci.yml: gofmt + goimports formatters. Fixed the 7//.doc-comment lines that failed gofmt.Related issue
Closes #39
Closes #61
Type of change
CI / config only. No code behavior change.
Verification
actionlint: cleanzizmor --offline: no findingsgoreleaser check+goreleaser release --snapshot --clean --skip=sign: builds all 6 archives and a.cdx.jsonSBOM per archivego test -race ./...,golangci-lint run(with formatters),go mod tidy -diff,govulncheck ./...: all passNotes for maintainers
build.