Skip to content

feat: gh 补充 --enable-auto-merge 官方 CLI 别名 & 根据 CiJobSeverity 区分取消/超时/失败返回明确信息 - #409

Merged
liuqihonggit merged 3 commits into
mainfrom
w1
Oct 13, 2026
Merged

liuqihonggit merged 3 commits into
mainfrom
w1

Conversation

@liuqihonggit

@liuqihonggit liuqihonggit commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • 补充 gh pr create/merge 的 --enable-auto-merge 和 --auto-merge-method 官方 gh CLI kebab-case 别名
  • auto-merge-method 改用 TakeNextToken 并优先 inlineValue,兼容 --opt=val 和 --opt val 两种形式
  • 新增6个单元测试,手动 exe 验证通过(ADR 0080)

Test

  • 93 GhCommandResolverTests 全通过

  • 手动验证: jcc gh pr merge 999999 --enable-auto-merge --auto-merge-method squash 参数解析成功到达 API 调用

  • 修复 JobWatchResult.FailFast 工厂方法丢失 RunConclusion 的缺陷

  • GhRunWaitFailFastAsync 根据 CiJobSeverity 区分取消/超时/失败返回明确信息

  • 新增3个单元测试覆盖 run cancelled/timed_out 场景

Root Cause

JobWatchResult.FailFast 工厂方法没有 conclusion 参数,导致 WatchRunJobsForFailureAsync 的 FastFailed 分支无法传递 RunConclusion。GhRunWaitFailFastAsync 拿到 null RunConclusion,返回"已完成: unknown"而非明确的"已取消"/"已超时"。

Test

  • 20 GitHubRunWaitTests 全通过
  • 新增: RunWait_FailFast_RunCancelled_NoFailedJobs_ReturnsCancelledImmediately
  • 新增: RunWait_FailFast_RunTimedOut_NoFailedJobs_ReturnsTimedOutImmediately
  • 新增: RunWait_NonFailFast_RunCancelled_ReturnsCancelledNotSuccess

@liuqihonggit
liuqihonggit enabled auto-merge (squash) October 13, 2026 14:40
@liuqihonggit
liuqihonggit disabled auto-merge October 13, 2026 14:41
@liuqihonggit liuqihonggit changed the title feat: gh pr create/merge 补充 --enable-auto-merge 官方 CLI 别名 feat: gh pr create/merge 补充 --enable-auto-merge 官方 CLI 别名 & Root Cause Oct 13, 2026
@liuqihonggit liuqihonggit changed the title feat: gh pr create/merge 补充 --enable-auto-merge 官方 CLI 别名 & Root Cause feat: gh 补充 --enable-auto-merge 官方 CLI 别名 & 根据 CiJobSeverity 区分取消/超时/失败返回明确信息 Oct 13, 2026
…od 官方 CLI 别名 | 决策: 官方 gh CLI 用 kebab-case, jcc 工具参数用 snake_case, 通过 LongAliasMap 别名映射桥接
…eOnly 不消费下个 token 导致 --auto-merge-method squash 中 squash 被当多余位置参数, TakeNextToken 优先用 inlineValue 兼容 --key=value 和 --key value 两种形式
…UX 改进 | 决策: JobWatchResult.FailFast 工厂方法增加 conclusion 参数避免丢失, GhRunWaitFailFastAsync 根据 CiJobSeverity 区分取消/超时/失败返回明确信息替代通用'已完成'
@liuqihonggit
liuqihonggit merged commit 672a668 into main Oct 13, 2026
26 checks passed
@liuqihonggit
liuqihonggit deleted the w1 branch October 13, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant