GitHub Action 无法从私有 GitHub 存储库获取 pub 包

Bor*_*ayi 6 github dart flutter github-actions private-repository

我有一个 flutter 项目,它依赖于 GitHub 上的私有存储库,例如:

dependencies:
  flutter:
    sdk: flutter

  my_package:
    git:
      url: git@github.com:username/my_package.git
      ref: main
Run Code Online (Sandbox Code Playgroud)

当我flutter pub get在本地计算机上运行时,一切正常,因为我的计算机通过 SSH 对拥有存储库的 GitHub 帐户进行身份验证,但是一旦我尝试从 GitHub Action 运行它,它就会失败并显示以下消息:

git@github.com: Permission denied (publickey)
Run Code Online (Sandbox Code Playgroud)

那么如何正确、安全地让构建机器有权获取存储库呢?

以下是 GitHub 操作工作流程:

git@github.com: Permission denied (publickey)
Run Code Online (Sandbox Code Playgroud)

小智 9

“权限被拒绝”错误意味着服务器拒绝了您的连接。GitHub Actions只能访问它们运行的​​存储库。

有两种方式获取这个私有包:

1- 个人访问令牌

最简单的方法是创建新的个人访问令牌并使用该访问令牌获取库

dependencies:
  flutter:
    sdk: flutter
  private_package:
    git:
      url: https://username:token@github.com/user/repo
      ref: main

Run Code Online (Sandbox Code Playgroud)
  • ref 是分支名称或提交 ID

  • 网址示例:https://Mdkhaki:ghp_LMWzHKnNctxxX9dmP4kxmnwjshRMmJ2MyjF8@github.com/Mdkhaki/private-package.git

2- SSH 代理

因此,为了访问其他私有存储库,您需要创建一个具有足够访问权限的 SSH 密钥。要了解更多信息,请访问

  • 我出于安全目的使用了 SSH 代理,这对他很有用。这个答案应该被接受。 (2认同)