Quero clonar o repositório do gitlab sem solicitar o meu script de automação, usando meu token privado da minha conta do gitlab.
Alguém pode me fornecer uma amostra?
Eu sei que posso fazer isso com usuário e senha:
git clone https://" + user + ":" + password + "@" + gitlaburl;
e eu sei que é possível com a chave ssh
mas, ambas as opções não são suficientes
git clone https://<token-name>:<token>@gitlaburl
Respostas:
Eu sei que isso é antigo, mas é assim que você faz:
git clone https://oauth2:[email protected]/vendor/package.git
fonte
api
token. Aread_user
só pode ler repos sob/users
ssh
?Você pode fazer assim:
fonte
O gitlab possui muitos tokens:
Testei apenas o Token de Acesso Pessoal usando o GitLab Community Edition 10.1.2 , o exemplo:
ou usando nome de usuário e senha:
ou digitando sua senha:
Mas o token privado parece não funcionar.
fonte
Use o token em vez da senha (o token precisa ter o escopo "api" para que o clone seja permitido):
Testado contra 11.0.0-ee.
fonte
Você pode usar o token de corredores para os pipelines de CI / CD do seu repositório GitLab.
Onde
<runners token>
pode ser obtido em:ou clicando no
Settings icon -> CI/CD Pipeline
e procure Runners Token na páginaCaptura de tela do local do token de corredores:
fonte
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
Se você já possui um repositório e acabou de alterar a maneira como faz a autenticação para o MFA, pode alterar seu
remote origin
URI HTTP para usar seu novo token de API da seguinte maneira:git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
E você não precisará clonar novamente o repositório.
fonte
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
também funcionou para mim, obrigado !! Vou responder a esta discussão com a minha solução correta.Uma maneira possível é usar um token de implantação ( https://docs.gitlab.com/ee/user/project/deploy_tokens ). Após criar o token, use:
conforme mencionado no link acima.
fonte
Desde então
8.12
, a clonagem usando oHTTPS
+ runner token não é mais suportada, conforme mencionado aqui :fonte
Dentro de um pipeline de IC do GitLab, a
CI_JOB_TOKEN
variável de ambiente funciona para mim:Fonte: Documentos do Gitlab
BTW, definir essa variável
.gitlab-ci.yml
ajuda a depurar erros.fonte
Fui SSH usando a configuração de chaves de implantação por projeto (somente leitura)
fonte
Para me deixar feliz no futuro: RTFM - não use o gitlab-ci-token, mas o
.netrc
arquivo.Existem alguns pontos importantes:
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
$CI_JOB_TOKEN
dentro do arquivo!https://gitlab.com/whatever/foobar.com
- nãossh://git@foobar
, nãogit+ssh://
, nãogit+https://
. Você também não precisa de nenhum material CI-TOKEN no URL.git clone [url from step 4]
Antecedentes: recebi
quando tentei fazer o Ansible + Gitlab + Docker funcionar como eu imagino. Agora funciona.
fonte
Não é necessário personalizar o URL. Basta usar uma configuração git para tokens gitlab como
descrição estendida aqui
fonte
muitas respostas acima estão próximas, mas elas possuem ~
username
sintaxe paradeploy
tokens incorretos. Existem outros tipos de tokens, masdeploy token
é isso que o gitlab oferece (pelo menos 2020 ou mais) por repo para permitir acesso personalizado, incluindo somente leitura.de um
repository
(ougroup
), encontre osettings
->repository
->deploy tokens
. Crie um novo. Um campousername
etoken
são criados. Ousername
NÃO é um valor fixo por padrão; é exclusivo para esse token.git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git
testado na conta pública gratuita do gitlab.com.
fonte