如何在 GitHub Action 中使用 GitHub cli (gh) 向 Github 进行身份验证并创建 PR?

Posted

技术标签:

【中文标题】如何在 GitHub Action 中使用 GitHub cli (gh) 向 Github 进行身份验证并创建 PR?【英文标题】:How do you authenticate with Github and create PRs using GitHub cli (gh) in a GitHub Action? 【发布时间】:2022-01-19 06:18:08 【问题描述】:

在 GitHub 操作中,我使用脚本创建了一个文件。然后我可以使用 git 创建一个分支,添加文件,提交文件并将分支推送到 repo。全部使用 git。

然后我想从我的操作中创建一个 PR,所以我正在使用 GH CLI。 在我的步骤中,这是 PR 相关部分:

echo "GH CLI Auth"
gh auth login --with-token < $ secrets.GITHUB_TOKEN 
echo "Create PR"
gh pr create --reviewer myhandle --title "Show Notes $ env.NEWFILE_PATH " --body "Show Notes $ env.NEWFILE_PATH "

但我遇到了一个错误。

GH CLI Auth
/home/runner/work/_temp/<GUID_CENSORED>.sh: line 13: ***: No such file or directory
Error: Process completed with exit code 1.

我正在授予 GitHub 令牌对代码和拉取请求的写入权限。

permissions:
  contents: write
  pull-requests: write

我很难过。感谢您的帮助!

【问题讨论】:

【参考方案1】:

您可以为此使用环境变量。 GH_TOKENGITHUB_TOKEN,详情请查看 docs。

这是一个例子:

name: Create PR workflow example
on: push
jobs:
  create_pr:
    runs-on: ubuntu-latest
    steps:
      - run: gh pr create --title "The fix" --body "This fixes the issue"
        env:
          GITHUB_TOKEN: $ secrets.GITHUB_TOKEN 

【讨论】:

我现在看到了,我是在我实际使用gh cli 之前的一步上这样做的。一旦我移动了它,正如你指出的那样它有效。谢谢!

以上是关于如何在 GitHub Action 中使用 GitHub cli (gh) 向 Github 进行身份验证并创建 PR?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GitHub Action 上参数化机密

如何在 GitHub Action 工作流程中推送或合并之前获取上一个提交?

GitHub Action appleboy/ssh-action:如何避免 SSH 密钥出现在服务器上?

如何创建 GitHub Action 以使用 Yarn 运行 Jest 测试?

git 提交代码到github错误处理

如何使用git工具向github提交代码