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

如何将私有Git子模块部署至GitHub Pages?

解决GitHub Pages部署私有子模块的权限问题

默认的GITHUB_TOKEN只拥有当前仓库的访问权限,没法拉取其他私有仓库的子模块——哪怕日志显示"设置子模块克隆的身份验证",那也只是用这个仓库级token尝试,它没有访问子模块仓库的权限。按下面步骤操作就能让两个仓库都保持私有:

  1. 创建带repo权限的个人访问令牌(PAT)

    • 打开GitHub的「Settings」→「Developer settings」→「Personal access tokens」→「Tokens (classic)」
    • 点击「Generate new token」,勾选repo权限(这能让令牌访问你的所有私有仓库),设置过期时间后生成令牌,复制下来存好,刷新页面后就看不到了。
  2. 把PAT添加到主仓库的Actions Secrets里

    • 进入主仓库的「Settings」→「Secrets and variables」→「Actions」→「New repository secret」
    • 命名为PRIVATE_SUBMODULE_TOKEN,把刚才复制的PAT粘贴到值的输入框,保存。
  3. 修改部署用的GitHub Actions Workflow文件

    • 找到主仓库里的.github/workflows/pages.yml(或者你用的部署工作流文件),找到checkout步骤,修改成下面的内容:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          submodules: recursive  # 没有嵌套子模块的话写true也行
          token: ${{ secrets.PRIVATE_SUBMODULE_TOKEN }}
      

    这样checkout的时候会用你创建的PAT来拉取子模块,因为这个令牌有私有仓库的访问权限,就能正常克隆子模块了。

  4. 重新触发部署

    • 手动运行一次Workflow,或者提交一次代码触发自动构建,现在应该能正常拉取私有子模块并部署了。

注意:如果子模块是组织仓库,你用来生成PAT的GitHub账号必须拥有该子模块仓库的访问权限(比如是仓库成员或者有读取权限)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:12:09