fix(建問題模式): 僅在有嚴重問題時讓 PR 相依於 issue,警告/建議不阻擋合併
node-actions/template: CI / BUILD (pull_request) Successful in 4s
CI / TEST (Claude) (pull_request) Successful in 27s
CI / TEST (Antigravity) (pull_request) Successful in 1m2s
CI / TEST (Codex) (pull_request) Failing after 3m16s

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jeffery
2026-07-20 17:28:43 +08:00
co-authored by Claude Opus 4.8
parent 20a2b57998
commit b277ff2f7c
+14 -8
View File
@@ -137,7 +137,8 @@ function commitFindings({ cwd, ctx, files, result }) {
* 並寫入暫存留言,嚴重問題與警告+建議再逐條發到該 issue,讓每條問題都能被個別回覆); * 並寫入暫存留言,嚴重問題與警告+建議再逐條發到該 issue,讓每條問題都能被個別回覆);
* 無保留問題或無可審查變更則不建 issue、PR 也完全不留言(靜默通過); * 無保留問題或無可審查變更則不建 issue、PR 也完全不留言(靜默通過);
* 收束時在 PR 回貼 issue 連結形成雙向關聯, * 收束時在 PR 回貼 issue 連結形成雙向關聯,
* 並讓 PR 相依於該 issueaddIssueDependencyissue 完成/關閉前 PR 無法合併;需 repo 啟用問題相依功能); * 並「僅在有嚴重問題時」讓 PR 相依於該 issueaddIssueDependencyissue 關閉前 PR 無法合併;
* 需 repo 啟用問題相依功能)——僅有警告/建議時 issue 仍建立供追蹤,但不阻擋合併;
* 收尾:組 filesToCommit —— 一般模式 commit findings 檔(+有變更的 exclusions.json)、 * 收尾:組 filesToCommit —— 一般模式 commit findings 檔(+有變更的 exclusions.json)、
* 建問題模式只 commit exclusions.json、無檔案可 commit 時略過; * 建問題模式只 commit exclusions.json、無檔案可 commit 時略過;
* commit 訊息帶結果標記(success=無嚴重問題、failure=有嚴重問題)。 * commit 訊息帶結果標記(success=無嚴重問題、failure=有嚴重問題)。
@@ -366,7 +367,7 @@ async function main() {
} }
} }
// ── 建問題模式收束:在 PR 回貼 issue 連結(雙向關聯),並讓 PR 相依於該 issue ─ // ── 建問題模式收束:在 PR 回貼 issue 連結(雙向關聯);僅在有嚴重問題時才讓 PR 相依於該 issue ─
// 標籤已於建立 issue 時一次帶入(見上方 selectLabels → ensureIssueCreated),此處不再補掛。 // 標籤已於建立 issue 時一次帶入(見上方 selectLabels → ensureIssueCreated),此處不再補掛。
if (ctx.createIssue && issue) { if (ctx.createIssue && issue) {
await gitea.createIssueComment( await gitea.createIssueComment(
@@ -378,12 +379,17 @@ async function main() {
otherCount: others.length, otherCount: others.length,
}), }),
); );
// 讓 PR 相依於追蹤 issueissue 完成/關閉前 PR 無法合併需 repo 啟用「問題相依」功能) // 只有「嚴重」問題才讓 PR 相依於追蹤 issueissue 關閉前無法合併需 repo 啟用「問題相依」功能)
try { // 僅有警告/建議時,issue 仍建立供追蹤,但不掛相依、不阻擋 PR 合併。
await gitea.addIssueDependency(ctx, ctx.prNumber, issue.number); if (severe.length > 0) {
log('建問題', 'INF', `已將 PR #${ctx.prNumber} 設為相依於 issue #${issue.number}issue 關閉前無法合併。`); try {
} catch (err) { await gitea.addIssueDependency(ctx, ctx.prNumber, issue.number);
log('建問題', 'WRN', `設定 PR 相依失敗(可能未啟用「問題相依」功能):${err.message}`); 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 回貼連結。`); log('建問題', 'INF', `issue #${issue.number} 已寫入審查內容,並在 PR 回貼連結。`);
} }