在凭据缓存中临时存储git凭据

时间:2019-05-17 08:30:01

标签: git gitlab gitlab-ci carthage

我在 Carthage ,GitLab CI和我们的内部依赖项方面遇到了一些身份验证问题。 我们的跑步者很干净,出于安全考虑,他们的钥匙串中没有存储任何有关GitLab的凭据。

在作业中运行carthage bootstrap时,迦太基使用git credential fill对请求进行身份验证,而在我们看来,该请求失败。

A shell task (/usr/bin/env git fetch --prune --quiet https://gitlab.corp.com/path/to/lib.git refs/tags/*:refs/tags/* +refs/heads/*:refs/heads/* (launched in /Users/x/Library/Caches/org.carthage.CarthageKit/dependencies/lib)) failed with exit code 128:
remote: HTTP Basic: Access denied
remote: You must use a personal access token with 'api' scope for Git over HTTP.
remote: You can generate one at https://gitlab.corp.com/profile/personal_access_tokens
fatal: Authentication failed for 'https://gitlab.corp.com/path/to/lib.git/'

每个作业都获得一个作业令牌,并且应该使用该令牌与GitLab进行通信。

如何将用户名gitlab-ci-token和密码$CI_JOB_TOKEN临时插入git凭据缓存存储区?

1 个答案:

答案 0 :(得分:0)

  

如何将用户名gitlab-ci-token和密码$ CI_JOB_TOKEN临时插入git凭据缓存存储区?

这表明gitlab.corp.com URL现在已经在Windows凭据管理器(由git凭据帮助器使用)中已与用户名/密码关联。

由于凭据管理器只能将一个凭据与一个URL相关联,因此您可能需要切换到没有令牌限制的SSH方案。
甚至可以通过以下操作自动完成:

git config --global url.ssh://git@gitlab.corp.com/.insteadOf https://gitlab.corp.com/