|
|
|
|
@ -4,7 +4,9 @@ import type { TaskQueue } from "../queue.js";
|
|
|
|
|
import type { Config } from "../config.js";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Issue comment created or edited → re-trigger analyst if still in analysis.
|
|
|
|
|
* Issue comment created or edited:
|
|
|
|
|
* - On a PR → re-trigger tester
|
|
|
|
|
* - On an issue still in analysis → re-trigger analyst
|
|
|
|
|
*
|
|
|
|
|
* Replaces: issue-comment-reply.json
|
|
|
|
|
*/
|
|
|
|
|
@ -23,6 +25,29 @@ export function issueComment(config: Config, queue: TaskQueue) {
|
|
|
|
|
return c.text("ignored: bot comment", 200);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const [org, repo] = event.repository.full_name.split("/");
|
|
|
|
|
const isPullRequest = !!event.issue.pull_request;
|
|
|
|
|
|
|
|
|
|
if (isPullRequest) {
|
|
|
|
|
// Comment on a PR → re-trigger tester
|
|
|
|
|
const task: TaskRequest = {
|
|
|
|
|
taskType: "test",
|
|
|
|
|
issueNumber: event.issue.number,
|
|
|
|
|
giteaOrg: org,
|
|
|
|
|
giteaRepo: repo,
|
|
|
|
|
repoCloneUrl: event.repository.clone_url,
|
|
|
|
|
giteaToken: config.giteaReviewToken,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const queued = await queue.enqueue(task, {
|
|
|
|
|
useReviewAccount: true,
|
|
|
|
|
body: "🤖 Re-triggering **test** — workspace queued.",
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return c.json({ ok: true, queued });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Regular issue comment → re-trigger analyst if still in analysis
|
|
|
|
|
const labels = event.issue.labels.map((l) => l.name);
|
|
|
|
|
const pastAnalysis =
|
|
|
|
|
labels.includes("ready-for-architecture") ||
|
|
|
|
|
@ -32,8 +57,6 @@ export function issueComment(config: Config, queue: TaskQueue) {
|
|
|
|
|
return c.text("ignored: issue past analysis stage", 200);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const [org, repo] = event.repository.full_name.split("/");
|
|
|
|
|
|
|
|
|
|
const task: TaskRequest = {
|
|
|
|
|
taskType: "analyse",
|
|
|
|
|
issueNumber: event.issue.number,
|
|
|
|
|
|