新增 CLI 自诊断命令 #132

Merged
wbtiger merged 1 commits from Mengz/gitlink-cli:mengz/doctor-command into master 2026-06-08 02:19:54 +08:00
Contributor

新增 gitlink-cli doctor 自诊断命令,用来在用户遇到认证失败、配置异常、仓库上下文识别失败或 API 连通性问题时快速定位原因。这个能力补齐了 CLI 故障排查入口,尤其适合新用户、CI 环境和 Agent 自动化场景,不需要先猜测是 Token、配置文件还是当前目录的问题。

实现上新增独立 cmd/doctor 包,按统一 envelope 输出结构化诊断报告,覆盖配置文件存在性与 YAML 解析、base_urldefault_format 合法性、本地 Token 或 GITLINK_TOKEN 检测、GitLink 仓库上下文解析,以及认证 API 可用性检查。每个检查项都会给出状态、说明、细节和可执行修复建议;同时提供 --skip-network,方便离线环境或 CI 只做本地检查。命令已注册到根命令,并补充中英文 i18n、README 使用示例和 doc/changes/doctor-command.md 变更说明。

本地验证已完成:go test ./cmd/doctor ./cmd ./internal/i18n 通过,go build ./... 通过,git diff --check 通过,go run . --lang zh-CN doctor --help 可正常显示中文帮助,go run . doctor --skip-network --format json 可输出结构化诊断结果,并已做 UTF-8/乱码扫描。全量 go test ./... 中除既有 Windows Credential Manager/Home 路径相关的 cmd/authinternal/auth 测试失败外,其余包通过,本次新增命令不依赖这些失败用例。

新增 `gitlink-cli doctor` 自诊断命令,用来在用户遇到认证失败、配置异常、仓库上下文识别失败或 API 连通性问题时快速定位原因。这个能力补齐了 CLI 故障排查入口,尤其适合新用户、CI 环境和 Agent 自动化场景,不需要先猜测是 Token、配置文件还是当前目录的问题。 实现上新增独立 `cmd/doctor` 包,按统一 envelope 输出结构化诊断报告,覆盖配置文件存在性与 YAML 解析、`base_url` 和 `default_format` 合法性、本地 Token 或 `GITLINK_TOKEN` 检测、GitLink 仓库上下文解析,以及认证 API 可用性检查。每个检查项都会给出状态、说明、细节和可执行修复建议;同时提供 `--skip-network`,方便离线环境或 CI 只做本地检查。命令已注册到根命令,并补充中英文 i18n、README 使用示例和 `doc/changes/doctor-command.md` 变更说明。 本地验证已完成:`go test ./cmd/doctor ./cmd ./internal/i18n` 通过,`go build ./...` 通过,`git diff --check` 通过,`go run . --lang zh-CN doctor --help` 可正常显示中文帮助,`go run . doctor --skip-network --format json` 可输出结构化诊断结果,并已做 UTF-8/乱码扫描。全量 `go test ./...` 中除既有 Windows Credential Manager/Home 路径相关的 `cmd/auth` 与 `internal/auth` 测试失败外,其余包通过,本次新增命令不依赖这些失败用例。
Mengz added 1 commit 2026-06-06 18:12:03 +08:00
wbtiger merged commit 7e863398aa into master 2026-06-08 02:19:54 +08:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Gitlink/gitlink-cli#132
No description provided.