Aller au contenu
DispatchAtlas
Rechercher

Vérifier les publications

Chaque candidat de publication DispatchAtlas est compilé par un unique workflow audité qui émet, à côté des distributions Python, un ensemble d'artefacts de chaîne-d'approvisionnement vérifiables de façon indépendante : hachages SHA-256, paquets de signature Sigstore, GitHub build provenance attestations, un SBOM attestation, et un software bill of materials CycloneDX. Cette page documente comment vérifier chacun.

Remplacez vX.Y.Z par l'étiquette de publication que vous avez téléchargée partout.

📦 Artefacts attachés à une publication

ArtefactBut
*.whl, *.tar.gzWheels Python et distributions de source.
SHA256SUMS.txtHachages SHA-256 pour chaque artefact de distribution.
*.sigstore.jsonPaquet de signature Sigstore (un par artefact).
sbom.cyclonedx.jsonSBOM CycloneDX de l'environnement de build audité.

GitHub build provenance et SBOM attestations sont stockés avec les attestation records du dépôt plutôt que comme pièces jointes de publication, et sont vérifiés à travers la CLI GitHub.

🔢 Vérifiez les hachages

Téléchargez les artefacts de distribution et SHA256SUMS.txt dans le même répertoire, puis vérifiez-les :

sha256sum --check SHA256SUMS.txt

Chaque ligne doit rapporter OK.

✍️ Vérifiez les signatures Sigstore

La publication signe chaque artefact avec une signature Sigstore sans-clé à travers l'identité OpenID Connect du workflow. Installez cosign et vérifiez le paquet pour un artefact :

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

Une exécution réussie imprime Verified OK. La même commande vérifie SHA256SUMS.txt et sbom.cyclonedx.json contre leurs paquets.

🧾 Vérifiez la GitHub build provenance

Chaque distribution porte une déclaration de provenance signée décrivant le workflow, le commit, et le runner qui l'a compilée. Vérifiez-la avec la CLI GitHub :

gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
  --repo ahmed-g-gad/dispatchatlas

La sortie confirme que l'artefact a été compilé par le workflow de publication au commit attendu.

🧰 Inspectez le SBOM

Le SBOM CycloneDX énumère chaque composant dans l'environnement de build avec son URL de paquet, sa licence, et ses hachages de contenu. Inspectez-le avec n'importe quel outil conscient de CycloneDX, ou lisez la liste de composants directement :

python -c "import json; d = json.load(open('sbom.cyclonedx.json')); \
print('\n'.join(c['name'] + ' ' + c.get('version', '') for c in d['components']))"

Le SBOM est lui-même attested ; vérifiez le SBOM attestation avec :

gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
  --repo ahmed-g-gad/dispatchatlas \
  --predicate-type https://cyclonedx.org/bom

🚨 Signaler un échec de vérification

Si une étape de vérification échoue pour un artefact que vous avez téléchargé d'une publication officielle, ne l'installez pas. Signalez la divergence à travers les canaux dans la politique de sécurité du projet.