我想克隆GitLab仓库没有提示我的自动化脚本,通过使用我的私人令牌从我的GitLab帐户。

有人能给我一个样品吗?

我知道我可以这样做的用户和密码:

git clone https://" + user + ":" + password + "@" + gitlaburl;

我知道这是可能的ssh密钥

但是,这两种选择都不够。


当前回答

上面的许多答案都很接近,但是部署令牌的用户名语法不正确。还有其他类型的令牌,但部署令牌是gitlab为每个回购提供的(至少在2020年左右),以允许自定义访问,包括只读。

从存储库(或组)中找到设置——>存储库——>部署令牌。创建一个新的。创建用户名和令牌字段。默认情况下,用户名不是固定值;它对这个令牌来说是唯一的。

git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git

在gitlab.com公开测试,免费账号。

其他回答

现在(2020年10月),你可以只使用以下内容

git clone $CI_REPOSITORY_URL

它将扩展为如下内容:

git clone https://gitlab-ci-token:[MASKED]@gitlab.com/gitlab-examples/ci-debug-trace.git

其中“令牌”密码是临时令牌(它将在构建完成后自动撤销)。

在本例中,我只提供了令牌而不是密码(第二个输入字段)。

我第一次从命令行推送本地回购。

从头开始,这些是我输入的命令(记得先移动到回购文件夹内)。

$ git init

$ git status

$ git add .

$ git status

$ git commit -m 'Shinra Tensei.'

$ git push --set-upstream https://gitlab.com/userName/my-repo.git master

然后,您可以在图片中看到的弹出消息出现。提供用户名和令牌。

您可以更改您的:

user:oauth2
password : <youraccesstoken>

例子:

git clone https://oauth2:<token>@hahahehe.com/yourname/yourproject.git

我去SSH使用每个项目部署键设置(只读)

在GitLab CI管道中,CI_JOB_TOKEN环境变量为我工作:

git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...

来源:Gitlab Docs

顺便说一下,在.gitlab-ci中设置这个变量。Yml有助于调试错误。

variables:
    CI_DEBUG_TRACE: "true"