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

GitHub Actions安装私有GitHub依赖时报Git 128错误如何解决

GitHub Actions npm install拉取私有SSH依赖报128错误的最佳解决方案

该错误本质是GitHub Actions运行环境没有访问你账号下私有仓库REPONAME的权限,你在package.json中配置的依赖走SSH协议拉取时鉴权失败。

以下是安全性最高、配置最简便的解决方案,不需要修改现有依赖配置,也不需要管理SSH密钥:

操作步骤

  1. 生成细粒度个人访问令牌(PAT)
  • 进入GitHub账号的【设置】-【开发者设置】-【个人访问令牌】-【细粒度令牌】,点击新建令牌
  • 令牌的资源所有者选择你的账号,仓库权限仅勾选需要访问的私有仓库REPONAME
  • 仓库权限的Contents选项设置为只读,按需设置令牌有效期后保存,复制生成的令牌值(只会显示一次,需妥善保存)
  1. 将令牌存入当前项目仓库的Secrets
  • 进入当前运行工作流的项目仓库,依次点击【Settings】-【Secrets and variables】-【Actions】
  • 点击【New repository secret】,命名为PRIVATE_REPO_PAT,值粘贴刚才生成的PAT后保存
  1. 修改工作流配置,添加git重定向规则
    在你的工作流的npm install步骤之前,添加一步git配置,自动将SSH的GitHub地址替换为带PAT的HTTPS地址,修改后的steps部分示例如下:
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
  uses: actions/setup-node@v2
  with:
    node-version: ${{ matrix.node-version }}
    cache: "npm"
# 新增的配置步骤
- name: 配置私有依赖访问权限
  run: git config --global url."https://${{ secrets.PRIVATE_REPO_PAT }}@github.com/".insteadOf "ssh://git@github.com/"
- run: echo "Testing App."
- run: npm install
# 后续原有步骤保持不变

方案说明

  • 这个配置会让所有向ssh://git@github.com/发起的git请求自动走带鉴权信息的HTTPS协议,npm拉取依赖时会自动鉴权,完全不需要修改你package.json里的原有依赖配置
  • 细粒度PAT可以精确控制权限范围、有效期,相比SSH密钥泄露风险更低,管理更方便
  • 不要直接使用GitHub自动生成的GITHUB_TOKEN,这个令牌默认只有当前仓库的访问权限,无法拉取其他私有仓库的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:39:04