Saltar al contenido
DispatchAtlas
Buscar

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

ArtefactoPropósito
*.whl, *.tar.gzWheels de Python y distribuciones de fuente.
SHA256SUMS.txtHashes SHA-256 para cada artefacto de distribución.
*.sigstore.jsonPaquete de firma Sigstore (uno por artefacto).
sbom.cyclonedx.jsonSBOM 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.txt

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

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

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