用途:在不将仓库公开的前提下,为外部客户或承包商开通私有 GitHub 仓库访问权限,并支持撤销与审计协作者。
主要能力:提供 grant(授予)、revoke(撤销)、list(列出)三种模式。grant 支持混合传入 GitHub 用户名和邮箱,默认权限为 pull(只读),可选 triage、push,maintain/admin 需明确坚持才允许。revoke 删除协作者,list 列出活跃协作者与待处理邀请。
使用方式:需先通过 gh auth status 确认已认证,token 需具备 repo 权限,组织仓库还需 admin:org 权限。先收集目标仓库、子命令、标识符列表和权限级别,再将标识符解析为用户名并展示解析表,确认后执行。授予使用 gh api -X PUT "repos/<owner>/<repo>/collaborators/<login>" -f permission=<级别>;撤销使用 gh api -X DELETE "repos/<owner>/<repo>/collaborators/<login>";列出使用 gh api "repos/<owner>/<repo>/collaborators?affiliation=all" --jq '.[] | {login, permissions}' --paginate,并查询 invitations。
适用场景:私有仓库向外部人员开放只读或协作权限,批量处理混合用户名与邮箱列表,审计现有协作者和待处理邀请。
限制:邮箱邀请仅对组织仓库有效,个人仓库无解析用户名时需向对方索取 GitHub 用户名;用户名不存在或邮箱无对应账号会被跳过;撤销操作对接收方可见,执行前需最终确认;权限提升需明确请求,不会静默升级。