claude-task-worker 0.69.0 → 0.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +26 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1364,6 +1364,11 @@ async function findPrStateByHeadRef(headRefName) {
|
|
|
1364
1364
|
if (prs.length === 0) return null;
|
|
1365
1365
|
return { number: prs[0].number, state: prs[0].state, mergedAt: prs[0].mergedAt ?? null };
|
|
1366
1366
|
}
|
|
1367
|
+
async function getPrMergeable(prNumber) {
|
|
1368
|
+
const output = await execGh(["pr", "view", String(prNumber), "--json", "mergeable"]);
|
|
1369
|
+
const parsed = JSON.parse(output);
|
|
1370
|
+
return typeof parsed?.mergeable === "string" ? parsed.mergeable : "UNKNOWN";
|
|
1371
|
+
}
|
|
1367
1372
|
async function getIssueBody(issueNumber) {
|
|
1368
1373
|
const output = await execGh(["issue", "view", String(issueNumber), "--json", "body"]);
|
|
1369
1374
|
const parsed = JSON.parse(output);
|
|
@@ -3323,7 +3328,7 @@ function createPrPollingWorker(config) {
|
|
|
3323
3328
|
lastCompletionAt = Date.now();
|
|
3324
3329
|
try {
|
|
3325
3330
|
if (status === "completed") {
|
|
3326
|
-
await config.onCompleted?.(pr);
|
|
3331
|
+
await config.onCompleted?.(pr, output);
|
|
3327
3332
|
await notifyTaskCompleted(config.name, name, pr.number, pr.title, prUrl, output);
|
|
3328
3333
|
} else {
|
|
3329
3334
|
await notifyTaskFailed(config.name, name, pr.number, pr.title, prUrl, output);
|
|
@@ -3468,14 +3473,32 @@ var triagePrWorker = createPrPollingWorker({
|
|
|
3468
3473
|
name: "triage-pr",
|
|
3469
3474
|
command: "/claude-task-worker:triage-pr",
|
|
3470
3475
|
triggerLabel: "cc-triage-scope",
|
|
3471
|
-
excludeLabels: ["cc-fix-onetime", "cc-resolve-conflict", "cc-release-ready"]
|
|
3476
|
+
excludeLabels: ["cc-fix-onetime", "cc-resolve-conflict", "cc-release-ready", "cc-need-human-check"]
|
|
3472
3477
|
});
|
|
3473
3478
|
|
|
3474
3479
|
// src/workers/resolve-conflict.ts
|
|
3480
|
+
var LABEL_NEED_HUMAN_CHECK = "cc-need-human-check";
|
|
3481
|
+
function shouldFlagUnresolvedConflict(output, mergeable) {
|
|
3482
|
+
return /aborted/i.test(output) && mergeable === "CONFLICTING";
|
|
3483
|
+
}
|
|
3475
3484
|
var resolveConflictWorker = createPrPollingWorker({
|
|
3476
3485
|
name: "resolve-conflict",
|
|
3477
3486
|
command: "/claude-task-worker:resolve-pr-conflict",
|
|
3478
|
-
triggerLabel: "cc-resolve-conflict"
|
|
3487
|
+
triggerLabel: "cc-resolve-conflict",
|
|
3488
|
+
onCompleted: async (pr, output) => {
|
|
3489
|
+
const mergeable = await getPrMergeable(pr.number);
|
|
3490
|
+
if (!shouldFlagUnresolvedConflict(output, mergeable)) return;
|
|
3491
|
+
await addLabel("pr", pr.number, LABEL_NEED_HUMAN_CHECK);
|
|
3492
|
+
await commentOnPR(
|
|
3493
|
+
pr.number,
|
|
3494
|
+
[
|
|
3495
|
+
"\u30B3\u30F3\u30D5\u30EA\u30AF\u30C8\u3092\u81EA\u52D5\u89E3\u6D88\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001`cc-need-human-check` \u30E9\u30D9\u30EB\u3092\u4ED8\u4E0E\u3057\u307E\u3057\u305F\u3002",
|
|
3496
|
+
"",
|
|
3497
|
+
"- \u624B\u52D5\u3067\u30B3\u30F3\u30D5\u30EA\u30AF\u30C8\u3092\u89E3\u6D88\u3057\u305F\u5834\u5408: `cc-need-human-check` \u30E9\u30D9\u30EB\u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\uFF08`triage-pr` \u304C\u518D\u958B\u3057\u307E\u3059\uFF09",
|
|
3498
|
+
"- \u81EA\u52D5\u89E3\u6D88\u3092\u3084\u308A\u76F4\u3059\u5834\u5408: `cc-need-human-check` \u30E9\u30D9\u30EB\u3092\u5916\u3057\u3001`cc-resolve-conflict` \u30E9\u30D9\u30EB\u3092\u4ED8\u3051\u76F4\u3057\u3066\u304F\u3060\u3055\u3044"
|
|
3499
|
+
].join("\n")
|
|
3500
|
+
);
|
|
3501
|
+
}
|
|
3479
3502
|
});
|
|
3480
3503
|
|
|
3481
3504
|
// src/workers/check-dependabot.ts
|