Compare commits

...

1 Commits
v1.3.8 ... main

Author SHA1 Message Date
Daniel Samson 546d2615c7
feat: re-trigger tester when human comments on a PR
Publish Image / publish (push) Successful in 22s Details
PR comments fire as issue_comment webhooks in Gitea. Previously the
handler only re-triggered the analyst for regular issues. Now it
detects PR comments via the pull_request field and queues a test
workspace using the review bot account.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 20:57:46 +01:00
2 changed files with 27 additions and 3 deletions

View File

@ -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,

View File

@ -30,6 +30,7 @@ export interface GiteaIssue {
state: string;
user: GiteaUser;
labels: GiteaLabel[];
pull_request?: { merged: boolean } | null;
}
export interface GiteaPullRequest {