Como assinar automaticamente confirmações com magit?

13

Estou interessado em ter cada um dos meus commits assinados com a minha chave GPG. Desde que eu uso o magit para fazer interface com o git, fiquei pensando se era possível dizer ao magit para assinar cada confirmação (ou alguma solução alternativa para conseguir isso era possível, pelo menos).

shackra
fonte
O Git oferece suporte à assinatura de confirmação? Pensei somente tags poderia ser assinado ...
lunaryorn
1
@lunaryorn git commit -S[<keyid>], --gpg-sign[=<keyid>]. Há pelo menos um motivo para assinar cada confirmação: ter uma evidência mais forte de que a confirmação veio da pessoa que você acha que foi. As tags de assinatura apenas permitem detectar alterações no histórico.
Nsukami _
@Nsukami_That não responde à minha pergunta, responde?
Lunardorn 01/12/2015
@lunaryorn Desculpe se não responder à sua pergunta. Sim, suporte ao Git confirmar assinatura
Nsukami _ /

Respostas:

20

No Magit, as confirmações são criadas usando o popup de confirmação ( c). Esse pop-up seria, portanto, um bom lugar para começar a procurar suporte para gpg. Se você fizer isso, encontrará o seguinte:

=S Sign using gpg (--gpg-sign=)

Então digite = Se selecione uma chave. Para evitar fazer isso toda vez que você cria uma confirmação, você pode salvar o valor desse argumento (e todos os outros argumentos atualmente definidos) usando C-x C-s.

Você ainda pode ter que digitar a senha sempre. Para evitar isso, você deve iniciar um gpg-agent e garantir que o Emacs saiba disso, por exemplo, usando o keychainscript shell e o keychain-environmentpacote Emacs.

Veja também e defina o --show-signatureargumento no pop-up de log.

tarso
fonte
Isso foi alterado transient?
Tejasbubane 12/05/19
1
Este argumento está agora oculto por padrão. O anúncio transitório explica como mostrá-lo alterando o "nível".
tarsius 12/05/19
No caso de alguém tropeça aqui procurando: magit.vc/manual/transient/Enabling-and-Disabling-Suffixes.html
tejasbubane
@ tarso Não parece capaz de mudar o nível. Como começo a fazer isso? Obrigado.
e18r
Qual parte da documentação à qual o tejasbubane se vinculou não é clara?
tarsius 20/06/19
15

Tente isso no seu $HOME/.gitconfigou no seu.git/config

[user]
    email = YourEmail
    name = YourName
    signingkey = XXXXXXXX
[commit]
    gpgsign = true

Então apenas cometa como de costume.

csantosb
fonte
Esta resposta tem a vantagem de poder definir uma chave por repositório. Parece que a =Sopção do magit define a chave $HOME/.gitconfig, o mesmo para todos os seus repositórios.
Ph0t0nix 12/09/19