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

在GitHub Actions执行flutter pub get时,如何拉取私有GitHub依赖并认证?

解决GitHub Actions中拉取私有GitHub Flutter库依赖的问题

你的问题出在错误使用了dart pub token add命令——这个命令是用于Pub仓库(比如pub.dev或自定义Pub服务器)的认证,而你的依赖是直接从GitHub Git仓库拉取的,所以这个认证方式完全不适用。报错的本质是git克隆私有仓库时缺少有效的认证信息。

下面是两种可行的解决方法:

方法一:配置Git Credential Helper

通过Git的凭证助手,将GitHub Actions提供的GITHUB_TOKEN作为认证信息注入到Git请求中:

- name: 获取依赖
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: |
    # 配置Git凭证存储
    git config --global credential.helper store
    # 将认证信息写入凭证文件
    echo "https://x-access-token:${GITHUB_TOKEN}@github.com" > ~/.git-credentials
    # 执行依赖拉取
    flutter pub get

方法二:替换Git URL前缀

通过Git配置,自动将所有https://github.com/开头的请求替换为带token的认证URL,更简洁:

- name: 获取依赖
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: |
    # 配置URL替换,自动注入认证信息
    git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
    # 执行依赖拉取
    flutter pub get

额外注意事项

  1. Pubspec依赖写法:确保你的pubspec.yaml中私有库的依赖配置正确,示例:
    dependencies:
      private_lib:
        git:
          url: https://github.com/你的用户名/private-lib.git
          ref: main # 可指定分支、Tag或Commit Hash
    
  2. 权限问题:如果私有库和当前仓库属于同一个组织/账号,默认的GITHUB_TOKEN已经具备访问权限;如果是跨组织的私有库,需要生成一个具备私有库读权限的个人访问令牌(PAT),替换工作流中的secrets.GITHUB_TOKEN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:31:06