MINARA
使用 Minara

为 Coding 配置 GitHub 访问

注册并安装 GitHub App,配置 Client ID,再让 Minara 执行 HTTPS Git 和创建 Pull Request

本指南通过仓库范围的 GitHub App 将 Coding 连接到 GitHub。配置完成后, Minara 可以使用授权的 GitHub 账号验证 HTTPS Git 操作并创建 Pull Request。

确认 GitHub remote

确认仓库指向 GitHub:

git remote -v

[email protected]:owner/repo.githttps://github.com/owner/repo.git 均受支持。 Minara 会使用你授权的 GitHub 账号,通过 HTTPS 完成需要身份验证的网络操作, 不会更改 checkout 中配置的 remote。

前置条件

  • 可以在个人账号或组织下创建 GitHub App。
  • 可以把 App 安装到目标仓库。组织可能需要 Owner 审批。
  • 配置开发版时,需要 Minara Agent 的源码检出目录。

1. 注册 GitHub App

  1. 打开 GitHub Settings
  2. 选择 Developer settings
  3. 选择 GitHub Apps
  4. 选择 New GitHub App
  5. 选择目标仓库的所有者。组织仓库优先在该组织下创建 App。

按下表填写注册表单:

设置
GitHub App name唯一名称,例如 Minara Coding
Homepage URL产品、组织或仓库 URL
Callback URL留空。Device Flow 不使用此项
Expire user authorization tokens保持开启
Request user authorization during installation保持关闭
Enable Device Flow开启
Webhook Active关闭
Where can this GitHub App be installed?单一所有者选 Only on this account,跨账号安装选 Any account

Minara Desktop 在本机发起授权,再由用户在浏览器确认,因此使用 Device Flow。

2. 设置仓库权限

Repository permissions 中只配置以下权限:

权限访问级别用途
ContentsRead and write通过 HTTPS 获取和推送 Git 对象
Pull requestsRead and write查找并创建 Pull Request
MetadataRead-only读取仓库身份与元数据

其他仓库、组织和账号权限保持 No access。完成后选择 Create GitHub App

3. 把 App 安装到仓库

  1. 打开新建 GitHub App 的设置页。
  2. 选择 Install App
  3. 选择目标仓库所属的个人账号或组织。
  4. 选择 Only select repositories
  5. 选择允许 Minara 访问的仓库。
  6. 选择 Install。如果页面显示 Request,需要组织 Owner 批准后才能使用。

安装负责授予仓库访问范围。之后在 Minara 登录会授权一个用户通过该安装执行操作。 两步都必须完成。

4. 复制 Client ID

返回 GitHub App 设置页,复制 Client ID。不要复制 App ID。 GitHub App Client ID 通常类似:

Iv1.8a61f9b3a7aba766

Client ID 是公开的应用元数据。Minara 的 Device Flow 不需要 Client Secret, 也不需要 GitHub App private key。

5. 配置 Minara 开发版

在仓库根目录的 .env 中加入 Client ID:

MINARA_GITHUB_APP_CLIENT_ID=Iv1.8a61f9b3a7aba766

把示例值替换为 GitHub 页面中的 Client ID。完全退出并重启 Minara Desktop, 让 Gateway 在启动时注册 provider:

pnpm dev:desktop

正式发行版应随产品提供已配置的公开 Client ID,不应要求每位最终用户单独注册 App。

6. 在 Minara 中连接 GitHub

  1. 打开 Minara Settings
  2. 选择 Git 访问权限
  3. Connect GitHub 下选择 Connect GitHub
  4. Minara 会打开 GitHub 设备授权页,并显示一次性代码。
  5. 输入代码,确认 GitHub 账号,再批准 App。
  6. 返回 Minara。账号应显示 Ready

验证

  1. 确认 GitHub 账号在 Git 访问权限 中显示 Ready
  2. 确认目标 Git remote 通过 SSH 或 HTTPS 指向 github.com
  3. 让 Coding 获取或推送分支。
  4. 创建 Pull Request 时,确认 App 已安装到仓库,并拥有 Pull requests: Read and write

故障排查

现象处理方法
Connect GitHub 不可用设置 MINARA_GITHUB_APP_CLIENT_ID,再完全重启 Desktop
GitHub 提示 Client ID 无效复制 Client ID,不要使用 App ID 或 Client Secret
GitHub 没有显示设备授权页在 GitHub App 注册页开启 Device Flow
授权成功,但仓库返回 403 或 404把 App 安装到该仓库,并完成待处理的组织审批
无法推送Contents 设为 Read and write,再批准权限变更
无法创建 Pull RequestPull requests 设为 Read and write

安全模型

  • Minara 把用户 access token 保存在加密凭证存储中,不写入 SQLite 或对话记录。
  • Device code 会过期,并且只能使用一次。
  • App 只能访问安装时选择的仓库。
  • 用户自身权限和 App 权限会同时生效。
  • 断开 GitHub profile 后,Minara 会删除保存的凭证。

GitHub 官方文档

本页目录