Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/vole.git

Write over SSH with a registered key:

git clone ssh://git@rodent.software:2222/vole.git

A free and open-source forge that lives in your Git repo.

Build and scan with the Go 1.27.3 toolchain

536f08b97b043993cce9a1c78ba5a606815b19d9 · Keenan Nemetz · 14d ago · parent e698b495

Build and scan with the Go 1.27.3 toolchain

govulncheck on Go 1.27.1 reports 13 reachable standard-library
vulnerabilities (net/http, HTTP/2, crypto/tls, crypto/x509,
html/template, net/textproto). Most fix in 1.27.2; GO-2026-6809 in
crypto/x509 fixes in 1.27.3.

Pin the toolchain in go.mod, run verify and release in an image that
carries it, and make reachable vulnerabilities fail both. The base image
is pinned by digest so the compiler that passes a push is the compiler
the tag is built with, and the scanner is pinned like nfpm already is.

The release build also sets SOURCE_DATE_EPOCH from the tag and drops the
build id, so the same tag rebuilds byte for byte.

Dependencies are refreshed to their current releases: x/net 0.61.0,
libc 1.79.1, msgp 1.6.5, regexp2 2.11.0, cbor 2.9.6, fwd 1.2.1. x/crypto
is already at its latest v0.58.0; the remaining GO-2026-5932 module
finding is the unused openpgp package, which the scan does not count as
reachable.

.vole/images/verify.yaml +6−1

@@ -2,6 +2,11 @@
2 2 # (with gcc, so -race works), git and the ssh client and keygen the server tests
3 3 # spawn, and python3 for the link check.
4 4 #
5 # The toolchain is the one go.mod pins (go 1.27.3), and the base image is pinned
6 # by digest so the scanner and the compiler that pass a push are the ones the
7 # release is built with. Bump both together, and bump the govulncheck version in
8 # the workflows when the scanner moves.
9 #
5 10 # The ci user exists for OpenSSH: ssh and ssh-keygen call getpwuid() and exit 255
6 11 # with "No user exists for uid N" when the running uid has no passwd entry, which
7 12 # the server tests hit. The container runs as the host's uid (so the bind-mounted
@@ -12,7 +17,7 @@
12 17 # nfpm is not installed here: the packaging step fetches it at a pinned version, so
13 18 # that a local run and a pushed run execute the same command.
14 19 version: 1
15 from: golang:1.27-bookworm
20 from: golang:1.27.3-bookworm@sha256:972b4110ba0f47539a975c31e52c64765e1ff19f2d74469ae4a595c6676e80a5
16 21 env:
17 22 CGO_ENABLED: "1"
18 23 # Opt in to the cache the runner mounts at /cache. Nothing is cached unless the