Действие Github не позволяет получить пакет pub из частного репо

#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-ключ с достаточными правами доступа. Чтобы узнать больше, посетите