调用同组织私有仓库GitHub Workflow遇404错误,求解决方案
解决跨私有仓库调用GitHub Workflow的404错误
以下是针对问题的具体修复步骤:
修正仓库名称拼写错误
错误提示明确指出仓库https://github.com/somebookingtest/e2e-cypress/找不到,但你的配置里两处都把仓库名写成了e2e-cypres(少了最后一个s),需要统一修正为e2e-cypress,包括firstjob的uses字段和secondjob里github.rest的repo参数。统一组织名称
错误提示中的组织是somebookingtest,但你在github.rest.actions.createWorkflowDispatch里写的owner: 'booking',两者不匹配,必须统一为实际的组织名(即你所说的组织A)。调整权限配置
私有仓库间调用Workflow需要比read-all更高的权限,将permissions字段修改为:permissions: actions: write contents: read该配置赋予了读取仓库内容和触发Workflow的必要权限。
使用个人访问令牌(PAT)替代默认GITHUB_TOKEN
GitHub默认的GITHUB_TOKEN无法跨私有仓库触发Workflow Dispatch,需按以下操作处理:- 创建一个带有
repo权限的PAT; - 在repo-2的仓库Secrets中添加该PAT,命名为
REPO_PAT; - 修改
github-script的配置,指定使用这个PAT:- name: Trigger Workflow uses: actions/github-script@v6 with: github-token: ${{ secrets.REPO_PAT }} script: | github.rest.actions.createWorkflowDispatch({ owner: 'somebookingtest', # 替换为正确的组织名 repo: 'e2e-cypress', # 修正后的仓库名 workflow_id: 'maintest.yml', ref: 'main-fixes', })
- 创建一个带有
修正
firstjob的uses路径
把uses字段里的仓库名也修正为正确值:uses: somebookingtest/e2e-cypress/.github/workflows/maintest.yml@main-fixes
内容的提问来源于stack exchange,提问作者soccerway
相关产品推荐
相关产品推荐

