我有一个 flutter 项目,它从 Github 上的私有(private)仓库中获取一个包,例如:
dependencies:
flutter:
sdk: flutter
my_package:
git:
url: git@github.com:username/my_package.git
ref: main
当我在本地计算机上运行 flutter pub get
时,一切正常,因为我的计算机通过 ssh 连接到 GitHub,但是一旦我在 GitHub 上推送,我的 GitHub 操作就失败了使用消息 git@github.com: Permission denied (publickey)
获取包。我明白了错误信息,我想知道是否有更好的方法来执行此操作并通过操作。
这是 GitHub 操作脚本:
name: Flutter
on: [pull_request, push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v1.5.0
- name: Install Dependencies
run: flutter packages get
- name: Format
run: flutter format --set-exit-if-changed lib test
- name: Analyze
run: flutter analyze lib test
- name: Run tests
run: flutter test --no-pub --coverage --test-randomize-ordering-seed random
最佳答案
“权限被拒绝”错误意味着服务器拒绝了您的连接。 GitHub Actions 只能访问他们运行的存储库。
有两种方法可以获取这个私有(private)包:
1-个人访问 token
最简单的方法是创建新的个人访问 token 并使用该访问 token 获取库
dependencies:
flutter:
sdk: flutter
private_package:
git:
url: https://username:token@github.com/user/repo
ref: main
ref 是分支名称或提交 id
网址示例:https://Mdkhaki:ghp_LMWzHKnNctxxX9dmP4kxmnwjshRMmJ2MyjF8@github.com/Mdkhaki/private-package.git
2- SSH 代理
因此,为了访问额外的私有(private)存储库,您需要创建一个具有足够访问权限的 SSH key 。了解更多visit
关于flutter - Github 操作无法从私有(private)仓库中获取 pub 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68995248/