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

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

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

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

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

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

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

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

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

Если релиз неизменный, вы увидите <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-lock" aria-label="lock icon" role="img"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>**«Immutable**» под заголовком на странице релиза.

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

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

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

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

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

Сведения о том, как включить неизменяемые выпуски для репозитория или организации, см. в разделе [Предотвращение изменений в выпусках](/ru/enterprise-server@3.22/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/prevent-release-changes).

Сведения о том, как убедиться, что выпуск и локальные ресурсы не были изменены, см. в статье [Проверка целостности выпуска](/ru/enterprise-server@3.22/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/verify-release-integrity).