Pular para o conteúdo
DispatchAtlas
Buscar

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

ArtefatoPropósito
*.whl, *.tar.gzWheels Python e distribuições de fonte.
SHA256SUMS.txtHashes SHA-256 para cada artefato de distribuição.
*.sigstore.jsonPacote de assinatura Sigstore (um por artefato).
sbom.cyclonedx.jsonSBOM 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.txt

Cada 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.whl

Uma 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/dispatchatlas

A 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.