Артефакты выпуска и проверка¶
На этой странице перечислены артефакты выпусков Weblate и поддерживаемые каналы распространения, а также объясняется, как проверять артефакты, включающие опубликованные подписи, аттестации и SBOM. Информацию о поддерживаемых версиях и охвате обновлений безопасности см. в Выпуски и поддерживаемые версии. Информацию о мониторинге зависимостей и сканировании уязвимостей контейнеров см. в Зависимости.
Учёт артефактов выпуска¶
Выпуски Weblate и поддерживаемые каналы распространения публикуются через несколько каналов. В этом учёте перечислены артефакты, описанные в этом репозитории, и указано, где хранятся свидетельства их публикации. Для артефактов, поддерживаемых в родственных репозиториях Weblate, в таблице указан репозиторий, где находится автоматизация сборки и выпуска.
Артефакт или канал |
Владеющий репозиторий или расположение |
Целевая публикация |
Свидетельства в репозитории |
Примечания |
|---|---|---|---|---|
Выпуски исходного кода и активы выпусков GitHub |
|
|
Активы выпуска включают архивы дистрибутивов Python, примечания к выпуску и SBOM выпуска. |
|
Пакет Python |
|
Рабочий процесс распространения собирает, проверяет, подписывает и публикует пакет, используя доверенную публикацию PyPI. |
Метаданные пакета и зависимости поддерживаются в этом репозитории. |
|
Образы Docker |
Dockerfile Weblate, рабочий процесс образа Docker Weblate, рабочий процесс CI контейнера Docker Weblate, Установка с помощью Docker’а, Выпуск новых версий Weblate и |
Рабочий процесс собирает образы для нескольких архитектур, запускает тесты контейнеров, сканирует с помощью Anchore и Trivy и публикует в Docker Hub и GitHub Packages. Опубликованные дайджесты образов подписываются с помощью Cosign, а сборка публикует SBOM BuildKit и аттестации происхождения. |
||
Helm-чарт Kubernetes |
Helm-чарт Weblate, рабочий процесс выпуска Helm Weblate, рабочий процесс тестирования Helm Weblate, рабочий процесс проверки зависимостей Helm Weblate и Установка на Kubernetes |
Рабочий процесс выпуска чартов использует Helm chart-releaser для изменений в |
||
Документация |
|
|
Настройки проекта Read the Docs не хранятся в этом репозитории. |
|
Пакет Weblate Client и выпуски |
рабочий процесс распространения Weblate Client, метаданные Weblate Client и Клиент Weblate |
Рабочий процесс собирает и проверяет исходные артефакты и колеса, публикует в PyPI, используя доверенную публикацию, создаёт выпуски GitHub для тегов, прикрепляет файлы SBOM пакетов к выпускам GitHub и создаёт аттестации происхождения пакетов и SBOM. |
||
Образ Docker Weblate Client |
Dockerfile Weblate Client, рабочий процесс Docker Weblate Client и Клиент Weblate |
Рабочий процесс собирает образы для нескольких архитектур, тестирует образ клиента командной строки, сканирует с помощью Anchore и Trivy и публикует в Docker Hub и GitHub Packages. Опубликованные дайджесты образов подписываются с помощью Cosign, SBOM образов CycloneDX генерируются с помощью Syft, а аттестации происхождения образов и SBOM отправляются в реестры. |
Файлы Docker для разработки в dev-docker/ и определения контейнеров для фаззинга в .clusterfuzzlite/ являются инфраструктурой разработки и тестирования, а не производственными артефактами выпуска.
Файлы Docker Compose, включая репозиторий Docker Compose Weblate и примеры локальных переопределений, являются примерами конфигураций развёртывания, а не артефактами выпуска. Операторы обычно адаптируют их для своих развёртываний и обновляют Weblate в основном, выбирая или извлекая теги образов Docker. Они не охватываются подписями выпуска, SBOM или заявлениями о происхождении на этой странице.
Спецификация программного обеспечения (SBOM)¶
Weblate публикует спецификацию программного обеспечения (SBOM) в формате CycloneDX для выпущенных версий. SBOM доступен в виде версионированного файла weblate-<version>-sbom.cdx.json в ресурсах выпусков GitHub и также прикреплён к происхождению выпуска с использованием аттестаций артефактов GitHub. Это можно использовать для проверки зависимостей на предмет проблем безопасности или соответствия лицензиям.
SBOM выпуска записывает метаданные на уровне документа для минимальных элементов CISA 2025, включая автора SBOM, производителя программного обеспечения, инструменты генерации, временную метку, контекст генерации и идентификацию компонента выпуска Weblate. Детали компонентов зависимостей предоставляются генераторами SBOM экосистемы, используемыми во время выпуска. Поэтому полнота лицензий и хэшей компонентов Python зависит от поддержки экспорта CycloneDX в uv.
Проверка артефактов выпуска¶
Рабочий процесс выпуска Weblate публикует материалы для проверки исходного дистрибутива Weblate Python и колеса в активах выпусков GitHub. Активы выпуска включают архивы пакетов, пакеты подписей Sigstore, примечания к выпуску и SBOM выпуска. Те же архивы пакетов загружаются в PyPI с использованием доверенной публикации, но файлы пакетов Sigstore не загружаются в PyPI, потому что рабочий процесс выпуска удаляет файлы, не принимаемые PyPI, перед публикацией.
Проверяйте файлы, загруженные из активов выпусков GitHub, если вам нужны опубликованные подписи, аттестации и SBOM. Файлы пакетов PyPI можно сравнить с соответствующими активами выпусков GitHub по имени файла и дайджесту.
Подписи выпусков¶
Архивы пакетов Weblate криптографически подписываются с помощью подписей Sigstore. Пакеты подписей прикреплены к выпуску GitHub рядом с подписанными файлами .tar.gz и .whl.
Проверку можно выполнить с помощью пакета sigstore. Следующий пример проверяет колесо из выпуска 5.4; скорректируйте версию и имена файлов для проверяемого выпуска:
sigstore verify github \
--cert-identity https://github.com/WeblateOrg/weblate/.github/workflows/setup.yml@refs/tags/weblate-5.4 \
--bundle Weblate-5.4-py3-none-any.whl.sigstore \
Weblate-5.4-py3-none-any.whl
Аттестации выпусков¶
Рабочий процесс выпуска создаёт два типа аттестаций артефактов GitHub для архивов пакетов:
Аттестации происхождения сборки, генерируемые
.github/workflows/setup.ymlс использованием actions/attest-build-provenance.Аттестации SBOM, генерируемые
.github/workflows/setup.ymlс использованием actions/attest с SBOM выпуска CycloneDX.
Аттестации можно проверить с помощью gh. Следующий пример проверяет аттестацию происхождения сборки для колеса 5.4:
gh attestation verify Weblate-5.4-py3-none-any.whl \
--repo WeblateOrg/weblate \
--source-ref refs/tags/weblate-5.4 \
--signer-workflow WeblateOrg/weblate/.github/workflows/setup.yml
Используйте тип предиката CycloneDX для проверки аттестации SBOM, прикреплённой к тому же артефакту пакета:
gh attestation verify Weblate-5.4-py3-none-any.whl \
--repo WeblateOrg/weblate \
--source-ref refs/tags/weblate-5.4 \
--signer-workflow WeblateOrg/weblate/.github/workflows/setup.yml \
--predicate-type https://cyclonedx.org/bom
SBOM и контрольные суммы¶
SBOM выпуска — это JSON-файл CycloneDX с именем weblate-<version>-sbom.cdx.json, который прикреплён к активам выпусков GitHub. Аттестация SBOM прикреплена к архивам пакетов, а не к файлу SBOM как отдельный артефакт выпуска.
В настоящее время Weblate не публикует отдельный манифест контрольных сумм, такой как SHA256SUMS, для артефактов выпуска.
Другие каналы выпуска¶
В учёте артефактов выпуска в настоящее время не идентифицированы подписи, SBOM или аттестации происхождения для Helm-чартов. Инструкции по проверке в этом разделе применяются к артефактам выпуска Python Weblate, публикуемым этим репозиторием. Метаданные цепочки поставок образов Docker и Weblate Client публикуются их владельцами репозиториев.