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 uma confirmação ou uma marca tiver uma assinatura ou S/MIME que possa ser verificada por meio de criptografia, o GitHub Enterprise Server marcará o commit ou a tag como "Verificado".
Se um commit ou uma tag tiver uma assinatura que não possa ser verificada, o GitHub Enterprise Server marcará a confirmação ou a marca como "não verificado".
Verificação de assinatura para troca de base e mesclagem
Ao usar a opção Trocar base e Mesclar em uma solicitação de pull, é importante observar que os commits no branch principal são adicionados ao branch base sem verificação de assinatura de commit. Quando você usa essa opção, o GitHub cria um commit modificado usando os dados e o conteúdo do commit original. Isso significa que o GitHub não criou de fato esse commit e, portanto, não pode assiná-lo como um usuário genérico do sistema. O GitHub não tem acesso às chaves de assinatura privadas do responsável pelo commit, portanto, não pode assinar o commit em nome do usuário.
Uma solução alternativa é trocar a base e fazer a mesclagem localmente e depois enviar as alterações por push ao branch base da solicitação de pull.
Para obter mais informações, confira "Sobre métodos de merge no GitHub".
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, confira "Sobre branches protegidos".
Você pode conferir o status de verificação de seus commits ou tags assinados no GitHub Enterprise Server e ver por que as assinaturas de commit podem não ter sido verificadas. Para obter mais informações, confira "Confirmar o status de verificação da assinatura do commit e da tag".
Se um administrador do site tiver habilitado a assinatura de commit da Web, o GitHub Enterprise Server usará automaticamente o GPG para assinar os commits que você fizer usando a interface da Web. Os commits assinados por GitHub Enterprise Server terão um status verificado. Você pode verificar a assinatura localmente usando a chave pública disponível em https://HOSTNAME/web-flow.gpg
. Para obter mais informações, confira "Configurar a assinatura de commit da Web".
Verificação da assinatura de commit GPG
É possível usar GPG para assinar commits com uma chave GPG que você mesmo gera.
O GitHub Enterprise Server usa bibliotecas OpenPGP para confirmar que seus commits e suas marcas assinados localmente são criptograficamente verificáveis em relação a uma chave pública que você adicionou à sua conta no sua instância do GitHub Enterprise Server.
Para assinar commits usando GPG e para que esses commits sejam verificados no GitHub Enterprise Server, siga estas etapas:
- Verificar se há chaves GPG existentes
- Gerar uma nova chave GPG
- Adicionar uma chave GPG à 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 Enterprise Server usa o pacote ca-certificates do Debian, o mesmo repositório confiável usado pelos navegadores Mozilla, para confirmar que as tags e os commits assinados localmente são criptograficamente verificáveis em relação a uma chave pública em um certificado raiz confiável.
Observação: a verificação de assinatura S/MIME está disponível no Git 2.19 ou posterior. Para atualizar sua versão do Git, acesse o site do Git.
Para assinar commits usando S/MIME e para que esses commits sejam verificados no GitHub Enterprise Server, siga estas etapas:
Não é preciso fazer upload da chave pública no GitHub Enterprise Server.