Repository navigation
Question about checksum verification UX in lazygit releases #5578
Replies: 2 comments
|
The comparison step isn't actually the weak link here, which is why I'd be careful about what problem a shorter command solves.
The thing worth flagging is that these releases aren't signed at all right now. On the UX point itself, curl -sLO https://github.com/jesseduffield/lazygit/releases/download/v0.45.2/checksums.txt
curl -sLO https://github.com/jesseduffield/lazygit/releases/download/v0.45.2/lazygit_0.45.2_Linux_x86_64.tar.gz
grep lazygit_0.45.2_Linux_x86_64.tar.gz checksums.txt | sha256sum -c
# lazygit_0.45.2_Linux_x86_64.tar.gz: OKand on tampering, which I also checked by flipping a byte: Exit status is 0/1, so it drops into CI as a gate with nothing to install ( Where I'd grant your premise: the failure modes are ugly enough that people do bounce off it. If the filename in that grep doesn't match exactly — |
|
The eyeball-comparison step isn't actually necessary — curl -LO https://github.com/jesseduffield/lazygit/releases/latest/download/checksums.txt
curl -LO https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_0.44.1_Linux_x86_64.tar.gz
sha256sum -c checksums.txt --ignore-missing
# lazygit_0.44.1_Linux_x86_64.tar.gz: OKNon-zero exit on mismatch, no manual diff. On macOS it's So I'd argue the fix is documenting this in the README rather than a new tool — one less binary to trust before you can verify the binary you actually wanted. Worth noting this only verifies integrity against the published checksum file, not authenticity of the release itself; for that you'd want signed checksums (e.g. cosign via GoReleaser). — |
Uh oh!
There was an error while loading. Please reload this page.
Quick question about the verification step in lazygit releases—
When downloading a binary, people run shasum/sha256sum and then compare hashes. That last step—comparing 64-character hashes by eye—is where things tend to break down (either skipped or done loosely).
I put together a minimal example that keeps the same checksum model but removes that comparison:
npx verafile verify file proof.json → VALID / INVALID
Example:
https://github.com/damonzwicker/verafile/tree/main/examples/open-source-release
Not about replacing signing—just turning verification into a clear result instead of a manual check.
Would simplifying that step increase how often people actually verify downloads?
All reactions