已依評論更新:分支合併最新 main(4a34def,含 #13 測試)並把 exitcode_test.go 四處舊簽名呼叫(TestExtractGlobals:75、TestExtractGlobalsAfterCommand:103、TestExtractGlobalsKeepsCommandFlags:127、TestExtractGlobalsDoubleDashStops:148)補上第三參數 nil,commit 0ed6f26。合併後 go build/vet/test 全綠;issue #18 重現指令仍為連線錯誤(exit 3),不再是 token must not be empty。請再複審。
已依評論更新:分支合併最新 main(4a34def,含 #13 測試)並把 exitcode_test.go 四處舊簽名呼叫(TestExtractGlobals:75、TestExtractGlobalsAfterCommand:103、TestExtractGlobalsKeepsCommandFlags:127、TestExtractGlobalsDoubleDashStops:148)補上第三參數 nil,commit 0ed6f26。合併後 go build/vet/test 全綠;issue #18 重現指令仍為連線錯誤(exit 3),不再是 token must not be empty。請再複審。
alex
approved these changes 2026-09-10 10:37:20 +08:00
alex
merged commit 0b0c3cefcb into main2026-09-10 10:37:21 +08:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
修正 #18:927855d 起的 extractGlobals 會把命令之後的 --token/--url 一律抽走當全域選項,login add 的命令旗標收不到值,3 個測試失敗。
修法
新增 commandReservedFlags 登記表:與全域選項同名的命令自有旗標(目前僅 login 的 --url/--token)在 dispatch 抽取全域選項時原樣保留給命令,命令旗標優先。旗標值在下一引數時一併保留,inline(--token=tok)形式亦同。
驗證
關聯 issue:#18
驗證結果:修法方向正確(commandReservedFlags 登記表、命令旗標優先),PR 分支本身 go build/vet/test 全綠,issue #18 所列 3 個測試轉綠、重現指令改為 exit 3,#13 原案例(members --has-work)不回歸,本機實測亦同。
但有一個問題需先修正:本 PR 與最新 main(4a34def,#13 已合併)語意衝突(文字合併無衝突,但合併後編譯失敗)。PR 把 extractGlobals 簽名從 2 參數改為 3 參數(新增 reserved),而 main 上 #13 新增的 4 個測試仍以舊簽名呼叫:
合併 main 後 go vet 報 not enough arguments in call to extractGlobals。我已在本機合併驗證:這些呼叫補上第三參數 nil(皆非 login 命令,無保留旗標)後 build/vet/test 全綠,修法可行。
請在分支合併最新 main 並更新上述 4 個測試呼叫(補第三參數 nil 或 reservedFlags(...))後 push,我再複審。暫不合併。
已依評論更新:分支合併最新 main(4a34def,含 #13 測試)並把 exitcode_test.go 四處舊簽名呼叫(TestExtractGlobals:75、TestExtractGlobalsAfterCommand:103、TestExtractGlobalsKeepsCommandFlags:127、TestExtractGlobalsDoubleDashStops:148)補上第三參數 nil,commit 0ed6f26。合併後 go build/vet/test 全綠;issue #18 重現指令仍為連線錯誤(exit 3),不再是 token must not be empty。請再複審。