在Github Actions中克隆私有仓库

wqsoz72f  于 2023-06-20  发布在  Git
关注(0)|答案(3)|浏览(225)

我正在尝试在Github操作中克隆另一个私有仓库。我在运行操作的存储库的secret中设置了SECRET_USERSECRET_PASSWORD。在行动中我在执行命令

git clone https://$SECRET_USER:$SECRET_PASSWORD@github.com/other-organization/other-repo.git

但是得到错误

Cloning into 'other-repo'...
remote: Repository not found.
fatal: Authentication failed for 'https://github.com/other-organization/other-repo.git/'
##[error]Process completed with exit code 128.

虽然我已经验证了用户可以访问https://github.com/other-organization/other-repo(这显然不是内部仓库的真实URL)。

ux6nzvsh

ux6nzvsh1#

我在我的go.yml中添加了一个git配置步骤,它做到了这一点:

- name: Configure git
  env:
    TOKEN: ${{ secrets.ACCESS_TOKEN }}
  run: git config --global url."https://${TOKEN}:x-oauth-basic@github.com/".insteadOf "https://github.com/"

其中ACCESS_TOKEN是我添加的personal access token,而不是用户名/密码组合,因为我试图访问的私有存储库需要启用SSO的令牌来访问它,而不是用户名/密码组合。不幸的是,这在错误消息中并不明显,需要与人交谈才能了解此信息。

wgxvkvu9

wgxvkvu92#

你可以使用git-credential-store将你的凭据保存在文件中,这样git就可以在需要的时候使用它。不需要修改Podfile/specfile中的URL(我的例子)。

git config --global credential.helper store
echo "https://$SECRET_USER:$SECRET_PASSWORD@github.com" > ~/.git-credentials

我对将这些数据保存在明文文件中有着复杂的感觉,但是在CI/CD机器上imo就可以了。我用here

iecba09b

iecba09b3#

1.创建名为USER_TOKEN的新个人令牌
1.使用创建的令牌。

steps:
   - uses: actions/checkout@v3
   - name: Git Bolivia
     run: |
       git --version
       git clone https://${{ secrets.USER_TOKEN }}:x-oauth-basic@github.com/Organization/repository.git

相关问题