Webhook endpoint at /api/webhooks/gitea receives Gitea status events,
matches them against configurable event triggers with conditions
(event type, repo glob, state, context), renders task templates with
{{variable}} substitution, and creates harness tasks automatically.
Includes circuit breaker: after N consecutive task failures from the
same trigger (default 3), the trigger auto-disables. Re-enable
manually via PATCH /api/event-triggers/:id.
New tables: harness_event_triggers (rules + circuit breaker state),
harness_event_log (audit trail + dedup via X-Gitea-Delivery).
20 lines
554 B
JavaScript
20 lines
554 B
JavaScript
import { build } from "esbuild";
|
|
import { resolve, dirname } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
await build({
|
|
entryPoints: [resolve(__dirname, "../src/mcp-server.ts")],
|
|
bundle: true,
|
|
platform: "node",
|
|
target: "node20",
|
|
format: "esm",
|
|
outfile: resolve(__dirname, "../dist/mcp-server.mjs"),
|
|
external: [],
|
|
banner: { js: "#!/usr/bin/env node" },
|
|
// Inline all deps — the output is a self-contained script
|
|
});
|
|
|
|
console.log("Built dist/mcp-server.mjs");
|