REAL WORKSPACE · CONNECTION 06

连接 GitHub / GitLab

让 Agent 读取 Issue、创建分支和 PR / MR,并在最小权限下形成可审查的协作闭环。

GitHub CLIGitLab CLIFine-grained TokenPR / MR
01

先选一条正确的连接路线

不要一次开放所有能力。先选择最小可用入口,验证价值后再升级。

服务端

GitHub App / GitLab Token

持续运行的 Agent 应使用独立应用身份、短周期凭证和明确的仓库范围。

事件驱动

Webhook + API

让 Issue、PR/MR、Pipeline 事件进入你的服务,再按规则触发 Agent 分析或生成评论草稿。

02

按这六步完成第一次接入

把身份、权限、工具边界和验收一起配置,而不是只追求“接口能通”。

  1. 01
    建立测试仓库

    复制一个不含敏感数据的仓库,准备 Issue、保护分支和最小 CI。

  2. 02
    选择身份类型

    个人开发机使用官方 CLI;团队服务使用 App、Bot 或专用服务账号,不共用个人 Token。

  3. 03
    缩小仓库范围

    仅授权指定仓库或项目。Token 只给 read_repository、api 中实际需要的部分,并设置到期时间。

  4. 04
    登录并验证

    分别运行 gh auth status 或 glab auth status,确认 Host、用户与协议正确。

  5. 05
    封装协作动作

    拆分为读 Issue、建分支、开 PR/MR、读检查结果、写评论草稿等工具。

  6. 06
    启用服务端保护

    主分支启用评审、状态检查、禁止强推与合并策略;Agent 不可绕过保护。

03

配置示例

字段和值都是示例占位符,请按你使用的 Agent、平台和密钥管理方式调整。

terminal · CLI 登录示例 · 不含真实密钥
# GitHub
gh auth login
gh auth status
gh repo view OWNER/REPO

# GitLab / self-managed GitLab
glab auth login --hostname gitlab.example.com
glab auth status
glab repo view GROUP/PROJECT

不要把 Token 直接写在 shell 历史、Git remote URL 或仓库文件中。企业 GitLab 请确认 hostname 与实例证书。

04

最小权限建议

把读取、草稿和高影响动作分开,避免一个 Token 同时拥有全部能力。

动作默认等级建议边界
读仓库 / Issue / MR 只读 先开放读取元数据、Diff 与检查结果。
创建分支 / PR / MR 草稿 允许生成 Draft PR/MR,标题与描述必须关联任务。
评论 / 指派 / 标签 确认 对外可见或改变协作状态的动作先预览。
合并 / 关闭 / 删除分支 确认 必须满足评审和 CI,并由人确认目标分支。
05

上线前验收

不要只测成功路径;撤销权限、重复执行和失败回退同样重要。

  • CLI 显示的登录用户和目标 Host 正确。
  • Token 只对测试仓库或指定 Group 生效。
  • Agent 创建的是 Draft PR/MR,且包含摘要、测试和风险。
  • 未通过 CI 或缺少评审时无法合并。
FIRST SAFE PROMPT 读取测试 Issue,创建任务分支和 Draft MR;不要合并,只返回 MR 链接、Diff 摘要和检查状态。
!
不要给个人 Token 全局 api 权限

GitLab 的 api Scope 或经典 GitHub Token 往往覆盖很广。优先使用项目范围、细粒度 Token、App 身份和到期时间,并定期审计最后使用时间。

06

继续查看官方文档

平台界面和权限名称会更新,实际接入时以官方文档和企业管理员策略为准。