Android Studio y Git: ¿cómo firmo GPG mis commits?

De acuerdo con este enlace , simplemente necesito include el -S para firmar mi confirmación usando mi key GPG, pero no veo cómo puedo usar eso en Android Studio.

¿Cómo firmo mis confirmaciones en Android Studio?

EDITAR: Aprecio que sigan apareciendo las soluciones OSX, pero realmente me gustaría ver una respuesta que funcione con Windows. Solo uso mi Mac para documentos y esas cosas.

Después de hacer algunas testings, sigo estos pasos y funciona. Restring reiniciar Android Studio después de seguir estos pasos:

¿Estás cansado de escribir la contraseña para cada compromiso?

nano ~ / .gnupg / gpg.conf

agregue las siguientes líneas

 use-agent no-tty default-key <your key id> 
  • después de hacer toda la configuration y si usa MacOS. Debieras:

ln -us /usr/local/Cellar/libgcrypt/1.7.0_1 / usr / local / opt / libgcrypt

ln -us /usr/local/Cellar/libgpg-error/1.22 / usr / local / opt / libgpg-error

ln -s /usr/local/Cellar/libassuan/2.4.2 / usr / local / opt / libassuan

ln -s /usr/local/Cellar/pth/2.0.7 / usr / local / opt / pth

  • ejecutar

fuente ~ / .profile

  • haz que uno se comprometa con la opción -S

git commit -am "mi post de compromiso" -S

  • Debería get una request de contraseña. – Pon tu contraseña

¡¡¡Eso es!!!

Como mencioné en " Sign git commits with GPG ", con Git 2.0:

Si desea que GPG firme todas sus confirmaciones, debe agregar la opción -S todo el time.
La opción de configuration commit.gpgsign permite firmar todas las confirmaciones automáticamente.

Sin embargo, esto no funciona completamente, y es seguido por el problema 127802 , con las siguientes soluciones:

Creó un script de ayuda con ese contenido:

 /usr/bin/gpg –batch –no-tty "$@" 

y establecer gpg.program para esa secuencia de commands

O:

Agregar " no-tty " a " ~/.gnupg/gpg.conf " resolvió el problema para mí.

Es posible que aún reciba el post de error:

 Commit failed with error: gpg: problem with the agent - disabling agent use gpg: Sorry, no terminal at all requested - can't get input error: gpg failed to sign the data fatal: failed to write commit object 

Nuevamente: error en progreso, seguido también por el número 110261 :

resolverlo con esto además de la solución anterior (OS X):

1) brew install gnupg gnupg2 pinentry-mac

2) nano ~/.gnupg/gpg-agent.conf -> pinentry-program /usr/local/bin/pinentry-mac

3) git config –global gpg.program gpg2

Si tiene instalado git para Windows y la opción MingGW seleccionada durante la installation, esto es lo que utilicé para que Android Studio trabaje con las confirmaciones de firma.

Progtwigs mencionados / usados ​​con enlaces para aquellos que aún no los tienen.

Para aquellos que quieran leer el artículo solía get la firma gpg trabajando en mi entorno Windows (la parte inferior de la página que comienza con las líneas de git config es lo que más nos preocupa): https://jamesmckay.net/ 2016/02 / signing-git-commits-with-gpg-on-windows /

Voy a recorrer brevemente el process para hacer la porción de gpg a través de la command-line, presumiendo que los tres progtwigs ya están instalados de aquí en adelante.

Comprobar la configuration de Git en Android Studio

Si no ha especificado dónde está git en Android Studio, aquí es donde lo hace en Configuración:

NOTA: Esto se puede hacer en File > Project Settings de proyecto para un proyecto o en File > Other Settings > Default Settings...

Control de versiones> Git> Ruta de acceso a Git Executable

Como estaba usando la versión MinGW, está configurado para: C:\Program Files\Git\mingw64\bin\git.exe

Exportar keys públicas y secretas existentes de la versión MinGW (git bash)

NOTA: Ejecutar usando el progtwig de request MinGW

  1. gpg --export > ~/gpg-public
  2. gpg --export-secret-keys > ~/gpg-secret

NOTA: Para aquellos que no saben, ~/ está configurado de manera pnetworkingeterminada en el directory de inicio de su usuario. (Por ejemplo, Windows 10: C:/Users/%USERNAME% )

Importar keys exportadas en Gpg4win

NOTA: Ejecutar utilizando el símbolo del sistema de Windows.

  1. gpg --import < "C:/Users/%USERNAME%/gpg-public"
  2. gpg --import < "C:/Users/%USERNAME%/gpg-secret"

Reemplace la location donde estén sus files gpg-public y gpg-secret .

Hacer git use gpg desde Gpg4win

Como se menciona en el artículo. Se vuelve a publicar aquí si no lo abriste.

NOTA: Ejecutar usando el progtwig de request MinGW

  • git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe"

Reemplace el valor de gpg.program (manteniendo gpg2.exe ) arriba donde especifique el instalador gpg4win para instalarlo.

(OPCIONAL) Mientras lo hace, puede configurar su git para que firme automáticamente sus confirmaciones con una key pnetworkingeterminada (se requiere la versión de git> = 2.0)

  • git config --global user.name <name>
  • git config --global user.email <email>
  • git config --global user.signingkey <your-key-ID>
  • git config --global commit.gpgsign true

Reemplace los valores en < > con los suyos. Puede get la ID de key ejecutando gpg --list-keys y tomando la ID de la línea que comienza con pub y después de / .

Ahora deberías poder comprometerte con Android Studio y ver un aviso para la input de la contraseña.