Acceda al repositorio de GitLab con el token de acceso al proyecto

3 minutos de lectura

Según la documentación, debería ser posible acceder a los repositorios de GitLab con tokens de acceso al proyecto:

El nombre de usuario se establece en project_{project_id}_bot, como project_123_bot.

No importa que eso sea mentira: el usuario real se llama project_4194_bot1 en mi caso; aparentemente incrementan un número para tokens posteriores.

De cualquier manera, y yo tener probado con y sin el final 1 — Yo esperaría

git clone "https://project_4194_bot1:$PROJECT_TOKEN@my.gitlab.host/my-group/my-project.git"

para tener éxito, al igual que con my.username:$PERSONAL_TOKEN (que funciona perfectamente). Sin embargo, obtengo

remote: HTTP Basic: Access denied
fatal: Authentication failed for '<snip>'

¿Qué puede estar pasando aquí? ¿Cómo puedo acceder a los repositorios de GitLab usando tokens de acceso al proyecto?


No es como si fuéramos a llegar tan lejos, pero FWIW, el token parece tener suficientes permisos:

ingrese la descripción de la imagen aquí

  • La solución alternativa con claves SSH funciona como documentadopero se siente innecesariamente enrevesado.

    – Rafael

    17 sep 2020 a las 16:44

  • De nada, lo agregué! De hecho, no tengo idea de dónde encontré esta solución, pero estaba en un script mío. En realidad, esto debería estar documentado en los documentos de GitLab en alguna parte, pero no pude encontrarlo.

    – Rafael-WO

    17 de marzo de 2021 a las 13:36

  • @ Rafael-WO Estoy bastante seguro de que leí todo sobre el tema. Verificaré nuevamente y tal vez proponga un cambio, cuando encuentre el tiempo.

    – Rafael

    17 de marzo de 2021 a las 13:53

Avatar de usuario de Rafael-WO
Rafael-WO

Parece que usar el nombre del proyecto como nombre de usuario funciona. En tu caso reemplazando project_4194_bot1 con my-project Deberia trabajar:

git clone "https://my-project:$PROJECT_TOKEN@my.gitlab.host/my-group/my-project.git"

EDITAR: En realidad, se puede usar cualquier valor que no esté en blanco como nombre de usuario (ver documentos), como bien han señalado otros.

  • Tal como está escrito, esta respuesta es engañosa. Desde el Documentación de GitLab: “al usar la autenticación básica HTTP, use cualquier valor que no esté en blanco como nombre de usuario y el token de acceso al proyecto como contraseña”.

    – Gavin Uberti

    27 de junio a las 18:17

  • como dijo Gavin, probé con cualquier nombre en lugar de ‘mi proyecto’ y funciona

    – An_Bk

    18 ago a las 18:55

Desde el Documentación de GitLab:

Con Git, cuando use la autenticación básica HTTP, use:

  • Cualquier valor que no esté en blanco como nombre de usuario.
  • El token de acceso al proyecto como contraseña.

En versiones anteriores de GitLab habría sido necesario utilizar project_4194_bot1 como nombre de usuario. Sin embargo, la versión actual le permite usar cualquier nombre de usuario que desee:

git clone "https://anything:$PROJECT_TOKEN@my.gitlab.host/my-group/my-project.git"

Avatar de usuario de Janner
Janner

Descubrí que, según la versión de git, el ‘usuario’ se puede dejar vacío o una cadena aleatoria si el token es un token de acceso al proyecto.

git clone "https://<$USER>:$PROJECT_TOKEN@my.gitlab.host/my-group/my-project.git"

  • ¡Bienvenido a StackOverflow! Su nueva respuesta parece contradecir la respuesta que funcionó y fue aceptada hace más de un año. No hay nada de malo en agregar una nueva respuesta a una pregunta anterior (consulte “Tengo una respuesta nueva para una (o más) preguntas anteriores”), pero si cree que “$TOKEN_NAME” es más correcto que “mi proyecto, ” luego incluya una explicación para el beneficio de nuestros otros usuarios. ¡Gracias y disfruta el sitio!

    – B. Shefter

    23 de marzo a las 0:48


¿Ha sido útil esta solución?