新增 shell 自动补全命令 #134

Merged
wbtiger merged 1 commits from Mengz/gitlink-cli:mengz/shell-completion into master 2026-07-14 22:23:08 +08:00
Contributor

新增 gitlink-cli completion [bash|zsh|fish|powershell],让用户安装 CLI 后可以直接生成 Bash、Zsh、Fish、PowerShell 的原生自动补全脚本。这个能力主要补齐跨平台安装体验:GitLink CLI 已经有较多 Shortcut、全局参数和子命令,补全可以降低记忆成本,也方便新用户和 AI Agent 更快发现可用命令。

实现上复用 Cobra 官方补全生成接口,支持 --no-descriptions 输出更精简的脚本,并补齐中英文 i18n、README 中英文安装示例、共享 Skill 使用提示和 doc/changes/shell-completion.md 变更说明。测试覆盖四类 shell 的脚本生成、描述开关以及非法 shell 参数校验,避免后续新增根命令时补全入口失效。

本地已验证:go test ./cmd ./internal/i18n 通过,go run ./internal/i18n/cmd/check --scan-code 通过,go build ./... 通过,排除当前 Windows 环境下认证存储测试对 HOME/USERPROFILE 既有假设不一致的 cmd/authinternal/auth 后其余包 go test 通过;同时检查了新增 diff 中无中文乱码,并用 go run . completion bashgo run . completion powershellgo run . --lang zh-CN completion --help 做了命令级 smoke 验证。

新增 `gitlink-cli completion [bash|zsh|fish|powershell]`,让用户安装 CLI 后可以直接生成 Bash、Zsh、Fish、PowerShell 的原生自动补全脚本。这个能力主要补齐跨平台安装体验:GitLink CLI 已经有较多 Shortcut、全局参数和子命令,补全可以降低记忆成本,也方便新用户和 AI Agent 更快发现可用命令。 实现上复用 Cobra 官方补全生成接口,支持 `--no-descriptions` 输出更精简的脚本,并补齐中英文 i18n、README 中英文安装示例、共享 Skill 使用提示和 `doc/changes/shell-completion.md` 变更说明。测试覆盖四类 shell 的脚本生成、描述开关以及非法 shell 参数校验,避免后续新增根命令时补全入口失效。 本地已验证:`go test ./cmd ./internal/i18n` 通过,`go run ./internal/i18n/cmd/check --scan-code` 通过,`go build ./...` 通过,排除当前 Windows 环境下认证存储测试对 HOME/USERPROFILE 既有假设不一致的 `cmd/auth` 与 `internal/auth` 后其余包 `go test` 通过;同时检查了新增 diff 中无中文乱码,并用 `go run . completion bash`、`go run . completion powershell`、`go run . --lang zh-CN completion --help` 做了命令级 smoke 验证。
Mengz force-pushed mengz/shell-completion from d94babcaed to 813c67f47e 2026-06-09 11:24:11 +08:00 Compare
Mengz force-pushed mengz/shell-completion from 813c67f47e to 7433401e8d 2026-06-22 12:51:46 +08:00 Compare
Mengz force-pushed mengz/shell-completion from 7433401e8d to 5c16a4a70e 2026-07-07 14:52:38 +08:00 Compare
wbtiger merged commit 7ef01a97c1 into master 2026-07-14 22:23:08 +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#134
No description provided.