Verificar lançamentos
Cada candidato de lançamento do DispatchAtlas é compilado por um único fluxo de trabalho auditado que emite, junto às distribuições Python, um conjunto de artefatos de cadeia-de-suprimento verificáveis de forma independente: hashes SHA-256, pacotes de assinatura Sigstore, GitHub build provenance attestations, um SBOM attestation, e um software bill of materials CycloneDX. Esta página documenta como verificar cada um.
Substitua vX.Y.Z pela etiqueta de lançamento que você baixou em todo o documento.
📦 Artefatos anexados a um lançamento
| Artefato | Propósito |
|---|---|
*.whl, *.tar.gz | Wheels Python e distribuições de fonte. |
SHA256SUMS.txt | Hashes SHA-256 para cada artefato de distribuição. |
*.sigstore.json | Pacote de assinatura Sigstore (um por artefato). |
sbom.cyclonedx.json | SBOM CycloneDX do ambiente de build auditado. |
GitHub build provenance e SBOM attestations são armazenados com os attestation records do repositório em vez de como anexos de lançamento, e são verificados através da CLI do GitHub.
🔢 Verifique os hashes
Baixe os artefatos de distribuição e SHA256SUMS.txt no mesmo diretório, depois
verifique-os:
sha256sum --check SHA256SUMS.txtCada linha deve reportar OK.
✍️ Verifique as assinaturas Sigstore
O lançamento assina cada artefato com assinatura Sigstore sem-chave através da identidade OpenID Connect do fluxo de trabalho. Instale cosign e verifique o pacote para um artefato:
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.whlUma execução bem-sucedida imprime Verified OK. O mesmo comando verifica SHA256SUMS.txt
e sbom.cyclonedx.json contra seus pacotes.
🧾 Verifique a GitHub build provenance
Cada distribuição carrega uma declaração de provenance assinada descrevendo o fluxo de trabalho, o commit, e o runner que a compilou. Verifique-a com a CLI do GitHub:
gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
--repo ahmed-g-gad/dispatchatlasA saída confirma que o artefato foi compilado pelo fluxo de trabalho de lançamento no commit esperado.
🧰 Inspecione o SBOM
O SBOM CycloneDX enumera cada componente no ambiente de build com sua URL de pacote, licença, e hashes de conteúdo. Inspecione-o com qualquer ferramenta consciente de CycloneDX, ou leia a lista de componentes diretamente:
python -c "import json; d = json.load(open('sbom.cyclonedx.json')); \
print('\n'.join(c['name'] + ' ' + c.get('version', '') for c in d['components']))"O SBOM é ele mesmo attested; verifique o SBOM attestation com:
gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
--repo ahmed-g-gad/dispatchatlas \
--predicate-type https://cyclonedx.org/bom🚨 Reportar uma falha de verificação
Se algum passo de verificação falhar para um artefato que você baixou de um lançamento oficial, não o instale. Reporte a discrepância através dos canais na política de segurança do projeto.