Skip to main content

Trabajo con la protección contra inserción desde la línea de comandos

Obtenga información sobre las opciones para desbloquear la inserción desde la línea de comandos en GitHub si secret scanning detecta un secreto en los cambios.

¿Quién puede utilizar esta característica?

Usuarios con acceso de escritura

Resolución de una inserción bloqueada

Para resolver una inserción bloqueada, debe quitar el secreto de todas las confirmaciones en las que aparece.

Eliminación de un secreto introducido por la confirmación más reciente en la rama

  1. Quita el secreto del código.
  2. Para confirmar los cambios, ejecute git commit --amend --all. Esto actualiza la confirmación original que introdujo el secreto en lugar de crear una nueva confirmación.
  3. Envía los cambios con git push.

Eliminación de un secreto introducido por una confirmación anterior en la rama

  1. Examine el mensaje de error que se muestra al intentar insertar la rama, que enumera todas las confirmaciones que contienen el secreto.

    remote:   —— GitHub Personal Access Token ——————————————————————
    remote:    locations:
    remote:      - commit: 8728dbe67
    remote:        path: README.md:4
    remote:      - commit: 03d69e5d3
    remote:        path: README.md:4
    remote:      - commit: 8053f7b27
    remote:        path: README.md:4
    
  2. A continuación, ejecute git log para ver un historial completo de todas las confirmaciones de la rama, junto con sus marcas de tiempo correspondientes.

    test-repo (test-branch)]$ git log
    commit 8053f7b27 (HEAD -> main)
    Author: Octocat <1000+octocat@users.noreply.github.com
    Date:   Tue Jan 30 13:03:37 2024 +0100
    
      my fourth commit message
    
    commit 03d69e5d3
    Author: Octocat <1000+octocat@users.noreply.github.com>
    Date:   Tue Jan 30 13:02:59 2024 +0100
    
      my third commit message
    
    commit 8728dbe67
    Author: Octocat <1000+octocat@users.noreply.github.com
    Date:   Tue Jan 30 13:01:36 2024 +0100
    
      my second commit message
    
    commit 6057cbe51
    Author: Octocat <1000+octocat@users.noreply.github.com
    Date:   Tue Jan 30 12:58:24 2024 +0100
    
      my first commit message
    
    
  3. Focusing only on the commits that contain the secret, use the output of git log to identify which commit comes earliest in your Git history.

    • In the example, commit 8728dbe67 was the first commit to contain the secret.
  4. Start an interactive rebase with git rebase -i <COMMIT-ID>~1.

    • For <COMMIT-ID>, use the commit identified in step 3. For example, git rebase -i 8728dbe67~1.
  5. In the editor, choose to edit the commit identified in step 3 by changing pick to edit on the first line of the text.

    edit 8728dbe67 my second commit message
    pick 03d69e5d3 my third commit message
    pick 8053f7b27 my fourth commit message
    
  6. Ahora, guarde y cierre el editor; esto comenzará la fusión mediante cambio de base interactiva.

  7. Quita el secreto del código.

  8. Agregue los cambios al área de pruebas mediante git add ..

    Nota:

    El comando completo es git add .:

    • Hay un espacio entre add y ..
    • El punto que sigue al espacio forma parte del comando.
  9. Confirme los cambios con git commit --amend.

  10. Ejecuta git rebase --continue para finalizar la fusión mediante cambio de base.

  11. Envía los cambios con git push.

Omisión de la protección de inserción

Nota:

Si no ve la opción para saltarse un bloqueo, debe quitar el secreto de la confirmación o enviar una solicitud de "privilegios de omisión" para poder insertar el secreto bloqueado. Consulte Solicitud de privilegios de omisión.

  1. Visita la dirección URL devuelta por GitHub cuando se bloquee la inserción como el mismo usuario que ha realizado la inserción. Si un usuario diferente intenta visitar esta dirección URL, recibirá un error de 404.

  2. Elija la opción que mejor describa por qué debería poder insertar el secreto.

    • Si el secreto solo se usa en pruebas y no supone ninguna amenaza, haga clic en Se usa en las pruebas.
    • Si la cadena detectada no es un secreto, haga clic en Es un falso positivo.
    • Si el secreto es real, pero piensa corregirlo más adelante, haga clic en Lo corregiré más adelante.
  3. Haga clic en Permitirme insertar este secreto.

  4. Vuelva a intentar la inserción en la línea de comandos en un plazo de tres horas. Si no ha realizado la inserción en un plazo de tres horas, tendrá que repetir este proceso.

Solicitud de privilegios de omisión

  1. Visita la dirección URL devuelta por GitHub cuando se bloquee la inserción como el mismo usuario que ha realizado la inserción. Si un usuario diferente intenta visitar esta dirección URL, recibirá un error de 404.

  2. En "O solicitar privilegios de omisión", agregue un comentario. Por ejemplo, puede explicar por qué cree que el secreto es seguro para insertar o proporcionar contexto sobre la solicitud para omitir el bloque.

  3. Haga clic en Enviar solicitud.

  4. Compruebe las notificaciones por correo electrónico para obtener una respuesta a su solicitud. Una vez que se haya revisado la solicitud, recibirá un correo electrónico en el que se le notificará la decisión.

    • Si se aprueba la solicitud, puede insertar la confirmación (o confirmaciones) que contiene el secreto en el repositorio, así como cualquier confirmación futura que contenga el mismo secreto.
    • Si se deniega su solicitud, debe quitar el secreto de todas las confirmaciones antes de insertar de nuevo. Para obtener más información sobre cómo eliminar un secreto bloqueado, consulta Resolución de una inserción bloqueada.

Lectura adicional

  •           [AUTOTITLE](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-in-the-github-ui)
    
  •         [AUTOTITLE](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-rest-api)