已关闭
bug: issue list date filters return 400 on GitCode API #104
aflyingto创建于  4月2日关闭于  4月3日
aflyingto成员
4月2日 创建

背景

当前 gc issue list 支持以下日期过滤参数:

  • --created-after
  • --created-before
  • --updated-after
  • --updated-before
  • --since

但在远端 gitcode-cli/cli 仓库上实际调用时,日期过滤会直接返回 GitCode API 400 Bad Request。

复现

在仓库根目录执行:

gc issue list -R gitcode-cli/cli --state closed --created-after "2026-03-31" --sort created --direction asc -L 50
gc issue list -R gitcode-cli/cli --state closed --updated-after "2026-03-31" --sort updated --direction asc -L 50

当前结果:

Error: failed to list issues: API error: 400 Bad Request

预期

  • CLI 能正确把日期过滤参数映射到 GitCode API 可接受的格式
  • 或者在 GitCode API 不支持时,CLI 明确拦截并给出可诊断错误,而不是直接透传 400

影响

  • 无法按时间范围枚举最近实现的 issue
  • 影响自动化回归、issue 审计和 agent 工作流

建议

  • 先确认 GitCode API 对时间过滤字段和时间格式的真实约束
  • 为 issue list 补一组基于真实 API 契约的测试
  • 同步更新 --help / docs/COMMANDS.md 中的格式说明
likedislike
Aaflyingto成员
4月3日 关联了里程碑:v0.5.0
aflyingto成员
4月3日 评论:

Team agent 交付策略

  • 当前已纳入里程碑: v0.5.0
  • 执行模式: Coordinator -> Verifier -> Implementer -> Reviewer
  • 当前批次目标: 与 v0.5.0 的一致性收口一起推进

建议推进顺序:

  1. 先完成远端事实核验与复现记录,进入 status/verified
  2. 在非 main 分支修复实现并补测试
  3. 完成 go test ./...、go build -o ./gc ./cmd/gc,并补至少一个真实命令验证
  4. 补作者自检、风险分级和独立评审后再进入 ready-for-review

说明:

  • 本 issue 归入 v0.5.0 批次交付
  • 若修复依赖上游 API 真实约束,需先补结构化验证记录,再决定是修实现还是收口文档
likedislike
Aaflyingto成员
4月3日 关联了pull request:[WIP]fix: close open issue backlog batch
aflyingto成员
4月3日 评论:

验证记录

  • 当前版本或分支: bugfix/issue-110 / PR #92
  • 验证时间: 2026-04-03
  • 复现命令: ./gc issue list -R gitcode-cli/cli --state closed --created-after 2026-03-31 --sort created --direction asc -L 5 --json
  • 实际结果: 问题已复现并已在当前变更中处理
  • 预期结果: 行为与 issue 描述一致收口,并具备最小测试/回归证据
  • 时间线检查: 当前改动尚未合入 main,以 PR #92 进入评审为准
  • 结论: 继续修复,进入 ready-for-review

开发进度

  • 当前状态: ready-for-review
  • 根因: issue list 日期过滤示例使用日期字符串,但 API 实际要求 ISO 8601;当前实现已在命令层做规范化
  • 主要修改: 规范化 --since / --created-after / --created-before / --updated-after / --updated-before 输入,并补测试与文档
  • 影响范围: 命令行为、测试与文档/回归脚本
  • 单元测试: go test ./...
  • 构建: go build -o ./gc ./cmd/gc
  • 实际命令验证: ./gc issue list -R gitcode-cli/cli --state closed --created-after 2026-03-31 --sort created --direction asc -L 5 --json;并执行 ./scripts/regression-core.sh
  • 安全影响: 已补最小安全审查;涉及认证、确认语义或凭证路径的项按 risk/medium 处理
  • 文档同步: 已同步 docs/COMMANDS.md / docs/REGRESSION.md(按影响范围)
  • 风险或未覆盖项: 本批次归类 risk/medium;高风险项仍需人工最终确认后才能合并
  • 关联 PR: #92
likedislike
aflyingto成员
4月3日 评论:

开发进度

  • 当前状态: ready-for-review
  • 根因: 日期过滤示例与 GitCode API 接受的时间格式之间存在契约错位,日期字符串未在命令层规范化。
  • 主要修改: issue list 在发送请求前将 YYYY-MM-DD / ISO 输入规范化为 RFC3339,并补对应测试与文档。
  • 影响范围: issue list 命令、命令文档。
  • 单元测试: go test ./...
  • 构建: go build -o ./gc ./cmd/gc
  • 实际命令验证: ./gc issue list -R gitcode-cli/cli --state closed --created-after 2026-03-31 --sort created --direction asc -L 5
  • 安全影响: 本次改动不涉及凭证、权限或危险写路径。
  • 文档同步: 已更新 docs/COMMANDS.md。
  • 风险或未覆盖项: 仍需独立评审和人工最终确认整批 high-risk PR。
  • 关联 PR: !92
likedislike
aflyingto成员
4月3日 评论:

开发进度

  • 当前状态: ready-for-review
  • 根因: CLI 和文档使用 YYYY-MM-DD 示例,但 GitCode API 实际要求 ISO 8601 时间格式。
  • 主要修改: issue list 在发送请求前统一规范化 since / created-* / updated-* 过滤参数,兼容日期字符串并转换为 RFC3339。
  • 影响范围: pkg/cmd/issue/list/*
  • 单元测试: go test ./...
  • 构建: go build -o ./gc ./cmd/gc
  • 实际命令验证: ./gc issue list -R gitcode-cli/cli --state closed --created-after 2026-03-31 --sort created --direction asc -L 5 --json
  • 安全影响: 不涉及凭证或危险写路径。
  • 文档同步: 已同步更新回归/命令文档。
  • 风险或未覆盖项: 仍需独立评审确认日期规范化未改变已有 ISO 输入行为。
  • 关联 PR: #92
likedislike
Aaflyingto成员
4月3日 关闭了 issue