Skip to main content

Enterprise Server 3.21 в настоящее время доступен в качестве кандидата на выпуск.

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

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

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

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

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

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

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

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

Примечание.

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

Если релиз неизменный, вы увидите «Immutable» под заголовком на странице релиза.

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

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

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

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

Дальнейшие шаги

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

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