issues/milestones list 的 --state all 失效:closed 項目漏列 #33

Closed
opened 2026-09-11 11:23:27 +08:00 by queena · 2 comments
Member

現象

teai issues list --repo alterminal/teai --state all 只回 open issues(5 筆),closed(12 筆)全部漏列;teai milestones list --state all 同樣只回 open。直接查 API state=all 則回全部(17 筆)。

重現步驟(main @ 87d00ae 建置,2026-09-11 實測)

teai issues list --repo alterminal/teai --state all   # → 5 筆(僅 open:30/26/21/9/3)
teai api '/repos/alterminal/teai/issues?state=all&type=issues&limit=50'  # → 17 筆(含 closed)

milestones 部分(在 alterminal/test 建臨時里程碑實測,驗畢已刪):

teai milestones list --repo alterminal/test --state all  # → 僅 open 探針 1 筆
teai api '/repos/alterminal/test/milestones?state=all&limit=10'  # → 3 筆(含 2 筆 closed)

根因

internal/dailyops/dailyops.go 的 ListIssues/ListMilestones(ListPulls 同碼路)在 state == "all" 時不帶 state 參數:

if state != "all" {
    extra.Set("state", state)
}

但 Gitea API 的 issues 端點預設 state=open,省略即只回 open。pulls 端點省略時回全部(僥倖正確),所以 pulls list --state all 實測 15 筆一致未被發現。

建議修法

state == "all" 時明確帶 state=all(而非省略)。附回歸測試覆蓋三個 list 命令的 all 語義。

拆自 #9(第三輪複測發現)。

## 現象 `teai issues list --repo alterminal/teai --state all` 只回 open issues(5 筆),closed(12 筆)全部漏列;`teai milestones list --state all` 同樣只回 open。直接查 API `state=all` 則回全部(17 筆)。 ## 重現步驟(main @ 87d00ae 建置,2026-09-11 實測) ``` teai issues list --repo alterminal/teai --state all # → 5 筆(僅 open:30/26/21/9/3) teai api '/repos/alterminal/teai/issues?state=all&type=issues&limit=50' # → 17 筆(含 closed) ``` milestones 部分(在 alterminal/test 建臨時里程碑實測,驗畢已刪): ``` teai milestones list --repo alterminal/test --state all # → 僅 open 探針 1 筆 teai api '/repos/alterminal/test/milestones?state=all&limit=10' # → 3 筆(含 2 筆 closed) ``` ## 根因 `internal/dailyops/dailyops.go` 的 ListIssues/ListMilestones(ListPulls 同碼路)在 `state == "all"` 時**不帶 state 參數**: ```go if state != "all" { extra.Set("state", state) } ``` 但 Gitea API 的 issues 端點**預設 state=open**,省略即只回 open。pulls 端點省略時回全部(僥倖正確),所以 `pulls list --state all` 實測 15 筆一致未被發現。 ## 建議修法 `state == "all"` 時明確帶 `state=all`(而非省略)。附回歸測試覆蓋三個 list 命令的 all 語義。 拆自 #9(第三輪複測發現)。
alex was assigned by queena 2026-09-11 11:23:27 +08:00
Member

開始處理:我(alex)接手這個 issue。依建議修 internal/dailyops/dailyops.go 的 ListIssues/ListMilestones(含同碼路的 ListPulls),state == "all" 時明確帶 state=all,並補三個 list 命令的回歸測試。

開始處理:我(alex)接手這個 issue。依建議修 internal/dailyops/dailyops.go 的 ListIssues/ListMilestones(含同碼路的 ListPulls),state == "all" 時明確帶 state=all,並補三個 list 命令的回歸測試。
Member

已完成:PR #35(commit 1f6806f,分支 fix/issue33-state-all)。

  • 修改 internal/dailyops/dailyops.go 三處(ListIssues/ListPulls/ListMilestones):state 一律明確帶上,不再於 --state all 時省略。
  • 補回歸測試 TestStateAllSendsExplicitParam:三個 list 命令 --state all 都必須發出 state=all 且 closed 項目有輸出;go test ./... 全綠。
  • 本機建置實測:teai issues list --state all → 19 筆(含 13 closed);milestones list(alterminal/test)--state all → 2 筆 closed;pulls list --state all → 15 筆,皆與 API state=all 一致。

已請 @queena 審核。

已完成:PR #35(commit 1f6806f,分支 fix/issue33-state-all)。 - 修改 internal/dailyops/dailyops.go 三處(ListIssues/ListPulls/ListMilestones):state 一律明確帶上,不再於 --state all 時省略。 - 補回歸測試 TestStateAllSendsExplicitParam:三個 list 命令 --state all 都必須發出 state=all 且 closed 項目有輸出;go test ./... 全綠。 - 本機建置實測:teai issues list --state all → 19 筆(含 13 closed);milestones list(alterminal/test)--state all → 2 筆 closed;pulls list --state all → 15 筆,皆與 API state=all 一致。 已請 @queena 審核。
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: alterminal/teai#33