Hub documentation

Assinando commits com GPG

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Assinando commits com GPG

git possui uma camada de autenticação para controlar quem pode enviar commits para um repositório, mas não autentica os autores reais dos commits.

Em outras palavras, você pode commitar alterações como Elon Musk <elon@tesla.com>, enviá-las para seu host git preferido (por exemplo, github.com) e seu commit será vinculado ao perfil do GitHub de Elon. (Experimente! Mas não nos culpe se o Elon ficar bravo com você por se passar por ele.)

As razões pelas quais implementamos a assinatura GPG foram:

  • Para fornecer segurança mais granular, especialmente à medida que cada vez mais usuários Enterprise dependem do Hub.
  • Para fornecer benchmarks de ML respaldados por uma fonte criptograficamente segura.

Veja Como (e por que) assinar commits do git de Ale Segala para mais contexto.

Você pode provar que um commit foi criado por você usando o GNU Privacy Guard (GPG) e um servidor de chaves. O GPG é uma ferramenta criptográfica usada para verificar a autenticidade da origem de uma mensagem. Explicaremos abaixo como configurar isso no Hugging Face.

O livro Pro Git é, como de costume, um bom recurso sobre a assinatura de commits: Pro Git: Signing your work.

Configurando a verificação de commits assinados

Você precisará instalar o GPG no seu sistema para executar os comandos a seguir.

Ele está incluído por padrão na maioria das distribuições Linux. No Windows, ele está incluído no Git Bash (que vem com o git para Windows).

Você pode assinar seus commits localmente usando GPG. Em seguida, configure seu perfil para marcar esses commits como verificados no Hub, para que outras pessoas possam ter a confiança de que eles vêm de uma fonte confiável.

Para uma explicação mais aprofundada sobre como o git e o GPG interagem, visite a documentação do git sobre o assunto

Commits podem ter os seguintes status de assinatura:

StatusExplicação
VerificadoO commit é assinado e a assinatura é verificada
Não verificadoO commit é assinado, mas a assinatura não pôde ser verificada
No status de assinaturaO commit não está assinado

Para que um commit seja marcado como verificado, você precisa enviar a chave pública usada para assiná-lo na sua conta do Hugging Face.

Use o comando gpg --list-secret-keys para listar as chaves GPG para as quais você possui uma chave pública e uma chave privada. Uma chave privada é necessária para assinar commits ou tags.

Se você não tiver um par de chaves GPG ou não quiser usar as chaves existentes para assinar seus commits, vá para Gerando uma nova chave GPG.

Caso contrário, vá direto para Adicionando uma chave GPG à sua conta.

Gerando uma nova chave GPG

Para gerar uma chave GPG, execute o seguinte:

gpg --gen-key

O GPG, em seguida, o guiará pelo processo de criação de um par de chaves GPG.

Certifique-se de especificar um endereço de e-mail para esta chave e de que o endereço de e-mail corresponda ao que você especificou em sua conta do Hugging Face.

Adicionando uma chave GPG à sua conta

  1. Primeiro, selecione ou gere uma chave GPG no seu computador. Certifique-se de que o endereço de e-mail da chave corresponda ao da sua conta no Hugging Face account e de que o e-mail da sua conta esteja verificado.

  2. Exporte a parte pública da chave selecionada:

gpg --armor --export <YOUR KEY ID>
  1. Em seguida, acesse a página de configurações do seu perfil e clique em Add GPG Key.

Copie e cole a saída do comando gpg --export na área de texto e clique em Add Key.

  1. Parabéns! 🎉 Você acabou de adicionar uma chave GPG à sua conta!

Configure o git para assinar seus commits com GPG

A última etapa é configurar o git para assinar seus commits:

git config user.signingkey <Your GPG Key ID>
git config user.email <Your email on hf.co>

Em seguida, adicione a flag -S aos seus comandos git commit para assinar seus commits!

git commit -S -m "My first signed commit"

Depois de enviar para o Hub, você deve ver o commit com o selo “Verificado”.

Para assinar todos os commits por padrão em qualquer repositório local no seu computador, você pode executar git config —global commit.gpgsign true.

Update on GitHub