Quiero clonar el repositorio de gitlab sin solicitar mi script de automatización, utilizando mi token privado de mi cuenta de gitlab.
¿Alguien puede proporcionarme una muestra?
Sé que puedo hacerlo con usuario y contraseña:
git clone https://" + user + ":" + password + "@" + gitlaburl;
y sé que es posible con la tecla ssh
pero, ambas opciones no son suficientes
git clone https://<token-name>:<token>@gitlaburl
Respuestas:
Sé que esto es viejo, pero así es como lo haces:
git clone https://oauth2:[email protected]/vendor/package.git
fuente
api
token. Aread_user
solo puede leer repositorios bajo/users
ssh
?Puedes hacerlo así:
fuente
El gitlab tiene muchos tokens:
Probé solo el token de acceso personal usando GitLab Community Edition 10.1.2 , el ejemplo:
o usando nombre de usuario y contraseña:
o ingresando su contraseña:
Pero el token privado parece que no puede funcionar.
fuente
Use el token en lugar de la contraseña (el token debe tener un alcance "api" para permitir la clonación):
Probado contra 11.0.0-ee.
fuente
Puede usar el token de los corredores para las canalizaciones de CI / CD de su repositorio de GitLab.
Dónde
<runners token>
se puede obtener de:o haciendo clic en
Settings icon -> CI/CD Pipeline
y busque el token Runners en la páginaCaptura de pantalla de la ubicación del token de los corredores:
fuente
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
Si ya tiene un repositorio y acaba de cambiar la forma en que realiza la autenticación a MFA, puede cambiar su
remote origin
URI de HTTP para usar su nuevo token de API de la siguiente manera:git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
Y no necesitará volver a clonar el repositorio en absoluto.
fuente
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
También funcionó para mí, ¡gracias! Contestaré este hilo con mi solución correcta.Una forma posible es usar un token de implementación ( https://docs.gitlab.com/ee/user/project/deploy_tokens ). Después de crear el token, use:
como se menciona en el enlace de arriba.
fuente
A partir de ahora
8.12
, la clonación usando elHTTPS
token + runner ya no es compatible, como se menciona aquí :fuente
Dentro de una tubería GitLab CI, la
CI_JOB_TOKEN
variable de entorno funciona para mí:Fuente: Documentos de Gitlab
Por cierto, establecer esta variable
.gitlab-ci.yml
ayuda a depurar errores.fuente
Fui SSH usando la configuración de claves de implementación por proyecto (solo lectura)
fuente
Para hacerme feliz en el futuro: RTFM : no use el gitlab-ci-token en absoluto, sino el
.netrc
archivo.Hay un par de puntos importantes:
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
$CI_JOB_TOKEN
el archivo dentro del archivo!https://gitlab.com/whatever/foobar.com
- nossh://git@foobar
, nogit+ssh://
, nogit+https://
. Tampoco necesita ningún elemento de CI-TOKEN en la URL.git clone [url from step 4]
Antecedentes: tengo
cuando intenté hacer que Ansible + Gitlab + Docker funcionara como lo imagino. Ahora funciona.
fuente
No es necesario personalizar la URL. Solo use una configuración git para tokens gitlab como
descripción extendida aquí
fuente
muchas respuestas anteriores están cerca, pero obtienen una
username
sintaxis ~ para losdeploy
tokens incorrectos. Hay otros tipos de tokens, pero estodeploy token
es lo que ofrece gitlab (alrededor de 2020+ al menos) por repositorio para permitir un acceso personalizado, incluido solo lectura.de a
repository
(ogroup
), encuentre elsettings
->repository
->deploy tokens
. Crea uno nuevo. Ausername
ytoken
campo son creados. Elusername
NO es un valor fijo por defecto; Es exclusivo de este token.git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git
probado en gitlab.com cuenta pública, gratuita.
fuente