Sobre a verificação de assinatura de commit

Ao usar GPG ou S/MIME, você pode assinar tags e commits localmente. Essas tags ou commits estão marcadas como verificadas em GitHub para que outras pessoas possam estar confiantes de que as alterações vêm de uma fonte de confiança.

Sobre a verificação de assinatura de commit

Você pode assinar commits e tags localmente para dar a outras pessoas confiança sobre a origem de uma alteração que você fez. Se um commit ou tag tiver uma assinatura GPG ou S/MIME que seja verificável criptograficamente, o GitHub marcará o commit ou a tag "Verificado" ou "Verificado parcialmente."

Commit verificado

Os commits e tags têm o seguinte status de verificação, dependendo se você habilitou o modo vigilante. Por padrão, o modo vigilante não está habilitado. Para obter informações sobre como habilitar o modo vigilante, consulte "Exibir status de verificação para todos os seus commits".

Observação: O modo vigilante está atualmente na versão beta e sujeito a alterações.

Status padrão

StatusDescrição
VerificadoO commit foi assinado e a assinatura foi verificada com sucesso.
Não verificadoO commit foi assinado, mas não foi possível verificar a assinatura.
Sem status de verificaçãoO commit não foi assinado.

Status com modo vigilante habilitado

StatusDescrição
VerificadoO commit foi assinado, a assinatura foi verificada com sucesso e o committer é o único autor que habilitou o modo vigilante.
Verificado  parcialmenteO commit foi assinado e a assinatura foi verificada com sucesso, mas o commit tem um autor que: a) não é o committer e b) habilitou o modo vigilante. Neste caso, a assinatura de commit não garante o consentimento do autor. Portanto o commit é verificado apenas parcialmente.
Não verificadoQualquer uma das seguintes opções é verdadeira:
- O commit está assinado, mas não foi possível verificar a assinatura.
- O commit não está assinado e o committer habilitou o modo vigilante.
- O commit não está assinado e um autor habilitou o modo vigilante.

Os administradores do repositório podem impor a assinatura de commit obrigatória em um branch para bloquear todos os commits que não estejam assinados e verificados. Para obter mais informações, consulte "Sobre branches protegidos."

Você pode conferir o status de verificação de seus commits ou tags assinados no GitHub e ver por que as assinaturas de commit podem não ter sido verificadas. Para obter mais informações, consulte "Conferir o status de verificação da assinatura de commit ou tag".

GitHub usará automaticamente o GPG para assinar os commits que você criar usando a interface web de GitHub. Commits assinados por GitHub terão um status de verificado em GitHub. É possível verificar a assinatura localmente usando a chave pública disponível em https://github.com/web-flow.gpg. A impressão digital completa da chave é 5DE3 E050 9C47 EA3C F04A 42D3 4AEE 18F8 3AFD EB23. Opcionalmente, você pode escolher que GitHub assine os commits que você fizer em Codespaces. Para obter mais informações sobre como habilitar a verificação de GPG para os seus códigos, consulte "Gerenciar a verificação de GPG para Codespaces".

Verificação da assinatura de commit GPG

É possível usar GPG para assinar commits com uma chave GPG que você mesmo gera.

GitHub usa bibliotecas OpenPGP para confirmar que seus commits e tags assinados localmente são verificáveis criptograficamente com base em uma chave pública que você adicionou à sua conta em GitHub.com.

Para assinar commits usando GPG e para que esses commits sejam verificados no GitHub, siga estas etapas:

  1. Verificar se há chaves GPG existentes
  2. Gerar uma nova chave GPG
  3. Adicionar uma nova chave GPG à sua conta do GitHub
  4. Informar o Git sobre a chave de assinatura
  5. Assinar commits
  6. Assinar tags

Verificação da assinatura de commit S/MIME

Você pode usar S/MIME para assinar commits com uma chave X.509 emitida pela organização.

O GitHub usa o pacote Debian ca-certificates, a mesma loja confiável usada pelos navegadores Mozilla, para confirmar se seus commits e tags localmente assinados são criptograficamente verificáveis em uma chave pública em um certificado raiz confiável.

Nota: verificação de assinatura S/MIME está disponível no Git 2.19 ou mais tarde. Para atualizar sua versão do Git, consulte o site Git.

Para assinar commits usando S/MIME e para que esses commits sejam verificados no GitHub, siga estas etapas:

  1. Informar o Git sobre a chave de assinatura
  2. Assinar commits
  3. Assinar tags

Não é preciso fazer upload da chave pública no GitHub.

Verificação de assinatura para bots

As organizações e Aplicativos do GitHub que exigem a assinatura de commit podem usar bots para assinar commits. Se um commit ou uma tag tiver uma assinatura de bot que possa ser verificada de maneira criptográfica, o GitHub marcará o commit ou tag como verificado.

A verificação de assinatura para bots somente funcionará se a solicitação for verificada e autenticada como o aplicativo GitHub ou bot e se não tiver informações de autor personalizadas, informações de committer personalizadas e nenhuma informação de assinatura personalizada, como API de commits.

Leia mais

Esse documento ajudou você?

Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.