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.
- Si la confirmación más reciente introdujo el secreto, consulte Eliminación de un secreto introducido por la confirmación más reciente en la rama.
- Si el secreto aparece en confirmaciones anteriores, consulte Eliminación de un secreto introducido por una confirmación anterior en la rama.
Eliminación de un secreto introducido por la confirmación más reciente en la rama
- Quita el secreto del código.
- 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. - Envía los cambios con
git push.
Eliminación de un secreto introducido por una confirmación anterior en la rama
-
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 -
A continuación, ejecute
git logpara 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 -
Focusing only on the commits that contain the secret, use the output of
git logto identify which commit comes earliest in your Git history.- In the example, commit
8728dbe67was the first commit to contain the secret.
- In the example, commit
-
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.
- For
-
In the editor, choose to edit the commit identified in step 3 by changing
picktoediton the first line of the text.edit 8728dbe67 my second commit message pick 03d69e5d3 my third commit message pick 8053f7b27 my fourth commit message -
Ahora, guarde y cierre el editor; esto comenzará la fusión mediante cambio de base interactiva.
-
Quita el secreto del código.
-
Agregue los cambios al área de pruebas mediante
git add ..Nota:
El comando completo es
git add .:- Hay un espacio entre
addy.. - El punto que sigue al espacio forma parte del comando.
- Hay un espacio entre
-
Confirme los cambios con
git commit --amend. -
Ejecuta
git rebase --continuepara finalizar la fusión mediante cambio de base. -
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.
-
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. -
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.
-
Haga clic en Permitirme insertar este secreto.
-
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
-
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. -
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.
-
Haga clic en Enviar solicitud.
-
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)