Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commita54e588

seed

Test User committed on July 16, 2026Parent: a74f4ed
1 file changed+90a54e588b3c296c4e043af5ec4805f946d536e60c
1 changed file+9−0
Modifiedsrc/lib/mcp-tools.ts+9−0View fileUnifiedSplit
3333import { resolveRepoAccess, satisfiesAccess } from "../middleware/repo-access";
3434import type { RepoAccessLevel } from "../middleware/repo-access";
3535import { notify, audit, logActivity } from "./notify";
36import { fireWebhooks } from "../routes/webhooks";
3637import { runAllGateChecks } from "./gate";
3738import {
3839 matchProtection,
600601 targetId: inserted.id,
601602 metadata: { source: "mcp", number: inserted.number, title },
602603 });
604 void fireWebhooks(gate.repoId, "issue", { action: "opened", number: inserted.number, title });
603605
604606 // Notify repo owner if it's not the same user (mirrors typical web flow).
605607 if (gate.ownerId !== gate.userId) {
692694 targetId: issue.id,
693695 metadata: { source: "mcp", number },
694696 });
697 void fireWebhooks(gate.repoId, "issue", { action: "commented", number });
695698
696699 return { commentId: inserted.id };
697700 },
745748 targetId: issue.id,
746749 metadata: { source: "mcp", number },
747750 });
751 void fireWebhooks(gate.repoId, "issue", { action: "closed", number });
748752 }
749753
750754 return { state: "closed" };
800804 targetId: issue.id,
801805 metadata: { source: "mcp", number },
802806 });
807 void fireWebhooks(gate.repoId, "issue", { action: "reopened", number });
803808 }
804809
805810 return { state: "open" };
878883 targetId: String(pr.number),
879884 metadata: { source: "mcp", baseBranch, headBranch },
880885 });
886 void fireWebhooks(gate.repoId, "pr", { action: "opened", number: pr.number, baseBranch, headBranch });
881887
882888 if (gate.ownerId !== gate.userId) {
883889 notify(gate.ownerId, {
11251131 targetId: String(number),
11261132 metadata: { source: "mcp", commentId: inserted.id },
11271133 });
1134 void fireWebhooks(gate.repoId, "pr", { action: "commented", number });
11281135
11291136 return { commentId: inserted.id };
11301137 },
14021409 targetId: String(number),
14031410 metadata: { source: "mcp", sha: headSha },
14041411 });
1412 void fireWebhooks(gate.repoId, "pr", { action: "merged", number });
14051413
14061414 // Resolved post-merge SHA (best effort).
14071415 let mergedSha: string | null = null;
15001508 targetId: pr.id,
15011509 metadata: { source: "mcp", number },
15021510 });
1511 void fireWebhooks(gate.repoId, "pr", { action: "closed", number });
15031512 }
15041513
15051514 return { state: pr.state === "merged" ? "merged" : "closed" };
15061515