fix(dataset): guard unavailable backend endpoints #248

Closed
wangyue111 wants to merge 1 commits from wangyue111/gitlink-cli:fix/dataset-backend-guard into master
Contributor

背景

修复 / 响应 Issue #21:PR #243 合入后,dataset Shortcut 中有 4 个仓库级数据集端点依赖后端支持,但当前生产环境只部署了 GET /api/v1/project_datasets。仓库级接口目前会返回 404:

  • GET /api/v1/{owner}/{repo}/dataset
  • POST /api/v1/{owner}/{repo}/dataset
  • PUT /api/v1/{owner}/{repo}/dataset
  • DELETE /api/attachments/{uuid}

如果 CLI 继续直接调用这些端点,用户和 Agent 会反复遇到已知 404。

修复内容

  • 保留已验证可用的 dataset +list --ids ...
  • dataset +view 新增 --dry-run,可预览请求路径和分页参数。
  • dataset +view 非 dry-run 时不再调用生产 404 端点,而是返回明确的 Issue #21 guard 错误。
  • dataset +create / dataset +update 保留 --dry-run 请求体预览;非 dry-run 时返回 guard 错误。
  • dataset +delete-attachment 保留 --dry-run--yes 校验;确认后仍返回 guard 错误,不调用未部署删除端点。
  • 更新 README / README.zh-CN,明确当前生产可用范围。
  • 新增 skills/gitlink-dataset/SKILL.md,避免 Agent 调用未部署后端。
  • 新增 doc/changes/dataset-backend-guard.md

设计取舍

这不是删除 dataset 功能,而是在后端 Issue #21 解决前做 CLI 侧保护:

  • 已可用的 dataset +list 继续可用。
  • 未部署端点仍可通过 --dry-run 保留请求契约和演示能力。
  • 避免真实执行时命中已知 404,提升用户体验和 Agent 安全性。

测试

git diff --check
GOPROXY=https://goproxy.cn,direct go test ./shortcuts/dataset ./shortcuts
go vet ./shortcuts/dataset ./shortcuts
go run . dataset +view --owner Gitlink --repo forgeplus --dry-run --format json
go run . dataset +create --owner Gitlink --repo forgeplus -t demo -d demo --dry-run --format json
GOPROXY=https://goproxy.cn,direct go test ./...
go vet ./...

关联

Fixes #21

## 背景 修复 / 响应 Issue #21:PR #243 合入后,`dataset` Shortcut 中有 4 个仓库级数据集端点依赖后端支持,但当前生产环境只部署了 `GET /api/v1/project_datasets`。仓库级接口目前会返回 404: - `GET /api/v1/{owner}/{repo}/dataset` - `POST /api/v1/{owner}/{repo}/dataset` - `PUT /api/v1/{owner}/{repo}/dataset` - `DELETE /api/attachments/{uuid}` 如果 CLI 继续直接调用这些端点,用户和 Agent 会反复遇到已知 404。 ## 修复内容 - 保留已验证可用的 `dataset +list --ids ...`。 - `dataset +view` 新增 `--dry-run`,可预览请求路径和分页参数。 - `dataset +view` 非 dry-run 时不再调用生产 404 端点,而是返回明确的 Issue #21 guard 错误。 - `dataset +create` / `dataset +update` 保留 `--dry-run` 请求体预览;非 dry-run 时返回 guard 错误。 - `dataset +delete-attachment` 保留 `--dry-run` 和 `--yes` 校验;确认后仍返回 guard 错误,不调用未部署删除端点。 - 更新 README / README.zh-CN,明确当前生产可用范围。 - 新增 `skills/gitlink-dataset/SKILL.md`,避免 Agent 调用未部署后端。 - 新增 `doc/changes/dataset-backend-guard.md`。 ## 设计取舍 这不是删除 dataset 功能,而是在后端 Issue #21 解决前做 CLI 侧保护: - 已可用的 `dataset +list` 继续可用。 - 未部署端点仍可通过 `--dry-run` 保留请求契约和演示能力。 - 避免真实执行时命中已知 404,提升用户体验和 Agent 安全性。 ## 测试 ```bash git diff --check GOPROXY=https://goproxy.cn,direct go test ./shortcuts/dataset ./shortcuts go vet ./shortcuts/dataset ./shortcuts go run . dataset +view --owner Gitlink --repo forgeplus --dry-run --format json go run . dataset +create --owner Gitlink --repo forgeplus -t demo -d demo --dry-run --format json GOPROXY=https://goproxy.cn,direct go test ./... go vet ./... ``` ## 关联 Fixes #21
wangyue111 added 1 commit 2026-06-14 22:54:51 +08:00
wbtiger closed this pull request 2026-06-16 01:04:31 +08:00

Pull request closed

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#248
No description provided.