**Versões imutáveis** são versões em que os ativos e a marca Git associada não podem ser alterados após a publicação. O uso desse tipo de versão aumenta a segurança bloqueando ataques da cadeia de suprimentos. Os invasores não podem:
- Injete vulnerabilidades ou malware nas versões atuais do projeto.
- Faça alterações em recursos e tags que possam interromper os fluxos de trabalho dos desenvolvedores.
O que os lançamentos imutáveis protegem
Quando você ativa versões imutáveis, as seguintes proteções se aplicam:
-
**As tags Git não podem ser movidas ou excluídas**: após a publicação de uma versão imutável, sua tag Git associada está bloqueada para um commit específico e não pode ser alterada ou removida. -
**Os ativos de versão não podem ser modificados ou excluídos**: todos os arquivos anexados à versão (como binários e arquivos) são protegidos contra modificação ou exclusão.
Além disso, a criação de uma versão imutável gera automaticamente um atestado de versão, que é um registro criptograficamente verificável de uma versão que contém a marca de versão, o SHA de commit e os ativos de versão. Os consumidores podem usar esse atestado para garantir que as versões e os artefatos que elas estão usando correspondam exatamente às versões publicadas do GitHub.
Observação
As versões imutáveis incluem proteção contra ataques de ressurreição de repositório. Mesmo que você exclua um repositório e crie um novo com o mesmo nome, não será possível reutilizar tags que estavam associadas a versões imutáveis no repositório original.
Se uma versão for imutável, você verá " Imutável" abaixo do título na página de versão.
Práticas recomendadas para publicação de versões imutáveis
Recomendamos que você use o fluxo de trabalho a seguir para publicar uma versão imutável.
- Crie a versão como um rascunho.
- Anexe todos os recursos associados à versão preliminar.
- Publique a versão do rascunho.
Isso garante que todos os ativos estejam disponíveis antes que a liberação se torne imutável, evitando a necessidade de contornar restrições de imutabilidade.
Próximas etapas
Para saber como habilitar versões imutáveis para seu repositório ou organização, confira Como impedir alterações em suas versões.
Para saber como garantir que uma versão e os ativos locais não tenham sido alterados, confira Como verificar a integridade de uma versão.