From b277ff2f7c4b565601d57ce93d346e4735b27ebb Mon Sep 17 00:00:00 2001 From: Jeffery Date: Mon, 20 Jul 2026 17:28:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=BB=BA=E5=95=8F=E9=A1=8C=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F):=20=E5=83=85=E5=9C=A8=E6=9C=89=E5=9A=B4=E9=87=8D?= =?UTF-8?q?=E5=95=8F=E9=A1=8C=E6=99=82=E8=AE=93=20PR=20=E7=9B=B8=E4=BE=9D?= =?UTF-8?q?=E6=96=BC=20issue=EF=BC=8C=E8=AD=A6=E5=91=8A=EF=BC=8F=E5=BB=BA?= =?UTF-8?q?=E8=AD=B0=E4=B8=8D=E9=98=BB=E6=93=8B=E5=90=88=E4=BD=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- src/index.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/index.js b/src/index.js index 5e3d037..9fe7562 100644 --- a/src/index.js +++ b/src/index.js @@ -137,7 +137,8 @@ function commitFindings({ cwd, ctx, files, result }) { * 並寫入暫存留言,嚴重問題與警告+建議再逐條發到該 issue,讓每條問題都能被個別回覆); * 無保留問題或無可審查變更則不建 issue、PR 也完全不留言(靜默通過); * 收束時在 PR 回貼 issue 連結形成雙向關聯, - * 並讓 PR 相依於該 issue(addIssueDependency,issue 完成/關閉前 PR 無法合併;需 repo 啟用問題相依功能); + * 並「僅在有嚴重問題時」讓 PR 相依於該 issue(addIssueDependency,issue 關閉前 PR 無法合併; + * 需 repo 啟用問題相依功能)——僅有警告/建議時 issue 仍建立供追蹤,但不阻擋合併; * 收尾:組 filesToCommit —— 一般模式 commit findings 檔(+有變更的 exclusions.json)、 * 建問題模式只 commit exclusions.json、無檔案可 commit 時略過; * commit 訊息帶結果標記(success=無嚴重問題、failure=有嚴重問題)。 @@ -366,7 +367,7 @@ async function main() { } } - // ── 建問題模式收束:在 PR 回貼 issue 連結(雙向關聯),並讓 PR 相依於該 issue ─ + // ── 建問題模式收束:在 PR 回貼 issue 連結(雙向關聯);僅在有嚴重問題時才讓 PR 相依於該 issue ─ // 標籤已於建立 issue 時一次帶入(見上方 selectLabels → ensureIssueCreated),此處不再補掛。 if (ctx.createIssue && issue) { await gitea.createIssueComment( @@ -378,12 +379,17 @@ async function main() { otherCount: others.length, }), ); - // 讓 PR 相依於此追蹤 issue:issue 完成/關閉前 PR 無法合併(需 repo 啟用「問題相依」功能)。 - try { - await gitea.addIssueDependency(ctx, ctx.prNumber, issue.number); - log('建問題', 'INF', `已將 PR #${ctx.prNumber} 設為相依於 issue #${issue.number}:issue 關閉前無法合併。`); - } catch (err) { - log('建問題', 'WRN', `設定 PR 相依失敗(可能未啟用「問題相依」功能):${err.message}。`); + // 只有「嚴重」問題才讓 PR 相依於追蹤 issue(issue 關閉前無法合併,需 repo 啟用「問題相依」功能); + // 僅有警告/建議時,issue 仍建立供追蹤,但不掛相依、不阻擋 PR 合併。 + if (severe.length > 0) { + try { + await gitea.addIssueDependency(ctx, ctx.prNumber, issue.number); + log('建問題', 'INF', `有嚴重問題:已將 PR #${ctx.prNumber} 設為相依於 issue #${issue.number},issue 關閉前無法合併。`); + } catch (err) { + log('建問題', 'WRN', `設定 PR 相依失敗(可能未啟用「問題相依」功能):${err.message}。`); + } + } else { + log('建問題', 'INF', `無嚴重問題(僅警告/建議):issue #${issue.number} 僅供追蹤,不阻擋 PR 合併。`); } log('建問題', 'INF', `issue #${issue.number} 已寫入審查內容,並在 PR 回貼連結。`); }