Skip to content

Latest commit

 

History

History
118 lines (94 loc) · 21.3 KB

File metadata and controls

118 lines (94 loc) · 21.3 KB

OpenAPI 覆盖与责任清单

本清单记录 CLI 已实现的范围与已知缺口,不是 AtomGit 全部端点目录,也不是服务端兼容性认证。基线为 2026-09-20 的 main(c514720);后续修改必须随代码更新对应行。命令参数见生成的命令参考,使用示例见使用指南,测试机制见API 契约测试。三者不能互相替代。

状态、责任与证据

  • implemented:本行列出的范围已在代码中注册/实现,不表示整个 OpenAPI 模块完整覆盖。
  • partial:有可用实现,但仍有本页列明的缺口。
  • missing:已知需求尚无合入实现;开放 PR 不算完成。
  • deferred:有意暂不实现,必须说明原因及重新评估条件。
  • unverified:接口契约/授权范围未核实,不据此猜测端点或承诺命令。
  • project:本项目维护;partner:AtomGit 合作方负责的模块,未经明确移交不自动加入本项目待办。责任归属与已有代码维护分开:合作方模块中的既有 CLI 能力仍由本项目维护。

验证标记不是逐级自动升级的认证:

  • source:核对命令注册、实现和仓库文档;不等同于核对每个官方接口。
  • mock:有离线模拟 HTTP/注入依赖测试证据;不代表每个参数和权限组合均已覆盖。
  • local:本地行为有离线测试,不涉及 AtomGit API。
  • docs:仅核对官方文档,尚无实现或运行证据。
  • live:仅在附有日期、提交、端点/只读场景、脱敏结果及可访问记录时使用。一次成功不能推广到整个模块。

本次清单不执行真实 API 验收,下面各行的在线验证均为未记录,不把历史 PR 的测试声明升级为当前在线结果。license 只有命令结构测试,特别不标为 HTTP mock 验证。维护者若补充在线证据,不得写入凭据、真实响应或私有资源名。

官方 OpenAPI 目录 用于模块分类(2026-09-17 核对):Repositories、Branch、Issues、Search、Pull Requests、Commit、Tag、Labels、Milestone、Users、Organizations、Webhooks、Member、Release、Enterprise、Dashboard、Actions、Discussion、OAuth、AI Hub。下面路径为从代码核对的端点家族示意,省略 API 基址和部分参数,不应直接当作请求模板。未知或未覆盖模块不计入覆盖率分母;本项目不发布误导性的“百分之百覆盖”数字。

已注册命令族

本表是人工维护的唯一清单源。每个根命令恰好一行,包括隐藏兼容命令;隐式帮助/自动补全和别名不作为独立 API 能力。八列顺序固定,单元格内不用竖线。离线测试会检查字段、重复/遗漏根命令及本页仓库相对链接,但不会自动证明端点语义正确。

API v5

