Sign release binaries with GitHub build provenance attestations
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 62/100
調査の方向性
変更は cli-release.yml ワークフローに入ります。まずジョブの既存の permissions ブロックを確認し、goreleaser が dist/checksums.txt を生成する箇所と、softprops/action-gh-release がアセットを公開する箇所を見つけてください。issue に書かれたとおり、その2つの箇所の間に attestations 権限と actions/attest-build-provenance ステップを追加します。ワークフローが引き続き実行され、ビルドされたアセットがリポジトリに対して gh attestation verify に合格すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
What problem are you trying to solve?
Release assets are verifiable only against checksums.txt, published through the same channel. That detects a corrupted download; it cannot distinguish artifacts built by cli-release.yml from artifacts uploaded by anyone holding release permissions and able to update checksums.txt at the same time.
This matters a bit more since 0.19.0: devbox version update now replaces /usr/local/bin/devbox with the release binary itself, asking for sudo to do so. The downloaded binary is written to a root-owned path by the updater, where previously only the small launcher script lived there and the binary stayed under ~/.cache.
What solution would you like?
Attest the release artifacts in cli-release.yml. The job already has id-token: write; add
permissions:
attestations: write
and one step after goreleaser, before softprops/action-gh-release:
- uses: actions/attest-build-provenance@v2
with:
subject-checksums: dist/checksums.txt
Keyless (Sigstore), no key to manage, no change to the published assets. Any download can then be verified with
gh attestation verify devbox_0.19.0_linux_amd64.tar.gz --repo jetify-com/devbox
and the launcher or version update could run the same check before installing.
Happy to ask my Muse Wonder to send the PR if you'd take it. We run devbox as the trust root of an agent fleet and adopt releases on day 0 (fail forward fast + report upstream fast); build provenance is the one check we can't do on our side. Thanks in advance, Pallieter @ CopyHosting & eBrain.
Alternatives you've considered
No response
- 主要言語
- Go
- スター
- 12.4k
- フォーク
- 358
- 平均マージ
- 17時間 12分
- マージ済み PR(30日)
- 31
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
jetify-com/devbox のほかの issue
-
pulumi is outdatedオープンbug p4 package processed triage unrelated
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
jetify-com/devbox#2898 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
p4 processed unrelated
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
jetify-com/devbox#2750 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Storydenオープンp4 package processed triage unrelated
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
jetify-com/devbox#2685 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
looks easy p4 package processed triage
難易度 2/5 1〜3時間 初心者へのやさしさ 60/100
jetify-com/devbox#2656 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
feature triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
jetify-com/devbox#2369 · リアクション 3 件 ·
メンテナーはふだん 1 日以内に返信
jetify-com/devbox の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
hyperledger/fabric-x-orderer#1409 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
needs-area
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Azure/typespec-azure#5936 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 70/100
-
Fix mode unpins a reusable workflow call when the same repository is also used as a step actionオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
github/gh-actions-lock#261 ·
メンテナーはふだん 1 日以内に返信