릴리스 검증
모든 DispatchAtlas 릴리스 후보는 단일 감사된 워크플로에 의해 빌드되며, 이 워크플로는 Python 배포와 나란히 독립적으로 검증 가능한 공급망 산출물 세트를 발행합니다: SHA-256 해시, Sigstore signature bundles, GitHub build provenance attestations, 하나의 SBOM attestation, 그리고 CycloneDX software bill of materials. 이 페이지는 각각을 어떻게 검증하는지 문서화합니다.
문서 전반에서 vX.Y.Z 를 다운로드한 릴리스 태그로 교체하세요.
📦 릴리스에 첨부된 산출물
| 산출물 | 목적 |
|---|---|
*.whl, *.tar.gz | Python wheel 과 소스 배포. |
SHA256SUMS.txt | 각 배포 산출물의 SHA-256 해시. |
*.sigstore.json | Sigstore signature bundle (산출물당 하나). |
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🚨 검증 실패 보고
공식 릴리스에서 다운로드한 산출물에 대해 어떤 검증 단계가 실패하면, 설치하지 마세요. 프로젝트 보안 정책의 채널을 통해 불일치를 보고하세요.