flutter - Github 操作无法从私有(private)仓库中获取 pub 包

标签 flutter dart github-actions

我有一个 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/

相关文章:

flutter - Dart/Flutter 条件命名参数

android - 复选框未勾选

flutter - 为什么Flutter偏向于继承而不是继承?

android - 如何提高 flutter 中文本动画的速度?

flutter - 落在 pdf(EasyWebView) 顶部的窗口对话框 (showDatePicker) 的一部分不起作用,没有反应

ubuntu - Pytest + GDAL : cannot allocate memory in static TLS block

workflow - 确保 Github Actions 中的工作流程仅触发一次

docker - github 工作流程 : "ECONNREFUSED 127.0.0.1:***" error when connecting to docker container

ios - Flutter - 命令 PhaseScriptExecution 失败,退出代码非零

firebase - 如何避免竞争条件?