【发布时间】:2022-01-17 03:44:49
【问题描述】:
我在 Github Action/Workflow 的以下部分遇到问题,该部分旨在拉取远程私有 repo(例如,不是包含 Action 本身的 repo)的 PR 列表(带有一些过滤)。
- run: echo "PR2=$( gh pr list --head "${{ env.BRANCH_NAME }}" --repo github.com/[OWNER]/[REMOTE_REPO] | tr -s [:space:] ' ' | cut -d' ' -f1 )" >> $GITHUB_ENV
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
但是,我收到以下错误:GraphQL: Could not resolve to a Repository with the name '[OWNER]/[REMOTE_REPO]'. (repository)
我认为某处的身份验证存在一些问题,因为在使用 gh auth 进行身份验证后,这些命令可以在终端中完美运行。我是 Github 整体、Actions 和 CLI 的新手,所以任何关于如何在操作中正确进行身份验证的建议都会很棒。
编辑:找到解决方案/解决方法。
使用 git ls-remote 获取 PR 和分支的列表,然后使用 ID 链接两者。供将来参考:
id=$(git ls-remote git@github.com:[OWNER]/[REMOTE_REPO] | grep "${{ env.BRANCH_NAME }}" | head -c 40)
PR=$(git ls-remote git@github.com:[OWNER]/[REMOTE_REPO] | grep "${id}.*refs/pull" | cut -b 52- | rev | cut -b 6- | rev)
【问题讨论】:
-
我在Github CLI repo 上发现了一些关于此问题的内容。您可以尝试在用于列出 PR 的命令之前运行gh auth login <flags> 命令吗?
-
我很想,但我不知道要使用哪个令牌。标准的
gh auth login是一个交互式命令,所以我想我需要gh auth login --with-token,但我不知道它是如何工作的。
标签: github github-actions building-github-actions github-cli