Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

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.

Signature verification for rebase and merge

When using the Rebase and Merge option on a pull request, it's important to note that the commits in the head branch are added to the base branch without commit signature verification. When you use this option, GitHub creates a modified commit, using the data and content of the original commit. This means thatGitHub didn't truly create this commit, and can't therefore sign it as a generic system user. GitHub doesn't have access to the committer's private signing keys, so it can't sign the commit on the user's behalf.

A workaround for this is to rebase and merge locally, and then push the changes to the pull request's base branch.

For more information, see "Rebasing and merging your commits."

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 da web. Os commits assinados por GitHub terão um status verificado. É 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 do GPG para os seus codespaces, consulte "Gerenciando a verificação do 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