GitHub Actions克隆同组织外部仓库报未找到错误如何解决
GitHub Actions克隆同组织外部仓库报仓库不存在的解决方法
原有配置问题
当前使用的配置存在明确的参数格式错误,同时需要配套校验密钥权限,原有错误配置如下:
- uses: actions/checkout@v2 with: repository: Test-App/argocd-configuration.git ref: deploy-api ssh-key: ${{ secrets.ORG_SSH_REPO_ACCESS_KEY }}
核心错误点
repository参数格式错误:actions/checkout的该字段仅接受所有者/仓库名的格式,不能带.git后缀,带后缀会导致插件拼接仓库地址出错,直接触发fatal: repository not found报错。- 密钥权限校验:使用的组织统一SSH密钥,需要满足以下任一条件才能正常克隆:
- 密钥对应的公钥已添加到目标仓库
argocd-configuration的部署密钥中,且开启了读取权限 - 密钥对应的账号为组织内成员,且拥有目标仓库的至少读取权限,组织未开启限制第三方密钥访问的策略
- 密钥对应的公钥已添加到目标仓库
修正后的可用配置
- uses: actions/checkout@v2 with: repository: Test-App/argocd-configuration # 移除.git后缀 ref: deploy-api ssh-key: ${{ secrets.ORG_SSH_REPO_ACCESS_KEY }} persist-credentials: true # 后续步骤需要操作仓库时保留凭证,不需要可设为false
仍报错时的排查顺序
- 本地使用对应私钥执行
git clone git@github.com:Test-App/argocd-configuration.git,确认密钥本身有权限拉取代码,排除密钥本身的权限问题 - 检查当前运行Workflow的仓库下,
ORG_SSH_REPO_ACCESS_KEY密钥内容完整,私钥复制时没有遗漏首尾的标识行,密钥名称没有拼写错误 - 确认目标仓库下确实存在
deploy-api分支,分支名没有大小写、拼写错误 - 如果组织开启了SAML SSO校验,确认密钥关联的账号已经完成SAML认证,获得了组织内仓库的访问授权
内容的提问来源于stack exchange,提问作者Vini
相关产品推荐
相关产品推荐

