本文へスキップ
DispatchAtlas
検索

リリースの検証

すべての DispatchAtlas リリース候補は、単一の監査済みワークフローによってビルドされ、 Python ディストリビューションと並んで、独立に検証可能なサプライチェーン成果物のセットを 発行します: SHA-256 ハッシュ、Sigstore signature bundles、GitHub build provenance attestations、1 つの SBOM attestation、そして CycloneDX software bill of materials。 このページは各々をどう検証するかを文書化します。

全体を通じて vX.Y.Z を、ダウンロードしたリリースタグに置き換えてください。

📦 リリースに添付される成果物

成果物目的
*.whl*.tar.gzPython wheel とソースディストリビューション。
SHA256SUMS.txt各ディストリビューション成果物の SHA-256 ハッシュ。
*.sigstore.jsonSigstore 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.txtsbom.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

🚨 検証失敗の報告

公式リリースからダウンロードした成果物のいずれかの検証ステップが失敗した場合、それを インストールしないでください。プロジェクトの セキュリティポリシーの チャネルを通じて不一致を報告してください。