Gitlab-使用 access_token 推送到存储库

我实现 oauth2 web 流程是为了从我的应用程序的用户那里获得 access _ token。使用 access _ token,我希望执行以下操作:

  1. 获取用户信息
  2. 为这个用户创建一个回购协议
  3. 将代码推送到这个回购(使用 git Push)

我已经成功地获得了用户信息(1)并创建了一个回购(2)

问题是我不能推送代码(3) ,我得到“未授权”错误。

我运行的命令:

git remote add origin https://gitlab-ci-token<mytoken>@gitlab.com/myuser/myrepo.git
git push origin master
76805 次浏览

你应该这么做

git remote add origin https://<access-token-name>:<access-token>@gitlab.com/myuser/myrepo.git

请注意,这将访问令牌作为纯文本存储在 .git\config文件中。为了避免这种情况,您可以使用 git 凭证系统,为“ username”提供访问令牌名称,为“ password”提供访问令牌。这个 应该以更安全的方式将凭据存储在 git 凭据系统中。

Gitlab 目前不支持使用 gitlab-ci-token进行推送。

也可以不添加新的远程存储库而直接推送:

git push https://gitlab-ci-token:<access_token>@gitlab.com/myuser/myrepo.git <branch_name>

如果您想要拖动和推送到不同的存储库,这可能特别方便。

您也可以使用 git remote set-url:

git remote set-url origin https://gitlab-ci-token:${ACCESS_TOKEN}@gitlab.com/<group>/<repo-name>.git