如何使用存放在私有仓库中的GitHub composite action?
GitHub Composite Action完全支持存放在私有仓库,你遇到的报错是权限配置问题,可通过以下方法解决:
同组织私有仓库调用配置
如果存放Action的仓库和调用Action的仓库归属同一个GitHub组织,只需两步配置:
- 先在调用方工作流的配置中,新增
actions: read权限声明,示例如下:
permissions: actions: read contents: read # 保留你原有工作流需要的其他权限即可
- 再进入存放Action的私有仓库设置页:侧边栏选择「Actions」→「General」→ 找到「Access」配置区,选择「同一组织内的仓库可访问」,也可单独添加指定的调用方仓库到允许访问列表。
个人账号跨私有仓库调用配置
如果两个私有仓库都属于个人账号,需要用有读取权限的个人访问令牌(PAT)先拉取Action到本地再调用:
# 先拉取私有仓库的Action到本地路径 - name: Checkout private composite action uses: actions/checkout@v4 with: repository: user/repo ref: v1 token: ${{ secrets.YOUR_PAT }} # PAT需要提前存到调用方仓库的Secrets中 path: ./.github/actions/custom-health-check # 调用本地路径的Action - name: Run custom health check uses: ./.github/actions/custom-health-check
你收到的
Unable to resolve actionuser/repo@v1, repository not found报错,本质是GitHub Actions工作流默认没有读取其他私有仓库资源的权限,完成对应权限配置后即可正常调用。
内容的提问来源于stack exchange,提问作者Daniel Kaplan
相关产品推荐
相关产品推荐

