使用dawidd6/action-download-artifact跨私有仓库下载制品失败排查
排查GitHub跨私有仓库下载制品的「Error: Not Found」问题
检查Token权限
默认的GITHUB_TOKEN仅能访问当前仓库,跨私有仓库必须用带repo权限的个人访问令牌(PAT)。把PAT存在当前仓库的Secrets里(比如命名为REPO_ACCESS_TOKEN),在action步骤里指定github_token: ${{ secrets.REPO_ACCESS_TOKEN }}。核对Action参数准确性
必须明确指定repo参数为组织名/repoA,不能只写仓库名;确认name参数是制品的准确名称repoA-output(注意大小写敏感);跨仓库场景下,要么指定目标仓库的run_id,要么用workflow参数指定生成制品的Workflow文件名(比如build.yml),配合branch参数锁定分支。验证PAT的实际访问能力
在本地执行命令测试PAT能否访问repoA的制品:curl -H "Authorization: token 你的PAT值" https://api.github.com/repos/组织名/repoA/actions/artifacts如果返回404,说明PAT权限不足,需要重新生成带
repo权限的令牌,同时确认持有PAT的账号有repoA的读取权限。检查组织级权限限制
确认组织的「Personal access token restrictions」没有禁止该PAT访问repoA;同时确认触发Workflow的账号在组织内拥有repoA的读取权限。
正确配置示例
- name: 下载repoA制品 uses: dawidd6/action-download-artifact@v2 with: repo: your-org/repoA name: repoA-output github_token: ${{ secrets.REPO_ACCESS_TOKEN }} workflow: build.yml branch: main
内容的提问来源于stack exchange,提问作者Cosmo
相关产品推荐
相关产品推荐

