リリースの検証
すべての DispatchAtlas リリース候補は、単一の監査済みワークフローによってビルドされ、 Python ディストリビューションと並んで、独立に検証可能なサプライチェーン成果物のセットを 発行します: SHA-256 ハッシュ、Sigstore signature bundles、GitHub build provenance attestations、1 つの SBOM attestation、そして CycloneDX software bill of materials。 このページは各々をどう検証するかを文書化します。
全体を通じて vX.Y.Z を、ダウンロードしたリリースタグに置き換えてください。
📦 リリースに添付される成果物
| 成果物 | 目的 |
|---|---|
*.whl、*.tar.gz | Python wheel とソースディストリビューション。 |
SHA256SUMS.txt | 各ディストリビューション成果物の SHA-256 ハッシュ。 |
*.sigstore.json | Sigstore signature bundle(成果物ごとに 1 つ)。 |
sbom.cyclonedx.json | 監査済みビルド環境の CycloneDX SBOM。 |
GitHub build provenance と SBOM attestations は、リリース添付ではなくリポジトリの attestation records とともに保存され、GitHub CLI を通じて検証されます。
🔢 ハッシュを検証
ディストリビューション成果物と SHA256SUMS.txt を同じディレクトリにダウンロードし、
それらをチェックします:
sha256sum --check SHA256SUMS.txt各行は OK を報告しなければなりません。
✍️ Sigstore 署名を検証
リリースは、ワークフローの OpenID Connect アイデンティティを通じたキーレス Sigstore 署名で 各成果物に署名します。cosign をインストールし、成果物の bundle を検証します:
cosign verify-blob \
--bundle dispatchatlas-vX.Y.Z-py3-none-any.whl.sigstore.json \
--certificate-identity-regexp 'https://github.com/ahmed-g-gad/dispatchatlas/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
dispatchatlas-vX.Y.Z-py3-none-any.whl成功した実行は Verified OK を印字します。同じコマンドが SHA256SUMS.txt と
sbom.cyclonedx.json をそれらの bundle に対して検証します。
🧾 GitHub build provenance を検証
各ディストリビューションは、ワークフロー、コミット、それをビルドした runner を記述する 署名済み provenance ステートメントを携えます。GitHub CLI で 検証します:
gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
--repo ahmed-g-gad/dispatchatlas出力は、成果物が期待されるコミットでリリースワークフローによりビルドされたことを確認します。
🧰 SBOM を検査
CycloneDX SBOM は、ビルド環境内の各コンポーネントを、そのパッケージ URL、ライセンス、 コンテンツハッシュとともに列挙します。任意の CycloneDX 対応ツールで検査するか、コンポーネント リストを直接読みます:
python -c "import json; d = json.load(open('sbom.cyclonedx.json')); \
print('\n'.join(c['name'] + ' ' + c.get('version', '') for c in d['components']))"SBOM 自体が attested です; 次で SBOM attestation を検証します:
gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
--repo ahmed-g-gad/dispatchatlas \
--predicate-type https://cyclonedx.org/bom🚨 検証失敗の報告
公式リリースからダウンロードした成果物のいずれかの検証ステップが失敗した場合、それを インストールしないでください。プロジェクトの セキュリティポリシーの チャネルを通じて不一致を報告してください。