Repository navigation
feat(release): attest where the installers come from, and list their SHA-256 - #50
Merged
Merged
Conversation
…SHA-256 Each release now carries a build provenance attestation for both installers (actions/attest@v4, SLSA provenance signed through Sigstore): anyone can check with `gh attestation verify <file> --repo httpsphl/botloft` that a download came from this workflow, this repository and that commit. The draft's notes open with "Verify your download": the SHA-256 of both installers and that command. release.yml now stages, attests, then publishes. `release.mjs stage` prints the SHA-256 of what it staged, and `publish` uploads what `stage` left and refuses without it, so the attested files are the ones uploaded. VirusTotal stays out of the notes while the setup window has machine-learning detections (2 of 71 on 0.6.0), pending the false positive review. Spec 15.5 records both.
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.
What
actions/attest@v4(SLSA provenance, signed through Sigstore). Anyone can check that a download came from this workflow, this repository and that commit:id-token,attestationsandartifact-metadatawrite permissions for this.--notesbefore the notes it generates.release.ymlstages, attests, then publishes.release.mjs stageprints the SHA-256 of what it staged;publishuploads whatstageleft and refuses without it, so the attested files are exactly the ones uploaded.CLAUDE.mddescribe it.Why not VirusTotal yet
0.6.0's setup window scored 2 of 71 on VirusTotal, both machine-learning detections (Microsoft
Trojan:Win32/Wacatac.C!mland TrapmineMalicious.moderate.ml.score); the NSIS-update.exeshowed none. A "2/71" link would worry people more than reassure them, so it stays out of the notes until the false positive is cleared. Spec 15.5 records this.Tests
release.mjs stagelocally (with a stand-in.sig) staged both installers and printed their SHA-256;publishwithout staged files stops before callinggh.Still to see
gh attestation verifyon its setup.