feat: re-trigger tester when human comments on a PR
Publish Image / publish (push) Successful in 22s
Publish Image / publish (push) Successful in 22s
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>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
f693d56762
commit
546d2615c7
@@ -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,
|
||||
|
||||
@@ -30,6 +30,7 @@ export interface GiteaIssue {
|
||||
state: string;
|
||||
user: GiteaUser;
|
||||
labels: GiteaLabel[];
|
||||
pull_request?: { merged: boolean } | null;
|
||||
}
|
||||
|
||||
export interface GiteaPullRequest {
|
||||
|
||||
Reference in New Issue
Block a user