Skip to main content

Неизменяемые выпуски

Узнайте о неизменяемых выпусках и о том, как они помогут вам обеспечить целостность цепочки поставок программного обеспечения.

Неизменяемые выпуски — это выпуски , в которых ресурсы и связанный тег Git не могут быть изменены после публикации. Использование этого типа релиза повышает безопасность за счет блокировки атак на цепочку поставок. Злоумышленники не могут:

  • Внедряйте уязвимости или вредоносное ПО в текущие релизы проектов.
  • Вносите изменения в ресурсы и теги, которые могут нарушить рабочие процессы разработчиков.

Что защищают неизменяемые релизы

При включении неизменяемых выпусков применяются следующие меры защиты:

  • Теги Git нельзя перемещать или удалять: После публикации неизменяемого выпуска связанный с ним тег Git привязывается к определенному коммиту и не может быть изменен или удален.
  • Ресурсы выпуска не могут быть изменены или удалены: все файлы, прикрепленные к выпуску (например, двоичные файлы и архивы), защищены от изменения или удаления.

Кроме того, создание неизменяемого выпуска автоматически создаетаттестацию выпуска, которая является криптографически проверяемой записью выпуска, содержащей тег выпуска, фиксацию SHA и ресурсы выпуска. Потребители могут использовать эту аттестацию, чтобы убедиться, что выпуски и артефакты, которые они используют, точно соответствуют опубликованным выпускам GitHub .

Примечание.

Неизменяемые выпуски включают защиту от атак на восстановление репозитория. Даже если вы удалите репозиторий и создадите новый с тем же именем, вы не сможете повторно использовать теги, которые были связаны с неизменяемыми выпусками в исходном репозитории.

Если выпуск неизменяем, вы увидите " Неизменяемый" под заголовком на странице выпуска.

Рекомендации по публикации неизменяемых выпусков

Мы рекомендуем использовать следующий рабочий процесс для публикации неизменяемого выпуска.

  1. Создайте выпуск в виде черновика.
  2. Прикрепите все связанные активы к черновику релиза.
  3. Опубликуйте черновик релиза.

Это гарантирует, что все ресурсы будут на месте до того, как релиз станет неизменяемым, что избавляет от необходимости обходить ограничения неизменяемости.

Следующие шаги

Сведения о том, как включить неизменяемые выпуски для репозитория или организации, см. в разделеПредотвращение изменений в выпусках.

Сведения о том, как убедиться, что выпуск и локальные ресурсы не были изменены, см. в статьеПроверка целостности выпуска.