Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

42 linesCodeBlameRaw
1{
2 "$schema": "../../node_modules/wrangler/config-schema.json",
3 "name": "g1t-work",
4 "account_id": "1e6f2cffa3f445920836e8ebe446bb58",
5 "compatibility_date": "2026-09-26",
6 // Runs next to its database: a request makes several queries in turn,
7 // and each would otherwise cross the distance to it.
8 "placement": { "mode": "off" },
9 "main": "build/index.js",
10 // Moves repositories' issues into their workspaces' work items, a page
11 // at a time, until done (src/work_migration.rs); `migrate_work_items`
12 // runs the same step at once.
13 "triggers": { "crons": ["*/5 * * * *"] },
14 "build": { "command": "node ../../scripts/build-rust-worker.mjs" },
15 "workers_dev": false,
16 "d1_databases": [
17 {
18 "binding": "DB",
19 "database_name": "g1t-work",
20 "database_id": "f35a9022-e36b-4547-b596-9ab9d5f1c47a",
21 "migrations_dir": "migrations"
22 }
23 ],
24 // Attachments' bytes (src/attachments.rs), in the namespace the
25 // usercontent origin serves from (apps/web/workers/usercontent.ts),
26 // under attachments/<id>.
27 "kv_namespaces": [{ "binding": "AVATARS", "id": "e627b571f07047e187c03e1fc2b3bbdd" }],
28 "services": [
29 { "binding": "IDENTITY", "service": "g1t-identity" },
30 { "binding": "REPOS", "service": "g1t-repos" },
31 { "binding": "EVENTS", "service": "g1t-events" },
32 { "binding": "ACTIONS", "service": "g1t-actions" }
33 ],
34 "queues": {
35 "consumers": [{ "queue": "g1t-events-work", "max_batch_size": 100, "max_batch_timeout": 1, "max_retries": 3, "dead_letter_queue": "g1t-events-dlq" }]
36 },
37 // Logs of a quarter of requests: every issue and pull request page asks
38 // it, so keeping every one costs more than it tells, and a quarter
39 // still catches a rare error within hours. Repos, which it asks most,
40 // logs its slow answers as fields (`answered_ms`, services/repos/src/lib.rs).
41 "observability": { "enabled": true, "head_sampling_rate": 0.25 }
42}