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."
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
Status | Descrição |
---|---|
Verificado | O commit foi assinado e a assinatura foi verificada com sucesso. |
Não verificado | O commit foi assinado, mas não foi possível verificar a assinatura. |
Sem status de verificação | O commit não foi assinado. |
Status com modo vigilante habilitado
Status | Descrição |
---|---|
Verificado | O commit foi assinado, a assinatura foi verificada com sucesso e o committer é o único autor que habilitou o modo vigilante. |
Verificado parcialmente | O 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 verificado | Qualquer 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:
- Verificar se há chaves GPG existentes
- Gerar uma nova chave GPG
- Adicionar uma nova chave GPG à sua conta do GitHub
- Informar o Git sobre a chave de assinatura
- Assinar commits
- 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:
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.