执行摘要
修复 bot-cherry-pick 的合并状态检测
PR #25981 更新了 bot-cherry-pick 工作流,但首次触发时由于 merged 字段无效而失败(报错 Unknown JSON field: merged)。需要修复合并状态检测逻辑,确保工作流正常运行。
该 PR 是紧急修复工作流缺陷的简单变更,值得部署以恢复 bot-cherry-pick 功能。
该 PR 无 review 评论,变更直截了当。
PR #25981 更新了 bot-cherry-pick 工作流,但首次触发时由于 merged 字段无效而失败(报错 Unknown JSON field: merged)。需要修复合并状态检测逻辑,确保工作流正常运行。
该 PR 是紧急修复工作流缺陷的简单变更,值得部署以恢复 bot-cherry-pick 功能。
该 PR 无 review 评论,变更直截了当。
.github/workflows/bot-cherry-pick.yml 中的 gh pr view 命令,从请求字段中移除无效的 merged 字段。MERGED != "true" 改为 STATE != "MERGED",使用 state 字段的 MERGED 值来判断合并状态。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
.github/workflows/bot-cherry-pick.yml |
CI | modified | 3.6 |
.github/workflows/bot-cherry-pick.yml
infrastructure
工作流实际定义文件,本 PR 的所有变更均在此文件内完成。
# 修正后的 PR 信息获取与合并状态检查逻辑
# 之前使用了无效字段 `merged`,导致 gh CLI 报错
if ! PR_JSON=$(gh pr view "$PR_NUMBER" --repo "$GITHUB_REPOSITORY" --json state,mergeCommit,title,number,url); then
echo "::error::Failed to fetch PR #$PR_NUMBER from $GITHUB_REPOSITORY (see gh output above)."
exit 1
fi
STATE=$(jq -r '.state' <<<"$PR_JSON") # 从 JSON 中提取 state 字段
# 使用 state == "MERGED" 判断 PR 是否合并(之前误用 '.merged' 布尔字段)
if [[ "$STATE" != "MERGED" ]]; then
echo "::error::PR #$PR_NUMBER is not merged (state=$STATE). Only merged PRs can be cherry-picked."
exit 1
fi
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
风险极低:变更仅涉及两个条件表达式的调整,且与 CI 工作流运行结果直接对齐。若 gh pr view --json state 返回的 state 字段值在极端情况下有大写/小写差异,可能导致判断失败,但 GitHub CLI 保证该值为大写 MERGED。
仅影响 bot-cherry-pick 工作流,确保其能正确判断 PR 是否已合并,从而正常执行 cherry-pick 操作。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论