Tecnología · GUÍA PRÁCTICA
¿Git dice «terminal prompts disabled»? Audita la ruta de credenciales antes del remoto
El mensaje solo demuestra que Git no obtuvo un usuario sin interacción; no prueba que el token haya caducado ni que SSH sea obligatorio. Rastrea proceso, URL efectiva, política de avisos y auxiliar sin exponer secretos.

Trata «could not read Username … terminal prompts disabled» como un fallo de la ruta de adquisición de credenciales, no como diagnóstico final de la credencial.
Antes de cambiar protocolo o permitir avisos, registra proceso, URL efectiva, controles, auxiliar coincidente y canal autorizado para secretos.
1. Fija el contexto del fallo
Anota comando Git, carpeta, proceso invocador, cuenta efectiva, versión y URL saneada. El éxito en una terminal interactiva solo compara; no demuestra que CI reciba la misma configuración y credenciales.
Conserva el primer error completo y los registros, pero oculta tokens, cookies, contraseñas y cabeceras. No actives trazas amplias sin saber qué pueden revelar.
2. Separa política de aviso y suministro
La documentación de Git indica que GIT_TERMINAL_PROMPT=0 impide avisos de terminal, pero aún pueden actuar GIT_ASKPASS, core.askPass, SSH_ASKPASS o auxiliares.
No empieces cambiándolo a 1. La automatización puede quedar bloqueada o esconder el defecto con un inicio manual. Confirma que el modo no interactivo sea intencional.
3. Resuelve la URL y el contexto efectivos
Inspecciona la URL tras reglas url.*.insteadOf y anota protocolo, host y ruta relevante. Los contextos comparan exactamente protocolo y host; useHttpPath puede volver significativa la ruta.
Lee configuración con origen y alcance para distinguir system, global, local y command. Confirma que la cuenta real pueda ejecutar cada auxiliar.
4. Prueba la adquisición sin revelar secretos
Para el contexto HTTPS exacto, comprueba si la cadena devuelve usuario y credencial. Registra solo la presencia de campos y el auxiliar responsable, nunca los valores.
Separa adquisición de autorización. Un token presente puede carecer de acceso, haber caducado o estar bloqueado; prueba mediante el mecanismo secreto aprobado.
5. Repara el límite responsable y cierra
Restaura el auxiliar, corrige el contexto URL, entrega la credencial CI aprobada o cambia a SSH solo si es el transporte elegido. Evita reglas globales insteadOf indiscriminadas.
Repite el comando original con el invocador original. Exige éxito sin aviso, confirma la operación, elimina trazas temporales y rota cualquier credencial expuesta.
