✨ feat(vscode): 审查通过写入工单状态并在卡片上区分

This commit is contained in:
cruldra committed 2026-10-03 03:22:20 +08:00
1 parent ac1b7ed641
commit 177e75910e
21 files changed
+203 -10

No files matched your search

+30 -1
View File
@@ -1158,8 +1158,9 @@ class WebhookCoordinator {
// Per-issue override takes precedence over the global setting.
let effectiveAutoReview = getSettings(this.ctx).autoReview
let autoReviewSource: 'issue' | 'global' = 'global'
let stateJson: Record<string, unknown> | undefined
try {
const stateJson = await readStateJsonComment({
stateJson = await readStateJsonComment({
host: ctx.host,
token: ctx.token,
owner: ctx.owner,
@@ -1180,6 +1181,34 @@ class WebhookCoordinator {
details: message,
})
}
// 新提交让上一次「已通过」作废。已经是 false 或没写过就不再发一条状态评论。
// 读失败时不知道旧值,也清一次,避免卡片继续挂着已通过。
if (stateJson === undefined || stateJson.reviewPassed === true) {
try {
await mergeStateJsonComment({
host: ctx.host,
token: ctx.token,
owner: ctx.owner,
repo: ctx.repo,
issueNumber: event.issueNumber,
extra: { reviewPassed: false },
})
this.activePanel?.postMessage({
type: 'issue/patch',
issueNumber: event.issueNumber,
patch: { reviewPassed: false },
})
}
catch (err) {
const message = err instanceof Error ? err.message : String(err)
logger.add({
level: 'warn',
source: 'webhook',
message: `新提交未能清掉审查通过 #${event.issueNumber}`,
details: message,
})
}
}
if (!effectiveAutoReview) {
logger.add({
level: 'info',