Skip to main content

Inserción de una rama bloqueada por la protección de inserción

La característica de protección de inserción de secret scanning protege proactivamente contra los secretos que se filtran en los repositorios. Puedes resolver las inserciones bloqueadas y, una vez que se ha quitado el secreto detectado, puedes insertar los cambios en la rama de trabajo desde la línea de comandos o la interfaz de usuario web.

Alertas de examen de secretos para asociados se ejecuta de forma automática en repositorios públicos y paquetes npm públicos para notificar a los proveedores de servicio sobre secretos filtrados en GitHub.com.

Alertas de examen de secretos para usuarios están disponibles de forma gratuita en todos los repositorios públicos. Las organizaciones que usan GitHub Enterprise Cloud con una licencia de GitHub Advanced Security también pueden habilitar alertas de examen de secretos para usuarios en sus repositorios privados e internos. Para más información, consulta "Acerca del examen de secretos" y "Acerca de GitHub Advanced Security".

Para información sobre cómo probar GitHub Advanced Security de forma gratuita, consulta "Configuración de una evaluación de GitHub Advanced Security".

Acerca de la protección de inserción para secret scanning

La característica de protección de inserción de secret scanning ayuda a evitar pérdidas de seguridad mediante el examen de los secretos antes de insertar los cambios en el repositorio. Al habilitar la protección de inserción para la organización o el repositorio, secret scanning también comprueba si hay secretos de alta confianza (los identificados con una tasa de falsos positivos baja). Secret scanning enumera los secretos que detecta para que el creador pueda revisarlos y quitarlos, o si es necesario, permitir que se inserten. Para información sobre los secretos y los proveedores de servicios admitidos para la protección de inserción, consulta "Patrones de análisis de secretos".

Si confirmas que un secreto es real, debes quitar el secreto de la rama, de todas las confirmaciones en las que aparece, antes de volver a insertar.

Sugerencia Si GitHub bloquea un secreto que crees que es seguro insertar, puedes permitirlo y especificar el motivo por el que se debe permitir. Para obtener más información sobre cómo omitir la protección de inserción para un secreto, consulta "Permitir que se suba un secreto bloqueado" y "Saltar la protección contra subidas para un secreto" para la línea de comandos y la interfaz de usuario web, respectivamente.

Los propietarios de la organización pueden proporcionar un vínculo personalizado que se incluirá en el mensaje de GitHub Enterprise Cloud cuando se bloquee el envío de cambios. Este vínculo personalizado puede incluir recursos y consejos específicos de tu organización y sus directivas.

Resolución de una inserción bloqueada en la línea de comandos

Al intentar insertar un secreto admitido en un repositorio u organización con secret scanning como protección de inserción habilitada, GitHub bloqueará la inserción. Puedes quitar el secreto de la rama o seguir una dirección URL proporcionada para permitir la inserción.

Notas:

  • Si la configuración de Git admite inserciones en varias ramas y no solo en la actual, es posible que se bloquee la inserción debido a que se insertan referencias adicionales y no deseadas. Para obtener más información, consulta las opciones push.default en la documentación de Git.
  • Si se agota el tiempo de espera de secret scanning tras una inserción, GitHub todavía examinará las confirmaciones en busca de secretos después de la inserción.

Si el secreto bloqueado se introdujo con la confirmación más reciente en la rama, puedes seguir las instrucciones a continuación.

  1. Quita el secreto del código.
  2. Confirma los cambios mediante git commit --amend.
  3. Envía los cambios con git push.

También puedes quitar el secreto si aparece en una confirmación anterior en el historial de Git.

  1. Usa git log para determinar qué confirmación expuesta en el error de inserción apareció primero en el historial.
  2. Inicia una fusión mediante cambio de base interactiva con git rebase -i <commit-id>~1. es el identificador de la confirmación del paso 1.
  3. Identifica la confirmación para editar cambiando pick a edit en la primera línea del texto que aparece en el editor.
  4. Quita el secreto del código.
  5. Confirma el cambio con git commit --amend.
  6. Ejecuta git rebase --continue para finalizar la fusión mediante cambio de base.

Resolución de una confirmación bloqueada en la interfaz de usuario web

Cuando se usa la interfaz de usuario web para intentar confirmar un secreto admitido en un repositorio u organización con el examen de secretos como protección de inserción habilitada, GitHub bloqueará la confirmación.

Verás un cuadro de diálogo con información sobre la ubicación del secreto, así como opciones que te permiten insertarlo. El secreto también estará subrayado en el archivo para que puedas encontrarlo fácilmente.

Para resolver una confirmación bloqueada en la interfaz de usuario web, debes quitar el secreto del archivo, o bien usar las opciones que se muestran en el cuadro de diálogo para permitir el secreto. Para más información sobre cómo omitir la protección de inserción de la interfaz de usuario web, consulta "Protección contra el envío de cambios para repositorios y organizaciones".

Si confirmas que un secreto es real, debes quitar el secreto del archivo. Una vez que quites el secreto, puedes confirmar los cambios.