Verificar lanzamientos
Cada candidato de lanzamiento de DispatchAtlas es compilado por un único flujo de trabajo auditado que emite, junto a las distribuciones de Python, un conjunto de artefactos de cadena-de-suministro verificables de forma independiente: hashes SHA-256, paquetes de firma Sigstore, GitHub build provenance attestations, un SBOM attestation, y un software bill of materials CycloneDX. Esta página documenta cómo verificar cada uno.
Reemplaza vX.Y.Z con la etiqueta de lanzamiento que descargaste en todo momento.
📦 Artefactos adjuntos a un lanzamiento
| Artefacto | Propósito |
|---|---|
*.whl, *.tar.gz | Wheels de Python y distribuciones de fuente. |
SHA256SUMS.txt | Hashes SHA-256 para cada artefacto de distribución. |
*.sigstore.json | Paquete de firma Sigstore (uno por artefacto). |
sbom.cyclonedx.json | SBOM CycloneDX del entorno de build auditado. |
GitHub build provenance y SBOM attestations se almacenan con los registros de attestation del repositorio en lugar de como adjuntos de lanzamiento, y se verifican a través de la CLI de GitHub.
🔢 Verifica los hashes
Descarga los artefactos de distribución y SHA256SUMS.txt en el mismo directorio, luego
compruébalos:
sha256sum --check SHA256SUMS.txtCada línea debe reportar OK.
✍️ Verifica las firmas Sigstore
El lanzamiento firma cada artefacto con firma Sigstore sin-clave a través de la identidad OpenID Connect del flujo de trabajo. Instala cosign y verifica el paquete para un artefacto:
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.whlUna ejecución exitosa imprime Verified OK. El mismo comando verifica SHA256SUMS.txt y
sbom.cyclonedx.json contra sus paquetes.
🧾 Verifica la GitHub build provenance
Cada distribución lleva una declaración de provenance firmada que describe el flujo de trabajo, el commit, y el runner que la compiló. Verifícala con la CLI de GitHub:
gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
--repo ahmed-g-gad/dispatchatlasLa salida confirma que el artefacto fue compilado por el flujo de trabajo de lanzamiento en el commit esperado.
🧰 Inspecciona el SBOM
El SBOM CycloneDX enumera cada componente en el entorno de build con su URL de paquete, licencia, y hashes de contenido. Inspecciónalo con cualquier herramienta consciente de CycloneDX, o lee la lista de componentes directamente:
python -c "import json; d = json.load(open('sbom.cyclonedx.json')); \
print('\n'.join(c['name'] + ' ' + c.get('version', '') for c in d['components']))"El SBOM está él mismo attested; verifica el SBOM attestation con:
gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
--repo ahmed-g-gad/dispatchatlas \
--predicate-type https://cyclonedx.org/bom🚨 Reportar un fallo de verificación
Si algún paso de verificación falla para un artefacto que descargaste de un lanzamiento oficial, no lo instales. Reporta la discrepancia a través de los canales en la política de seguridad del proyecto.