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
| Artefact | But |
|---|---|
*.whl, *.tar.gz | Wheels Python et distributions de source. |
SHA256SUMS.txt | Hachages SHA-256 pour chaque artefact de distribution. |
*.sigstore.json | Paquet de signature Sigstore (un par artefact). |
sbom.cyclonedx.json | SBOM 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.txtChaque 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.whlUne 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/dispatchatlasLa 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.