Si habilitas la comprobación de GPG, GitHub Codespaces firma automáticamente las confirmaciones en los espacios de código creados a partir de repositorios seleccionados. Para más información, consulta Administración de la comprobación de GPG para GitHub Codespaces.
Una vez habilites la comprobación de GPG, surtirá efecto automáticamente en los nuevos espacios de código que crees a partir de los repositorios pertinentes. Para que la comprobación de GPG surta efecto en un espacio de código activo existente, deberás detener y reiniciar el espacio de código. Para obtener más información, vea «Detención e inicio de un codespace».
Si GitHub Codespaces no firma una confirmación, puede ver el mensaje de error gpg failed to sign the data
en la línea de comandos o en una ventana emergente de Visual Studio Code.
En las secciones siguientes de este artículo se proporcionan consejos para conocer las causas comunes de este error.
- Si la comprobación de GPG se ha habilitado anteriormente en la configuración de GitHub Codespaces, y recientemente has deshabilitado la comprobación de GPG o has quitado un repositorio de la lista de repositorios de confianza, Git puede seguir intentando firmar las confirmaciones. Para más información, consulta Errores después de deshabilitar la comprobación de GPG.
- Si la comprobación de GPG está habilitada para el codespace, es posible que hayas reemplazado la configuración de Git necesaria para firmar las confirmaciones. Para más información, consulta Errores causados por conflictos en la configuración de Git.
- Si la comprobación de GPG está deshabilitada para el codespace y aparece un error al intentar confirmar desde la vista "Control de código fuente" en VS Code, puede deberse a la configuración de VS Code. Para más información, consulta Errores en la vista "Control de código fuente" de VS Code.
Errores después de deshabilitar la comprobación de GPG
Al habilitar la comprobación de GPG, GitHub Codespaces firma todas las confirmaciones que realices en los espacios de código de forma predeterminada. Esto ocurre al establecer el commit.gpgsign
valor de configuración de Git a true
.
Si ha deshabilitado la comprobación de GPG y está trabajando en un espacio de código existente, este valor seguirá estando establecido en true
. Esto significa que GitHub Codespaces intentará firmar las confirmaciones, pero no podrá hacerlo, ya que has deshabilitado la configuración de comprobación de GPG.
Para seguir realizando confirmaciones normales sin firmar en el espacio de código, restablece commit.gpgsign
al valor predeterminado de false
al escribir el siguiente comando en el terminal.
git config --unset commit.gpgsign
git config --unset commit.gpgsign
Para comprobar que el valor se ha eliminado correctamente de la configuración, escribe git config --list
. No deberías ver un valor para commit.gpgsign
en la lista.
Errores causados por una configuración de Git en conflicto
Para firmar automáticamente las confirmaciones, GitHub Codespaces establece unos valores de configuración de Git determinados en el espacio de código. Si invalidas los valores establecidos por GitHub Codespaces, es posible que no puedas firmar las confirmaciones.
Es posible que invalides accidentalmente estos valores si has vinculado GitHub Codespaces con un repositorio dotfiles que contiene archivos de configuración de Git. Para más información sobre los archivos dotfile con GitHub Codespaces, consulta Personalización de GitHub Codespaces para la cuenta.
Comprobación de configuraciones en conflicto
Para firmar las confirmaciones con GPG, GitHub Codespaces establece automáticamente los siguientes valores de configuración de Git en el nivel del sistema.
Opción de configuración | Valor obligatorio |
---|---|
user.name | Debe coincidir con el nombre completo establecido en tu perfil de GitHub |
credential.helper | Se debe establecer en /.codespaces/bin/gitcredential_github.sh |
gpg.program | Se debe establecer en /.codespaces/bin/gh-gpgsign |
Para comprobar que estos valores se establecen correctamente en un espacio de código, puedes usar el comando git config --list --show-origin
. Dado que GitHub Codespaces establece esta configuración en el nivel del sistema, los valores de configuración necesarios deben proceder de /usr/local/etc/gitconfig
.
$ git config --list --show-origin
file:/usr/local/etc/gitconfig credential.helper=/.codespaces/bin/gitcredential_github.sh
file:/usr/local/etc/gitconfig user.name=Mona Lisa
file:/usr/local/etc/gitconfig gpg.program=/.codespaces/bin/gh-gpgsign
Además de los valores enumerados anteriormente, pueden producirse errores si los dotfiles usados en los espacios de código contienen cualquiera de los valores siguientes.
- El valor de configuración de Git
user.signingkey
- El valor de configuración de Git
commit.gpgsign
- Un
GITHUB_TOKEN
establecido manualmente
Eliminación de configuraciones en conflicto
Si deseas mantener habilitada la comprobación automática de GPG para GitHub Codespaces, deberás eliminar cualquier tipo de configuraciones en conflicto de los dotfiles usados en los espacios de código.
Por ejemplo, si el archivo global .gitconfig
del equipo local contiene un valor gpg.program
y lo has insertado en un repositorio de dotfiles que está vinculado a GitHub Codespaces, probablemente desearás eliminar gpg.program
de este archivo y establecerlo en su lugar en el nivel del sistema del equipo local.
Note
Los cambios realizados en el repositorio de dotfiles se aplicarán a los nuevos codespaces que crees, pero no a los ya existentes.
-
En el equipo local, abra un terminal.
-
Para quitar el valor en conflicto de
~/.gitconfig
(Mac/Linux) oC:\Users\YOUR-USER\.gitconfig
(Windows), usa el comandogit config --global --unset
.git config --global --unset gpg.program
-
Inserta el cambio en el repositorio de dotfiles en GitHub.
-
Opcionalmente, para mantener la configuración local, establece el valor de nuevo en un archivo de configuración de Git que no insertes en el repositorio de dotfiles.
Por ejemplo, puedes usar la marca
--system
para establecer la configuración en el archivo de nivel de sistema enPATH/etc/gitconfig
, dondePATH
es el directorio en el que está instalado Git en el sistema.git config --system gpg.program gpg2
Como alternativa, si el repositorio de dotfiles contiene un script de instalación en un archivo reconocido como install.sh
, puedes usar la variable de entorno $CODESPACES
para agregar lógica condicional, como por ejemplo establecer únicamente gpg.program
si no te encuentras en un espacio de código. En el ejemplo siguiente, -z "$CODESPACES"
devuelve true
si no estás ubicado en un espacio de código.
if [ -z "$CODESPACES" ]; then git config --global gpg.program gpg2 fi
if [ -z "$CODESPACES" ]; then
git config --global gpg.program gpg2
fi
Errores en la vista "Control de código fuente" de VS Code
Si la comprobación de GPG está deshabilitada en la configuración de GitHub Codespaces o el repositorio desde el que creó el codespace no está en la lista de repositorios de confianza, Git no debería intentar firmar las confirmaciones. Si se produce un error de firma al intentar confirmar desde la vista "Control de código fuente" en VS Code, debes comprobar la configuración de VS Code en el codespace.
-
En la esquina inferior izquierda de la ventana, selecciona y, después, haz clic en Configuración.
-
En la pestaña "Usuario", en la barra de búsqueda, busca "gpg".
-
Comprueba que el valor "Habilita la firma de confirmación con GPG o X.509" está desactivado.
Si este valor está habilitado, debes anular la selección de la casilla para impedir que VS Code intente firmar las confirmaciones, o bien debes habilitar la comprobación de GPG para el repositorio en el que trabajas, con el fin de que las confirmaciones se puedan firmar correctamente.
Si cambias la configuración de VS Code, debes asegurarte de que la sincronización de configuración está habilitada si quieres compartir los cambios con otros codespaces que crees. Solo debes activar la sincronización de la configuración en los codespaces creados a partir de repositorios de confianza. Para más información, consulta Personalización de GitHub Codespaces para la cuenta.
Información adicional
- Acerca de la verificación de firma de confirmación
git config
en la documentación oficial de Git