From 48ccd226825c767d147dfe8a3681db5eb42ddddc Mon Sep 17 00:00:00 2001 From: wauxing Date: Mon, 29 Jun 2026 09:12:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(pr):=20pr=20+view=20=E8=A1=A5=E9=BD=90=20me?= =?UTF-8?q?rged=5Fat=20=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 上游 #14 报告 pr +view 返回缺少 merged_at 字段(参照平台 API 文档)。 enrichPullRequestClosedAt 此前只从 journals 回填 closed_at,未处理 merged_at。本次从 pull_request.merged_at 提取并回填到顶层,对齐 已有 closed_at 的处理风格。 修复 #5 --- shortcuts/pr/pr.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/shortcuts/pr/pr.go b/shortcuts/pr/pr.go index 03f537f..230ef01 100644 --- a/shortcuts/pr/pr.go +++ b/shortcuts/pr/pr.go @@ -476,7 +476,17 @@ func enrichPullRequestClosedAt(ctx *common.RuntimeContext, env *output.Envelope) return nil } pr, ok := data["pull_request"].(map[string]interface{}) - if !ok || !isClosedPullRequest(pr) || stringField(pr, "closed_at") != "" { + if !ok { + return nil + } + // Backfill merged_at from the pull_request payload if missing. Issue #14 + // reported that pr +view lacked merged_at even though the API docs expose it. + if mergedAt := stringField(pr, "merged_at"); mergedAt != "" { + if _, has := data["merged_at"]; !has { + data["merged_at"] = mergedAt + } + } + if !isClosedPullRequest(pr) || stringField(pr, "closed_at") != "" { return nil } issue, ok := data["issue"].(map[string]interface{})