You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Actions Checkout身份验证失败,私有仓库克隆报错求助

解决GitHub Actions中克隆私有仓库的身份验证问题

首先肯定你的怀疑——这个报错确实是身份验证未通过导致的,而且核心问题出在PAT的存放位置和配置细节上,我来一步步帮你排查解决:

1. 修正PAT的存放位置

你提到把PAT添加到了repo_2的密钥中,但你的工作流是在repo_1里运行的!GitHub Actions只能读取当前运行工作流的仓库(也就是repo_1)的secrets,所以repo_2里的PAT根本不会被这个工作流读取到。

解决方法:

  • 把你创建的PAT转移到repo_1的Settings > Secrets and variables > Actions > New repository secret中,命名为PAT(和你工作流里引用的名称一致)。

2. 确保PAT拥有足够的权限

创建PAT时,需要勾选正确的权限才能访问私有仓库:

  • 至少要勾选repo权限(包含所有仓库读写权限),如果只需要只读权限,也要确保勾选repo:read相关的权限,别只选了公共仓库权限。
  • 注意:如果PAT设置了有效期,要确认它还在有效期内,过期的PAT会直接失效。

3. 升级actions/checkout版本

你用的是actions/checkout@v1,这个版本已经过时很久了,对新的身份验证逻辑支持不足,建议升级到最新的稳定版本actions/checkout@v4,它对私有仓库的克隆兼容性更好。

4. 修正后的工作流配置

结合以上几点,修改后的Job应该是这样的:

name: Cloning private repo
runs-on: ubuntu-latest
steps:
  - name: Checkout private repo_2
    uses: actions/checkout@v4
    with:
      repository: my-username/repo_2
      token: ${{ secrets.PAT }}
      # 可选:如果需要克隆指定分支,添加这行
      # ref: main
      # 可选:如果不想和repo_1的代码混在一起,指定克隆目录
      # path: ./repo_2

额外排查小技巧

如果按上面的步骤操作后还是报错,可以试试这些:

  • 检查仓库地址:确认my-username/repo_2没有拼写错误,GitHub仓库名是大小写敏感的,别写错大小写。
  • 本地测试PAT:在本地终端执行git clone https://<你的PAT>@github.com/my-username/repo_2.git,如果能成功克隆,说明PAT权限没问题,问题大概率在Actions的配置上。
  • 确认工作流触发源:确保工作流确实是在repo_1中触发运行的,别误把工作流文件放到了repo_2里。

最后提醒一句:PAT是敏感信息,绝对不能在代码或工作流文件里明文写出来,一定要通过secrets引用。

内容的提问来源于stack exchange,提问作者Oliver Robie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:14:31