#flutter #dart #github-actions
Вопрос:
У меня есть проект flutter, который извлекает пакет из частного репозитория на Github, например:
dependencies:
flutter:
sdk: flutter
my_package:
git:
url: git@github.com:username/my_package.git
ref: main
Когда я запускаю flutter pub get
на своем локальном компьютере, все в порядке, так как мой компьютер подключен к GitHub через ssh, но как только я нажимаю на 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
Ответ №1:
Ошибка «Отказано в разрешении» означает, что сервер отклонил ваше соединение. Действия GitHub имеют доступ только к репозиторию, для которого они выполняются.
Есть два способа получить этот частный пакет:
1 — Личные токены доступа
Самый простой способ-создать новый личный токен доступа и получить библиотеку, используя этот токен доступа
dependencies:
flutter:
sdk: flutter
private_package:
git:
url: https://username:token@github.com/user/repo
ref: main
- ссылка-это имя ветви или идентификатор фиксации
- пример URL-адреса : https://Mdkhaki:ghp_LMWzHKnNctxxX9dmP4kxmnwjshRMmJ2MyjF8@github.com/Mdkhaki/private-package.git
2 — SSH-агент
Итак, чтобы получить доступ к дополнительным частным репозиториям, вам необходимо создать SSH-ключ с достаточными правами доступа. Чтобы узнать больше, посетите