Commit 7456b62
committed
ci: pin autotag binary by version + sha256
Replace the deprecated `git.io/autotag-install` one-liner with a direct
download of `autotag_linux_amd64` from a pinned release, verified against a
hardcoded SHA-256.
Why:
- The installer is generated by godownloader (also deprecated upstream) and,
while it does check the checksum file published with each GitHub release,
those checksums are mutable — anyone who can publish a release can publish
matching checksums. There's no way to pin an out-of-band expected SHA.
- autotag's maintainers are me and a couple of trusted ex-coworkers
(incl. @will.milton) and I trust the code, but a compromise of the
`autotag-dev` org or a maintainer account would silently flow into every
pipeline that runs the installer. Hardcoding the SHA in our workflow makes
that class of supply-chain attack fail loudly.
- autotag rarely changes and we only use its most basic functionality, so we
don't upgrade often. Grabbing the new binary's SHA from `checksums.txt`
on bump is a cheap one-time step for meaningful hardening.
See: https://github.com/autotag-dev/autotag/blob/main/README.md (CI install
section) for the recommended pattern.1 parent 416d8ba commit 7456b62
1 file changed
Lines changed: 14 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
48 | 62 | | |
49 | 63 | | |
50 | 64 | | |
51 | | - | |
52 | | - | |
53 | 65 | | |
54 | 66 | | |
55 | 67 | | |
| |||
0 commit comments