新增 Raw API 批处理执行器 #124

Merged
wbtiger merged 1 commits from Mengz/gitlink-cli:mengz/api-batch-runner into master 2026-06-08 02:24:15 +08:00
Contributor

本次 PR 为 Raw API 增加批处理执行能力,让还没有封装成 shortcut 的 GitLink OpenAPI 也能被组织成可复用、可审计的自动化流程。新增 api --batch-file 读取 JSON 计划文件,计划中可以定义 vars 模板变量,并在 name、path、query、body 字符串中使用 {{变量名}};执行时可通过 --var key=value 覆盖变量,方便同一套计划复用到不同仓库、Issue、分支或用户。

实现中把批处理逻辑独立放在 cmd/api/batch.go,保持原有 api METHOD PATH 单次请求行为不变。批处理支持 --dry-run 预览渲染后的请求而不访问远端,默认遇到失败停止,传入 --continue-on-error 后继续执行后续步骤,并输出每一步的成功/失败、响应数据和总数汇总。为了降低误操作风险,批处理模式禁止和单次请求的 --body、--body-file、--body-stdin、--query、--header 混用。

本次同步补充了中英文帮助文案、README 示例、gitlink-shared skill reference 和独立变更说明。已验证:go test ./cmd/api ./cmd ./internal/i18n 通过;go test ./shortcuts/... 通过;go build ./... 通过;git diff --check 通过;中文帮助 go run . --lang zh-CN api --help 显示正常;实际 dry-run 样例输出正常且不访问远端。全量 go test ./... 仍只在既有 Windows 凭据路径相关测试 cmd/auth、internal/auth 上失败,和本次 API 批处理改动无关。

本次 PR 为 Raw API 增加批处理执行能力,让还没有封装成 shortcut 的 GitLink OpenAPI 也能被组织成可复用、可审计的自动化流程。新增 api --batch-file 读取 JSON 计划文件,计划中可以定义 vars 模板变量,并在 name、path、query、body 字符串中使用 {{变量名}};执行时可通过 --var key=value 覆盖变量,方便同一套计划复用到不同仓库、Issue、分支或用户。 实现中把批处理逻辑独立放在 cmd/api/batch.go,保持原有 api METHOD PATH 单次请求行为不变。批处理支持 --dry-run 预览渲染后的请求而不访问远端,默认遇到失败停止,传入 --continue-on-error 后继续执行后续步骤,并输出每一步的成功/失败、响应数据和总数汇总。为了降低误操作风险,批处理模式禁止和单次请求的 --body、--body-file、--body-stdin、--query、--header 混用。 本次同步补充了中英文帮助文案、README 示例、gitlink-shared skill reference 和独立变更说明。已验证:go test ./cmd/api ./cmd ./internal/i18n 通过;go test ./shortcuts/... 通过;go build ./... 通过;git diff --check 通过;中文帮助 go run . --lang zh-CN api --help 显示正常;实际 dry-run 样例输出正常且不访问远端。全量 go test ./... 仍只在既有 Windows 凭据路径相关测试 cmd/auth、internal/auth 上失败,和本次 API 批处理改动无关。
Mengz added 1 commit 2026-06-06 11:55:35 +08:00
wbtiger merged commit 723e698db4 into master 2026-06-08 02:24:15 +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#124
No description provided.