Skip to main content

Solución de problemas de la comprobación de GPG para GitHub Codespaces

En este artículo se proporcionan consejos para solucionar problemas de errores relacionados con la firma de las confirmaciones en los espacios de código.

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 obtener más información, vea «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.

Shell
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ónValor obligatorio
user.nameDebe coincidir con el nombre completo establecido en tu perfil de GitHub
credential.helperSe debe establecer en /.codespaces/bin/gitcredential_github.sh
gpg.programSe 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.

Nota: los cambios realizados en el repositorio de dotfiles se aplicarán a los nuevos espacios de código que crees, pero no a los espacios de código existentes.

  1. En el equipo local, abra un terminal.

  2. Para quitar el valor en conflicto de ~/.gitconfig (Mac/Linux) o C:\Users\YOUR-USER\.gitconfig (Windows), usa el comando git config --global --unset.

    git config --global --unset gpg.program
    
  3. Inserta el cambio en el repositorio de dotfiles en GitHub.

  4. 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 en PATH/etc/gitconfig, donde PATH 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.

Shell
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.

  1. En la esquina inferior izquierda de la ventana, selecciona y, después, haz clic en Configuración.

    Captura de pantalla del cliente web de VS Code. Están resaltados con un contorno naranja un icono de un engranaje y la opción "Configuración" de un menú.

  2. En la pestaña "Usuario", en la barra de búsqueda, busca "gpg".

  3. Comprueba que el valor "Habilita la firma de confirmación con GPG o X.509" está desactivado.

    Captura de pantalla de la pestaña de configuración de "Usuario". Hay una casilla deseleccionada, con la etiqueta "Habilita la firma de confirmación con GPG o X.509", que está resaltada con un contorno naranja.

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 obtener más información, vea «Personalización de GitHub Codespaces para la cuenta».

Información adicional