带有私有存储库和标签的 Github 工作流



我首先在这里问了这个问题,但没有得到回应:https://github.community/t/private-repo-w-tag-in-workflow/229573

我们有三个私人repo,在我们的package.json中有标签作为依赖项,例如:

"Private-Repo1": "https://<PAT>:x-oauth-basic@github.com/project/Private-Repo.git#v1.0.0",

我们使用oauth密钥来访问我们的repo。我的PAT设置为允许签出回购以及工作流访问。

当我们运行工作流操作时,它在npm ci处失败,并出现错误:

npm ERR! code 128
npm ERR! An unknown git error occurred
npm ERR! command git --no-replace-objects ls-remote ***github.com/project/Private-Repo.git
npm ERR! remote: Repository not found.
npm ERR! fatal: repository 'https://github.com/project/Private-Repo.git/' not found

本地测试指出,我们失败的原因是,当你指向带有标签号的私有回购时,git ls-remote失败了,如果我删除标签,它就可以工作。

有人能告诉我如何使用PAT通过我们的package.json从工作流程中的私人回购中提取特定标签吗?我能找到的一切都是如何访问私人回购,但不是如何访问私人逆回购的标签。

对于任何遇到类似问题的人来说,问题不是git ls-remote,而是令牌。我叫错地方了。它需要在签出步骤中设置,而不是在设置节点步骤中设置。这是我的工作yaml,它允许我使用一个使用oauth令牌的私有repo和标记来运行工作流。唯一需要的设置是制作一个名为GIT_TOKEN的秘密(或者你想称之为什么(,并赋予它工作流访问权限。

name: API auto test and lint workflow
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.GIT_TOKEN }}
- uses: actions/setup-node@v1
with:
node-version: 16.x
- run: npm ci
- run: npm run lint
- run: npm run test

最新更新