命令族 协议 API 家族与已实现范围 状态 责任 验证 代码/测试证据 关联工作与边界
doctor local,v5,v8 配置、凭据和可选只读连通性检查 implemented project source,mock 命令与测试 #131;不含逐请求 debug 跟踪、自动修复或写权限验证
schema local 基于 Cobra 命令树的版本化 JSON 命令说明 implemented project source,mock 命令与测试、元数据 #151;不执行目标命令;未描述的业务规则、响应结构和权限明确标记
api v5 通用 v5 请求、JSON、分页;没有 v8 版本选项 implemented project source,mock 实现与测试 #28;不能用它代替 v8 专用客户端
repo v5 Repositories:元数据、clone/fork/sync、collaborators、hooks、contents、push_rule、remote_mirrors、transfer、六项 insights、policy 的 permission/code-review/pull-request 查看与编辑 implemented project source,mock 命令与测试、policy API #89、#90、#117、#118、#119;仅列明范围,不代表全部仓库 API
branch v5 Branch:/repos/{owner}/{repo}/branches 及保护规则;列表、详情、创建、删除、保护设置 implemented project source,mock 命令与测试 #109、#111;仅列明能力
commit v5 Commit:提交列表/详情、compare、diff、patch,以及评论列表/详情/创建/编辑/删除 implemented project source,mock 命令与测试、评论命令与测试、API #84、#91、#113
issue v5 Issues:CRUD、标签、评论、关联 PR、related_branches、activity/history/reactions;包含 /repos/{owner}/issues/{number} 路径 implemented project source,mock 命令与测试、API #86;活动和历史限制为本地截断,表态按页获取;仅列明范围
tag v5 Tag:仓库 tags 创建/列举/删除与保护规则 implemented project source,mock 命令与测试 #76、#103
label v5 Labels:仓库标签列表、创建、编辑、删除 implemented project source,mock 命令与测试 #26
milestone v5 Milestone:列表、详情、创建、编辑、关闭、重开、删除 implemented project source,mock 命令与测试 #67
notification v5 /repos/{owner}/{repo}/notifications:仓库通知列表、标记已读 implemented project source,mock 命令与测试、API #92;不是全站消息中心
release v5 Release:列举/详情/创建/编辑,附件上传、下载;含独立附件传输 implemented project source,mock 命令与测试、附件 API #32;不代表签名/SBOM 已发布
org v5,v8 Organizations/Member v5:/users/orgs、/orgs/{org}、members、repos;Actions v8:组织 runner-group 的列表/详情及 runners、runner-sets、shared-namespaces,只读发现 partial project source,mock 命令与测试、v8 API #75、#116;不含 runner-group 写操作
user v5 Users:/user、/users/{name}、/emails、namespaces、starred/subscriptions、events;显式字段更新个人资料 implemented project source,mock 命令与测试 #80、PR #275 已合入;不是账号管理全覆盖
search v5 Search:/search/repositories、users、issues implemented project source,mock 命令与测试 #31
discussion v5 Discussion:/repos/{owner}/{repo}/discuss,列表/详情、评论与回复读取 partial project source,mock 命令与测试、API #71、#72;没有专用写命令
ssh-key v5 Users SSH keys:认证用户 SSH 公钥添加、列举与删除 implemented project source,mock 命令与测试 #27;不代表所有 SSH key 端点已覆盖
kanban v5 Dashboard:/org/{org}/kanban/list、detail、item_list;仅组织看板只读发现 partial partner source,mock 命令与测试、API #87 已实现部分由本项目维护;完整模块/写操作由合作方负责

API v8 与跨版本命令

命令族 协议 API 家族与已实现范围 状态 责任 验证 代码/测试证据 关联工作与边界
pr v5,v8 Pull Requests v5:CRUD、merge/review、diff/files/commits、评论/回复、协作元数据、关联 Issue、activity/history/reactions;checks 经 Actions v8,checkout 调用本地 Git partial project source,mock 命令与测试、v5 API、v8 API #93;activity、reactions 分页,history 本地截断;正式 review 仅批准
run v8 Actions:runs、jobs、logs/download_log、artifacts 元数据/下载/删除 implemented project source,mock 命令与测试、API 与测试 #110、#112、#114
workflow v8 Actions:workflows 列举、dispatches、validate(调用远端校验,不是纯本地 YAML 检查) implemented project source,mock 命令与测试、API #68、#88
runner v8 Actions:仓库 actions/runners 与 shared-runners,只读列举 partial project source,mock 命令与测试、API #115、PR #222;不是组织 runner-group 管理

OAuth、外部服务与本地行为

命令族 协议 API 家族与已实现范围 状态 责任 验证 代码/测试证据 关联工作与边界
auth oauth,v5,local OAuth 登录/刷新、token 用户验证;账号/凭据存储、切换、status/token、setup-git 与隐藏 git-credential implemented project source,mock 命令与测试、OAuth、配置 #59、#97、PR #260
browse v5,local 构造浏览器 URL;按需通过 v5 解析仓库默认分支或 Issue/PR 编号 implemented project source,mock 命令与测试 #29、#108;不能因打开 Actions 页面而计为 v8 调用
license external openEuler compliance /check;不属于 AtomGit OpenAPI implemented project source 实现、结构测试 外部服务响应尚无本清单可引用的 HTTP mock/在线验证
update v5,external,local AtomGit Release 版本检查;按安装来源处理 npm/Homebrew 更新与本地制品验证 implemented project source,mock 实现与注入测试 #53、PR #230;不是通用包管理 API
check-update v5,external,local 已弃用的兼容入口:只检查更新,复用 update 的版本发现逻辑 implemented project source,mock 实现与测试 #70;兼容命令不重复计算 API 覆盖
alias local 本地 ag JSON 配置中的内置 ag 命令别名;不支持 shell 别名,不使用 Git config implemented project source,local 命令与测试、存储、存储测试 PR #130;无 AtomGit API
version local 显示 Version/Commit/BuildDate 与 Go 构建信息回退 implemented project source,local 命令与测试、元数据 #61;无 AtomGit API

已知缺口、合作方模块与不支持项

此表是范围索引,不另造与现有 Issue 重复的任务。docs 只表示存在文档入口/需求依据;具体字段、分页、权限仍须实现前确认。没有命令的条目不纳入上面的注册命令表。

