GitHub Actions中用GitHub CLI自动关Issue报错:无法解析编号1的Issue
解决GitHub Actions自动关闭Issue时的"无法解析Issue"错误
错误原因
你在gh issue close命令里硬写死了Issue编号"1",但触发工作流的是刚创建的新Issue,它的编号是动态生成的(不是固定的1),所以GitHub CLI找不到对应编号的Issue,才抛出"Could not resolve to an issue or pull request with the number of 1"的错误。
修复方案1:用GitHub上下文变量获取动态Issue编号
把硬编码的"1"换成GitHub提供的上下文变量${{ github.event.issue.number }},这个变量会自动获取当前触发工作流的Issue编号。另外,gh repo set-default步骤可以省略,因为工作流默认已经关联当前仓库,不需要手动设置。修改后的YAML代码如下:
name: CI on: issues: types: - opened jobs: titlePrefixCheck: runs-on: ubuntu-latest steps: - name: Close Issue run: gh issue close --comment "Auto-closing issue" ${{ github.event.issue.number }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
修复方案2:直接使用你参考的Close Issue Action
既然你一开始就参考了市场上的Close Issue Action,直接用它会更简洁,不用手动写gh命令。示例代码如下:
name: Auto Close Issue on: issues: types: - opened jobs: close-issue: runs-on: ubuntu-latest steps: - name: Close Issue uses: peter-evans/close-issue@v3 with: comment: "Auto-closing issue"
这个Action会自动处理当前触发的Issue,不需要手动指定编号,私有仓库默认的GITHUB_TOKEN就有足够权限执行关闭操作。
仓库设置说明
不需要额外配置仓库权限,默认的GITHUB_TOKEN已经拥有私有仓库的Issues操作权限,能正常完成自动关闭操作。
内容的提问来源于stack exchange,提问作者biggboss2019
相关产品推荐
相关产品推荐

