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.

g1t.sh
56 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Repos: a path found not to be a file is remembered for 10 minutes, so repeated misses read nothing1{
2 "$schema": "../../node_modules/wrangler/config-schema.json",
3 "name": "g1t-api",
4 "account_id": "1e6f2cffa3f445920836e8ebe446bb58",
5 "compatibility_date": "2026-09-26",
6 "placement": { "mode": "off" },
7 "main": "build/index.js",
8 "build": { "command": "node ../../scripts/build-rust-worker.mjs" },
9 "workers_dev": false,
10 // One Worker, two hostnames: REST on api, MCP on mcp. Both are thin
11 // adapters over the same operations.
12 "routes": [
13 { "pattern": "api.g1t.sh", "custom_domain": true },
14 { "pattern": "mcp.g1t.sh", "custom_domain": true }
15 ],
16 "services": [
17 { "binding": "IDENTITY", "service": "g1t-identity" },
18 { "binding": "REPOS", "service": "g1t-repos" },
19 { "binding": "WORK", "service": "g1t-work" },
20 { "binding": "EVENTS", "service": "g1t-events" },
The API keeps its binding to the runner Worker, which it passes self-hosted runners' brokered requests to: the hosted-agent removal had dropped the binding along with the agent calls it carried.21 { "binding": "RUNNER", "service": "g1t-runner" },
Repos: a path found not to be a file is remembered for 10 minutes, so repeated misses read nothing22 { "binding": "BILLING", "service": "g1t-billing" },
23 { "binding": "INTEGRATIONS", "service": "g1t-integrations" },
24 { "binding": "WEBHOOKS", "service": "g1t-webhooks" },
25 { "binding": "ACTIONS", "service": "g1t-actions" },
26 // Builds of deployments report through here.
27 { "binding": "DEPLOYMENTS", "service": "g1t-deployments" },
Projects have Observability: their requests, logs, traces, metrics and errors, from apps on g1t.page with nothing to set up, and from software anywhere else over OpenTelemetry.28 // Observability: a project's requests, logs, traces, errors and
29 // metrics, and OTLP sent to /otlp/v1/{traces,logs,metrics}.
30 { "binding": "TELEMETRY", "service": "g1t-telemetry" },
Repos: a path found not to be a file is remembered for 10 minutes, so repeated misses read nothing31 { "binding": "SEARCH", "service": "g1t-search" },
32 // Secret and dependency alerts: list_security_alerts and dismissing them.
API: pinned projects over REST and MCP33 { "binding": "SECURITY", "service": "g1t-security" },
34 // A person's pinned projects: list_pinned_projects and changing them.
Merge packages: roles, Actions access, source label, soft delete, API35 { "binding": "PROJECTS", "service": "g1t-projects" },
36 // Packages: list_packages, their settings, deleting and restoring them.
Merge main into Artifacts Phase 237 { "binding": "PACKAGES", "service": "g1t-packages" },
38 // Artifacts (folios): the artifact tool and /workspaces/{ws}/artifacts.
The API and MCP server no longer offer g1t's own agents. g1t is what your coding agents work against, not an agent of its own, so the operations that drove hosted agents are gone: messaging an agent on a pull request (message_agent, take_messages, answer_message), assigning or delegating an issue to g1t (assign_issue, delegate), plans (plan_work, get_plan, apply_plan), the context hub (search_context, get_entity), model routes, agents' computers, AI Gateway requests, "Fix with g1t" on a security alert, and every Customize route (marketplaces, plugins, connectors). The callbacks the agent sandbox reported through (/agent-runs/*, /runs/:id/usage, /plans/:id, /reviews/:id) go with them, update_repo_settings stops accepting agent_review, max_revisions and hold_low_confidence, import_issue stops accepting assign, and an old agent token with no run behind it is refused.39 { "binding": "ARTIFACTS", "service": "g1t-artifacts" }
Repos: a path found not to be a file is remembered for 10 minutes, so repeated misses read nothing40 ],
Actions: OIDC tokens, the toolkit's cache and artifact services, and artifacts in R241 // GitHub Actions artifacts older runners kept, in chunks, with KV's own
42 // expiry, read until it passes (and cache
Repos: a path found not to be a file is remembered for 10 minutes, so repeated misses read nothing43 // entries saved before the cache moved to R2, until they expire).
44 "kv_namespaces": [{ "binding": "BLOBS", "id": "16a4232cb746418db53782aa068be693" }],
Actions: OIDC tokens, the toolkit's cache and artifact services, and artifacts in R245 // actions/cache entries (`c/`) and artifacts (`a/`), uploaded in parts. The actions
Repos: a path found not to be a file is remembered for 10 minutes, so repeated misses read nothing46 // service lists them and decides what is kept (services/actions/src/cache.rs).
47 "r2_buckets": [{ "binding": "ACTIONS_CACHE", "bucket_name": "g1t-actions-cache" }],
Merge branch 'worktree-agent-a8752162fea25f63f' into spend-guardrails48 // REST and MCP requests (src/limits.rs): per token, or per address
49 // without one. Ids and limits: RATE_LIMITS in packages/contracts.
50 "ratelimits": [
51 { "name": "API_ANONYMOUS_LIMIT", "namespace_id": "4401", "simple": { "limit": 60, "period": 60 } },
52 { "name": "API_TOKEN_LIMIT", "namespace_id": "4402", "simple": { "limit": 1000, "period": 60 } }
53 ],
54 // Logs of a tenth of requests: agents call it constantly.
55 "observability": { "enabled": true, "head_sampling_rate": 0.1 }
Repos: a path found not to be a file is remembered for 10 minutes, so repeated misses read nothing56}

This file's history is long; its oldest lines are credited to the oldest commit read.