API/模块 状态 责任 未交付范围/重新评估条件 验证与跟踪
v5 Commit comments implemented project 专用 list/view/create/edit/delete 已合入;支持文件/stdin 正文和 JSON 输出 source,mock;命令与测试、#113、PR #276
v5 Issue activity/history/reactions implemented project branches 及三项只读查询已实现;activity/history 无文档化分页参数,reactions 支持分页;未做在线验收 source,mock;#86
v5 PR activity/history/reactions implemented project 三项只读查询已实现:activity、reactions 支持分页,history 无文档化分页参数按本地截断;reactions 字段按真实响应核对(字符串 id、emoji/emoji_name);未做在线验收 source,mock;#93
Enterprise deferred partner 企业模块不作为本地 backlog;合作方与项目明确移交后再拆任务,具体版本/端点未逐一核实 docs(仅官方目录);#124,无在线证据
Dashboard/Kanban 完整模块 partial partner 本地已有 v5 只读 list/view/items;更广覆盖、写操作待合作方推进或明确移交 source,mock(仅已有只读部分);#87、#124
AI Hub deferred partner 不把目录中的模块名称当作已支持端点;明确移交并验证契约后再立项 docs(仅官方目录);#124,具体契约未验证
PR request-changes / 正式拒绝审查 unverified project 当前正式 review 只支持 approve;未确认公开 API 契约前不模拟服务端审查状态 source;review 实现,不猜测未文档化端点
通用 ag api 的 v8 访问 deferred project 当前固定 v5;如新增版本选择,须单独明确认证、路径和状态码策略 source,mock;API 命令,v8 现经专用 Actions 命令访问
Discussion 专用写命令 deferred project 当前范围仅 list/view;待单独确定写入流程和安全交互,不因通用 v5 请求可用而标为专用命令已实现 source;#72

Issues #113–#122 对账

状态描述的是基线代码,不依赖 Issue 是否自动关闭;下列链接指向唯一任务,避免重复规划。

Issue 基线交付状态 代码/PR 证据及剩余边界
#113 implemented Commit 评论命令与测试、PR #276;已实现 list/view/create/edit/delete
#114 implemented artifact 命令,PR #219;v8 删除/确认
#115 implemented runner 测试,PR #222;只读仓库/共享 runner
#116 implemented 组织 runner-group 命令与测试、v8 客户端;只读 list/detail/runners/runner-sets/shared-namespaces,不被 #115 覆盖
#117 implemented fork API 与分页,PR #221
#118 implemented mirror API,PR #231;只读,不含写管理
#119 implemented transfer API,PR #229
#120 implemented 共享错误处理,PR #232;v5/v8 已共用脱敏,不标作待实现
#121 implemented Factory context,PR #233;取消与元数据超时
#122 partial 已有部分 domain helpers 与 Factory,统一认证/路径边界、参考命令迁移和规范仍待完成

如何更新与验证

  1. 新增/删除/重命名根命令或新增子命令、API 家族、字段行为时,同一 PR 更新本清单的范围、状态、证据与任务链接。根命令必须一行且唯一;子命令变更须人工检查对应家族范围,并同步命令参考。
  2. OpenAPI 文档变化或契约测试失败时,先确定受影响家族,再修正状态与证据;仅修改 fixture 不能证明接口已兼容。契约样例和在线 smoke 的维护遵循契约文档。
  3. 责任转移必须链接明确的 Issue/Discussion 决定,写清模块/只读或写入边界与接收方;不得仅因已有少数命令就将合作方整个模块改为 project。
  4. 合入关联 PR 后更新 missing/partial;关闭或放弃 PR 不等于已实现。保留历史任务链接,不复制新 Issue。
  5. 新增 live 证据需注明验证日期、commit、端点/操作范围及脱敏记录链接;其他场景仍未验证。没有证据的能力使用 unverified/deferred,不据接口名称猜测。
  6. 运行 go test ./pkg/cmd/root -run TestOpenAPICoverage -count=1 检查清单,再运行 go test ./... 和 make docs-reference-check。该检查自动进入已有 Go 测试/CI,不新建 workflow。外部网页及邮件服务可达性不由离线测试保证。

仓库文档、代码、测试之间一律使用相对链接,保证 AtomGit 与 GitHub mirror 的文件导航一致。GitHub mirror 不承载本项目的 Issue/PR 协作;活跃的 Issue/PR 记录仅在 AtomGit 上维护,因此相关链接使用完整 AtomGit URL。此文件是人工清单,不运行生成器覆盖它。