为 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.git 和 https://github.com/owner/repo.git 均受支持。
Minara 会使用你授权的 GitHub 账号,通过 HTTPS 完成需要身份验证的网络操作,
不会更改 checkout 中配置的 remote。
前置条件
- 可以在个人账号或组织下创建 GitHub App。
- 可以把 App 安装到目标仓库。组织可能需要 Owner 审批。
- 配置开发版时,需要 Minara Agent 的源码检出目录。
1. 注册 GitHub App
- 打开 GitHub Settings。
- 选择 Developer settings。
- 选择 GitHub Apps。
- 选择 New GitHub App。
- 选择目标仓库的所有者。组织仓库优先在该组织下创建 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 中只配置以下权限:
| 权限 | 访问级别 | 用途 |
|---|---|---|
| Contents | Read and write | 通过 HTTPS 获取和推送 Git 对象 |
| Pull requests | Read and write | 查找并创建 Pull Request |
| Metadata | Read-only | 读取仓库身份与元数据 |
其他仓库、组织和账号权限保持 No access。完成后选择 Create GitHub App。
3. 把 App 安装到仓库
- 打开新建 GitHub App 的设置页。
- 选择 Install App。
- 选择目标仓库所属的个人账号或组织。
- 选择 Only select repositories。
- 选择允许 Minara 访问的仓库。
- 选择 Install。如果页面显示 Request,需要组织 Owner 批准后才能使用。
安装负责授予仓库访问范围。之后在 Minara 登录会授权一个用户通过该安装执行操作。 两步都必须完成。
4. 复制 Client ID
返回 GitHub App 设置页,复制 Client ID。不要复制 App ID。 GitHub App Client ID 通常类似:
Iv1.8a61f9b3a7aba766Client 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
- 打开 Minara Settings。
- 选择 Git 访问权限。
- 在 Connect GitHub 下选择 Connect GitHub。
- Minara 会打开 GitHub 设备授权页,并显示一次性代码。
- 输入代码,确认 GitHub 账号,再批准 App。
- 返回 Minara。账号应显示 Ready。
验证
- 确认 GitHub 账号在 Git 访问权限 中显示 Ready。
- 确认目标 Git remote 通过 SSH 或 HTTPS 指向
github.com。 - 让 Coding 获取或推送分支。
- 创建 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 Request | 把 Pull requests 设为 Read and write |
安全模型
- Minara 把用户 access token 保存在加密凭证存储中,不写入 SQLite 或对话记录。
- Device code 会过期,并且只能使用一次。
- App 只能访问安装时选择的仓库。
- 用户自身权限和 App 权限会同时生效。
- 断开 GitHub profile 后,Minara 会删除保存的凭证。