Перейти к содержимому
DispatchAtlas
Поиск

Верификация выпусков

Каждый кандидат выпуска DispatchAtlas собирается единственным аудированным рабочим процессом, который наряду с дистрибутивами Python эмитирует набор независимо верифицируемых артефактов цепочки-поставок: хеши SHA-256, Sigstore signature bundles, GitHub build provenance attestations, один SBOM attestation, и CycloneDX software bill of materials. Эта страница документирует, как верифицировать каждый.

Заменяйте vX.Y.Z тегом выпуска, который вы скачали, повсюду.

📦 Артефакты, прикреплённые к выпуску

АртефактНазначение
*.whl, *.tar.gzPython-wheel и дистрибутивы исходников.
SHA256SUMS.txtХеши SHA-256 для каждого артефакта дистрибутива.
*.sigstore.jsonSigstore signature bundle (один на артефакт).
sbom.cyclonedx.jsonCycloneDX-SBOM аудированной среды сборки.

GitHub build provenance и SBOM attestations хранятся с записями attestation репозитория, а не как вложения выпуска, и верифицируются через GitHub CLI.

🔢 Верифицируйте хеши

Скачайте артефакты дистрибутива и SHA256SUMS.txt в один каталог, затем проверьте их:

sha256sum --check SHA256SUMS.txt

Каждая строка должна сообщить OK.

✍️ Верифицируйте подписи Sigstore

Выпуск подписывает каждый артефакт бесключевой подписью Sigstore через OpenID-Connect-идентичность рабочего процесса. Установите cosign и верифицируйте bundle для артефакта:

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

Успешный прогон печатает Verified OK. Та же команда верифицирует SHA256SUMS.txt и sbom.cyclonedx.json против их bundle.

🧾 Верифицируйте GitHub build provenance

Каждый дистрибутив несёт подписанное provenance-утверждение, описывающее рабочий процесс, коммит, и runner, который его собрал. Верифицируйте его с GitHub CLI:

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

Вывод подтверждает, что артефакт был собран рабочим процессом выпуска на ожидаемом коммите.

🧰 Инспектируйте SBOM

CycloneDX-SBOM перечисляет каждый компонент в среде сборки с его URL пакета, лицензией, и хешами содержимого. Инспектируйте его любым CycloneDX-осведомлённым инструментом, или читайте список компонентов напрямую:

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

SBOM сам attested; верифицируйте SBOM attestation с:

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

🚨 Сообщение о сбое верификации

Если какой-либо шаг верификации проваливается для артефакта, который вы скачали из официального выпуска, не устанавливайте его. Сообщите о расхождении через каналы в политике безопасности проекта.