Skip to content

g1t/apps/api/src/reference.json

5,184 lines149,913 bytesCodeBlame

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.

Merge branch 'worktree-agent-ab2e39e11a6493412'1{
2 "device_code": {
3 "request": {
4 "client_name": "Claude Code"
5 },
6 "response": {
7 "device_code": "Gm3k…",
8 "user_code": "WDJB-MJHT",
9 "verification_uri": "https://g1t.sh/device",
10 "verification_uri_complete": "https://g1t.sh/device?code=WDJB-MJHT",
11 "expires_in": 900,
12 "interval": 5
13 }
14 },
15 "device_token": {
16 "request": {
17 "device_code": "Gm3k…"
18 },
19 "response": {
20 "status": "approved",
21 "token": "g1t_…",
22 "username": "syntaqx",
23 "verified": true
24 }
25 },
26 "whoami": {
27 "response": {
28 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
29 "username": "syntaqx",
30 "kind": "user",
31 "verified": true,
32 "workspaces": [
33 {
34 "slug": "acme",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look35 "role": "member",
36 "base_permission": "write"
Merge branch 'worktree-agent-ab2e39e11a6493412'37 },
38 {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look39 "slug": "flagon-io",
40 "role": "owner",
41 "base_permission": "write"
Merge branch 'worktree-agent-ab2e39e11a6493412'42 }
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step43 ],
44 "token": {
45 "token_id": "tok_01kkntd3p2v8x6ym5r0c1q7a9e",
API: pinned projects over REST and MCP46 "scopes": [
47 "repo:read",
48 "issues:read",
49 "issues:write",
50 "pull_requests:read",
51 "pull_requests:write"
52 ]
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step53 }
Merge branch 'worktree-agent-ab2e39e11a6493412'54 },
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step55 "notes": "`token` is what the access token you called with may do: its `scopes` (left out for full access) and `legacy` when it was made before tokens had scopes. A token reaches every workspace and repository whoever it acts as can; its scopes say what it may do there. See [Scopes](/guides/authentication/#scopes). `kind` is `user`, `workspace` for a [workspace access token](/guides/workspaces/#workspace-access-tokens), or `agent` for the token a g1t agent works with. For a workspace token, `username` is the workspace's slug and `workspaces` holds only that workspace. Each workspace carries its `base_permission`: what a member gets on each of its repositories (owners have Admin). Roles given on single repositories are in `grants`, each with `repo_id`, `workspace` and `role`; it is left out when there are none. See [Access and roles](/guides/access-and-roles/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'56 },
57 "create_workspace": {
58 "request": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look59 "slug": "acme-labs",
60 "name": "Acme Labs"
Merge branch 'worktree-agent-ab2e39e11a6493412'61 },
62 "response": {
63 "id": "wsp_01m43teqa9em6bje0bhvdj4jkb",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look64 "slug": "acme-labs",
65 "name": "Acme Labs",
Merge branch 'worktree-agent-ab2e39e11a6493412'66 "description": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API67 "created_at": "2026-10-04T16:02:51.337Z",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look68 "member_count": 1,
69 "base_permission": "write"
70 },
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily71 "notes": "`base_permission` is what every member gets on each of its repositories: `write` until an owner changes it with `PATCH /workspaces/{workspace}` or `PUT /workspaces/{workspace}/base_permission`. See [Access and roles](/guides/access-and-roles/)."
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look72 },
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily73 "update_workspace": {
74 "params": {
75 "workspace": "acme-labs"
76 },
77 "request": {
78 "name": "Acme Labs",
79 "description": "Rockets, and the software that flies them."
80 },
81 "response": {
82 "id": "wsp_01m43teqa9em6bje0bhvdj4jkb",
83 "slug": "acme-labs",
84 "name": "Acme Labs",
85 "description": "Rockets, and the software that flies them.",
86 "created_at": "2026-10-04T16:02:51.337Z",
87 "member_count": 3,
88 "base_permission": "write"
89 },
90 "notes": "Only the fields given change. `name` is the display name; the slug, the first part of the workspace's addresses, stays as it is. `base_permission` needs the `access:admin` scope as well as `workspace:admin`; [`set_base_permission`](/reference/api/access/set-base-permission/) sets it alone. Refused with `403` for anyone but an owner signed in as a person. Recorded in the [audit log](/guides/audit-log/). See [Workspaces](/guides/workspaces/)."
91 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look92 "delete_workspace": {
93 "request": {
94 "confirm": "acme-labs"
95 },
96 "response": true,
Packages, with a container registry on g1t.sh; workspaces deleted whole and kept 30 days; Members for every member97 "notes": "Refused with `402` while billing cannot settle it, with a message that says what to do, and with `403` for anyone but an owner signed in as a person, or for a protected workspace. Its repositories, projects and apps go with it; g1t's support can restore it for 30 days. See [Delete a workspace](/guides/workspaces/#delete-a-workspace)."
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look98 },
99 "list_emails": {
100 "response": {
101 "emails": [
102 {
103 "email": "ada@example.com",
104 "verified": true,
105 "primary": true,
106 "backup": false,
107 "created_at": "2026-09-01T10:00:00.000Z",
108 "verified_at": "2026-09-01T10:02:11.000Z"
109 },
110 {
111 "email": "ada@acme.com",
112 "verified": true,
113 "primary": false,
114 "backup": true,
115 "created_at": "2026-10-02T09:30:00.000Z",
116 "verified_at": "2026-10-02T09:31:40.000Z"
117 },
118 {
119 "email": "ada.l@example.org",
120 "verified": false,
121 "primary": false,
122 "backup": false,
123 "created_at": "2026-10-05T14:12:03.000Z",
124 "verified_at": null
125 }
126 ],
127 "private_email": true,
128 "block_private_pushes": false,
129 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
130 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
131 "limit": 10
132 },
133 "notes": "Your primary address comes first, then confirmed addresses, then unconfirmed ones. Any confirmed address signs you in, can reset your password and attributes commits to you. See [Email addresses](/guides/authentication/#email-addresses)."
134 },
135 "add_email": {
136 "request": {
137 "email": "ada.l@example.org",
138 "password": "…"
139 },
140 "response": {
141 "emails": [
142 {
143 "email": "ada@example.com",
144 "verified": true,
145 "primary": true,
146 "backup": false,
147 "created_at": "2026-09-01T10:00:00.000Z",
148 "verified_at": "2026-09-01T10:02:11.000Z"
149 },
150 {
151 "email": "ada@acme.com",
152 "verified": true,
153 "primary": false,
154 "backup": true,
155 "created_at": "2026-10-02T09:30:00.000Z",
156 "verified_at": "2026-10-02T09:31:40.000Z"
157 },
158 {
159 "email": "ada.l@example.org",
160 "verified": false,
161 "primary": false,
162 "backup": false,
163 "created_at": "2026-10-05T14:12:03.000Z",
164 "verified_at": null
165 }
166 ],
167 "private_email": true,
168 "block_private_pushes": false,
169 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
170 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
171 "limit": 10
172 },
173 "notes": "Answers `403` with code `reauth_required` when `password` is missing or wrong, and `409` when another account has confirmed the address. The new address stays unconfirmed until its link is followed."
174 },
175 "remove_email": {
176 "request": {
177 "password": "…"
178 },
179 "response": {
180 "emails": [
181 {
182 "email": "ada@example.com",
183 "verified": true,
184 "primary": true,
185 "backup": false,
186 "created_at": "2026-09-01T10:00:00.000Z",
187 "verified_at": "2026-09-01T10:02:11.000Z"
188 },
189 {
190 "email": "ada@acme.com",
191 "verified": true,
192 "primary": false,
193 "backup": true,
194 "created_at": "2026-10-02T09:30:00.000Z",
195 "verified_at": "2026-10-02T09:31:40.000Z"
196 },
197 {
198 "email": "ada.l@example.org",
199 "verified": false,
200 "primary": false,
201 "backup": false,
202 "created_at": "2026-10-05T14:12:03.000Z",
203 "verified_at": null
204 }
205 ],
206 "private_email": true,
207 "block_private_pushes": false,
208 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
209 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
210 "limit": 10
211 },
212 "notes": "Give the address in the path, URL-encoded: `DELETE /user/emails/ada.l%40example.org`. Answers `409` for your primary address or your last confirmed one."
213 },
214 "update_email_settings": {
215 "request": {
216 "primary": "ada@acme.com",
217 "password": "…"
218 },
219 "response": {
220 "emails": [
221 {
222 "email": "ada@example.com",
223 "verified": true,
224 "primary": true,
225 "backup": false,
226 "created_at": "2026-09-01T10:00:00.000Z",
227 "verified_at": "2026-09-01T10:02:11.000Z"
228 },
229 {
230 "email": "ada@acme.com",
231 "verified": true,
232 "primary": false,
233 "backup": true,
234 "created_at": "2026-10-02T09:30:00.000Z",
235 "verified_at": "2026-10-02T09:31:40.000Z"
236 },
237 {
238 "email": "ada.l@example.org",
239 "verified": false,
240 "primary": false,
241 "backup": false,
242 "created_at": "2026-10-05T14:12:03.000Z",
243 "verified_at": null
244 }
245 ],
246 "private_email": true,
247 "block_private_pushes": false,
248 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
249 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
250 "limit": 10
251 },
252 "notes": "Only the fields given change. `primary` and `backup` need `password`; `private_email` and `block_private_pushes` do not."
253 },
254 "list_invites": {
255 "response": {
256 "mode": "invite",
257 "allowance": {
258 "limit": 5,
259 "used": 2,
260 "remaining": 3
261 },
262 "workspaces": [
263 {
264 "slug": "acme-labs",
265 "allowance": {
266 "limit": 20,
267 "used": 4,
268 "remaining": 16
269 }
270 }
271 ],
272 "invites": [
273 {
274 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
275 "code": "g1t-k7m2-q9xd-4hpw-…",
276 "hint": "g1t-k7m2",
277 "email": "ada@example.com",
278 "kind": "account",
279 "workspace": null,
280 "status": "pending",
281 "charged_to": "user",
282 "invited_by": "syntaqx",
283 "redeemed_by": null,
284 "created_at": "2026-10-05T17:00:00.000Z",
285 "expires_at": "2026-11-04T17:00:00.000Z",
286 "redeemed_at": null,
287 "revoked_at": null
288 },
289 {
290 "id": "inv_01kp1v3c4d5e6f7g8h9j0k1m2n",
291 "code": null,
292 "hint": "g1t-p3rt",
293 "email": null,
294 "kind": "account",
295 "workspace": null,
296 "status": "redeemed",
297 "charged_to": "user",
298 "invited_by": "syntaqx",
299 "redeemed_by": "grace",
300 "created_at": "2026-10-02T09:12:40.000Z",
301 "expires_at": "2026-11-01T09:12:40.000Z",
302 "redeemed_at": "2026-10-02T11:30:05.000Z",
303 "revoked_at": null
304 }
305 ]
306 },
307 "notes": "`allowance.limit` and `allowance.remaining` are null when you have no limit. A revoked or expired invite that was never used is not counted. Ask for more at hey@flagon.io with the subject `[g1t Invites]`. See [Invites](/guides/authentication/#invites)."
308 },
309 "create_invite": {
310 "request": {
311 "email": "ada@example.com"
312 },
313 "response": {
314 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
315 "code": "g1t-k7m2-q9xd-4hpw-…",
316 "hint": "g1t-k7m2",
317 "email": "ada@example.com",
318 "kind": "account",
319 "workspace": null,
320 "status": "pending",
321 "charged_to": "user",
322 "invited_by": "syntaqx",
323 "redeemed_by": null,
324 "created_at": "2026-10-05T17:00:00.000Z",
325 "expires_at": "2026-11-04T17:00:00.000Z",
326 "redeemed_at": null,
327 "revoked_at": null
328 },
329 "notes": "Refused with `402` (`limit`) when you have no invites left, with `409` when you already have a pending invite for that address or it already has a g1t account, and with `403` for an agent's or a workspace's token. The code is returned in full; send people the link `https://g1t.sh/invite/<code>`."
330 },
331 "revoke_invite": {
332 "response": {
333 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
334 "code": null,
335 "hint": "g1t-k7m2",
336 "email": "ada@example.com",
337 "kind": "account",
338 "workspace": null,
339 "status": "revoked",
340 "charged_to": "user",
341 "invited_by": "syntaqx",
342 "redeemed_by": null,
343 "created_at": "2026-10-05T17:00:00.000Z",
344 "expires_at": "2026-11-04T17:00:00.000Z",
345 "redeemed_at": null,
346 "revoked_at": "2026-10-06T08:00:00.000Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'347 }
348 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look349 "list_workspace_invites": {
350 "response": [
351 {
352 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
353 "code": "g1t-k7m2-q9xd-4hpw-…",
354 "hint": "g1t-k7m2",
355 "email": "ada@example.com",
356 "kind": "account",
357 "workspace": "acme-labs",
358 "status": "pending",
359 "charged_to": "workspace",
360 "invited_by": "syntaqx",
361 "redeemed_by": null,
362 "created_at": "2026-10-05T17:00:00.000Z",
363 "expires_at": "2026-11-04T17:00:00.000Z",
364 "redeemed_at": null,
365 "revoked_at": null
366 },
367 {
368 "id": "inv_01kp1z9y8x7w6v5t4s3r2q1p0n",
369 "code": "g1t-k7m2-q9xd-4hpw-…",
370 "hint": "g1t-w2vb",
371 "email": "linus@example.com",
372 "kind": "workspace",
373 "workspace": "acme-labs",
374 "status": "pending",
375 "charged_to": "none",
376 "invited_by": "syntaqx",
377 "redeemed_by": null,
378 "created_at": "2026-10-05T17:00:00.000Z",
379 "expires_at": "2026-11-04T17:00:00.000Z",
380 "redeemed_at": null,
381 "revoked_at": null
382 }
383 ]
384 },
385 "invite_member": {
386 "request": {
387 "email": "ada@example.com"
388 },
389 "response": {
390 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
391 "code": "g1t-k7m2-q9xd-4hpw-…",
392 "hint": "g1t-k7m2",
393 "email": "ada@example.com",
394 "kind": "account",
395 "workspace": "acme-labs",
396 "status": "pending",
397 "charged_to": "workspace",
398 "invited_by": "syntaqx",
399 "redeemed_by": null,
400 "created_at": "2026-10-05T17:00:00.000Z",
401 "expires_at": "2026-11-04T17:00:00.000Z",
402 "redeemed_at": null,
403 "revoked_at": null
404 },
405 "notes": "`kind` is `workspace` when the address already has a g1t account (`charged_to` is then `none`), and `account` when accepting makes one. Both answers look alike to the caller on purpose: the invite is emailed either way."
406 },
407 "revoke_workspace_invite": {
408 "response": {
409 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
410 "code": null,
411 "hint": "g1t-k7m2",
412 "email": "ada@example.com",
413 "kind": "account",
414 "workspace": "acme-labs",
415 "status": "revoked",
416 "charged_to": "workspace",
417 "invited_by": "syntaqx",
418 "redeemed_by": null,
419 "created_at": "2026-10-05T17:00:00.000Z",
420 "expires_at": "2026-11-04T17:00:00.000Z",
421 "redeemed_at": null,
422 "revoked_at": "2026-10-06T08:00:00.000Z"
423 }
424 },
Merge branch 'worktree-agent-ab2e39e11a6493412'425 "list_repos": {
426 "query": {
427 "q": "hello"
428 },
429 "response": [
430 {
431 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look432 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'433 "name": "hello",
434 "description": "A tiny service that says hello.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API435 "is_private": false,
436 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
437 "default_branch": "main",
438 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'439 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look440 "created_at": "2026-09-28T14:11:52.640Z",
441 "website": "https://hello.g1t.page",
442 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'443 }
444 ],
445 "notes": "Returns at most 50 repositories, newest first. Forks made for pull requests are left out."
446 },
447 "create_repo": {
448 "request": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look449 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'450 "name": "hello-cli",
451 "description": "Command-line client for hello.",
452 "private": false
453 },
454 "response": {
455 "id": "rep_01m43tk1jhehztx23drs87f5fc",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look456 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'457 "name": "hello-cli",
458 "description": "Command-line client for hello.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API459 "is_private": false,
460 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
461 "default_branch": "main",
462 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'463 "protected": false,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look464 "created_at": "2026-10-04T16:05:12.913Z",
465 "website": "https://hello.g1t.page",
466 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'467 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API468 "notes": "`owner_id` is the id of the person who created the repository. With `import_url`, `default_branch` is the default branch of the repository copied."
Merge branch 'worktree-agent-ab2e39e11a6493412'469 },
470 "get_repo": {
471 "response": {
472 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look473 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'474 "name": "hello",
475 "description": "A tiny service that says hello.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API476 "is_private": false,
477 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
478 "default_branch": "main",
479 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'480 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look481 "created_at": "2026-09-28T14:11:52.640Z",
482 "website": "https://hello.g1t.page",
483 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'484 }
485 },
486 "update_repo": {
487 "request": {
488 "description": "Says hello, politely.",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look489 "website": "hello.g1t.page",
490 "default_branch": "trunk",
Merge branch 'worktree-agent-ab2e39e11a6493412'491 "protected": true
492 },
493 "response": {
494 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look495 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'496 "name": "hello",
497 "description": "Says hello, politely.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API498 "is_private": false,
499 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look500 "default_branch": "trunk",
501 "fork_of": null,
502 "protected": true,
503 "created_at": "2026-09-28T14:11:52.640Z",
504 "topics": [
505 "http",
506 "example"
507 ],
508 "website": "https://hello.g1t.page",
509 "archived_at": null
510 },
511 "notes": "Only the fields given change. `website` gets `https://` when no scheme is given; an empty string clears it. `default_branch` must name a branch that exists (`422` otherwise); it is changed after the other fields. `description`, `website`, `topics` and `protected` need the Maintain role or higher, and `private` and `default_branch` the Admin role (`403` otherwise, saying which role). Changing `private` here needs no confirmation; `POST /repos/{owner}/{name}/visibility` asks for one. Making it private is refused with `402` when a free workspace's private storage has no room for it. See [Managing a repository](/guides/managing-repositories/) and [Access and roles](/guides/access-and-roles/)."
512 },
513 "transfer_repo": {
514 "request": {
515 "to": "flagon-io"
516 },
517 "response": {
518 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
519 "namespace": "flagon-io",
520 "name": "hello",
521 "description": "A tiny service that says hello.",
522 "is_private": false,
523 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API524 "default_branch": "main",
525 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'526 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look527 "created_at": "2026-09-28T14:11:52.640Z",
528 "website": "https://hello.g1t.page",
529 "archived_at": null
530 },
531 "notes": "The repository at its new address. Refused with `409` when the destination already has a repository of that name, `403` unless you own both workspaces, and `402` when a free destination has no room for a private repository. The old address redirects. See [Transferring a repository](/guides/transferring-repositories/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'532 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look533 "rename_repo": {
534 "request": {
535 "name": "greeter"
536 },
537 "response": {
538 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
539 "namespace": "flagon-io",
540 "name": "greeter",
541 "description": "A tiny service that says hello.",
542 "is_private": false,
543 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
544 "default_branch": "main",
545 "fork_of": null,
546 "protected": true,
547 "created_at": "2026-09-28T14:11:52.640Z",
548 "topics": [
549 "http",
550 "example"
551 ],
552 "website": "https://hello.g1t.page",
553 "archived_at": null
554 },
555 "notes": "The repository under its new name. Needs the Admin role (`403` otherwise). Refused with `409` when the workspace already has a repository of that name, a recently deleted one included, and with `422` when the name is not valid. The old address redirects. See [Rename a repository](/guides/managing-repositories/#rename-a-repository)."
556 },
557 "rename_branch": {
558 "params": {
559 "owner": "flagon-io",
560 "name": "hello",
561 "branch": "feature/login"
562 },
563 "request": {
564 "new_name": "feature/sign-in"
565 },
566 "response": {
567 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
568 "namespace": "flagon-io",
569 "name": "hello",
570 "description": "A tiny service that says hello.",
571 "is_private": false,
572 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
573 "default_branch": "main",
574 "fork_of": null,
575 "protected": true,
576 "created_at": "2026-09-28T14:11:52.640Z",
577 "topics": [
578 "http",
579 "example"
580 ],
581 "website": "https://hello.g1t.page",
582 "archived_at": null
583 },
584 "notes": "The repository after the rename; renaming the default branch changes `default_branch`. Send a branch name with slashes URL-encoded, as one path segment. Refused with `404` when there is no such branch, `409` when a branch named `new_name` exists, `422` when `new_name` is not a valid branch name, and `403` without the Write role, or without the Admin role for the default branch. See [Rename a branch](/guides/managing-repositories/#rename-a-branch)."
585 },
586 "set_repo_visibility": {
587 "request": {
588 "private": true,
589 "confirm": "flagon-io/hello"
590 },
591 "response": {
592 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
593 "namespace": "flagon-io",
594 "name": "hello",
595 "description": "A tiny service that says hello.",
596 "is_private": true,
597 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
598 "default_branch": "main",
599 "fork_of": null,
600 "protected": true,
601 "created_at": "2026-09-28T14:11:52.640Z",
602 "topics": [
603 "http",
604 "example"
605 ],
606 "website": "https://hello.g1t.page",
607 "archived_at": null
608 },
609 "notes": "Needs the Admin role (`403` otherwise). Refused with `422` when `confirm` is not the repository's full name, and with `402` when a free workspace's private storage has no room for it. See [Change who can see a repository](/guides/managing-repositories/#change-who-can-see-a-repository)."
610 },
611 "archive_repo": {
612 "response": {
613 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
614 "namespace": "flagon-io",
615 "name": "hello",
616 "description": "A tiny service that says hello.",
617 "is_private": false,
618 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
619 "default_branch": "main",
620 "fork_of": null,
621 "protected": true,
622 "created_at": "2026-09-28T14:11:52.640Z",
623 "topics": [
624 "http",
625 "example"
626 ],
627 "website": "https://hello.g1t.page",
628 "archived_at": "2026-10-05T09:30:00.000Z"
629 },
630 "notes": "The repository, with `archived_at` set. Needs the Admin role (`403` otherwise). See [Archive a repository](/guides/managing-repositories/#archive-a-repository)."
631 },
632 "unarchive_repo": {
633 "response": {
634 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
635 "namespace": "flagon-io",
636 "name": "hello",
637 "description": "A tiny service that says hello.",
638 "is_private": false,
639 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
640 "default_branch": "main",
641 "fork_of": null,
642 "protected": true,
643 "created_at": "2026-09-28T14:11:52.640Z",
644 "topics": [
645 "http",
646 "example"
647 ],
648 "website": "https://hello.g1t.page",
649 "archived_at": null
650 },
651 "notes": "The repository, with `archived_at` null. Needs the Admin role (`403` otherwise)."
652 },
653 "delete_repo": {
654 "request": {
655 "confirm": "flagon-io/hello"
656 },
657 "response": {
658 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
659 "namespace": "flagon-io",
660 "name": "hello",
661 "description": "A tiny service that says hello.",
662 "is_private": false,
663 "deleted_at": "2026-10-05T09:30:00.000Z",
664 "deleted_by": "syntaqx",
665 "purge_after": "2026-11-04T09:30:00.000Z"
666 },
667 "notes": "The deleted repository and when it will be purged, 30 days on. Owners of the workspace only (`403`), whatever their role on the repository. Refused with `422` when `confirm` is not its full name. Its name stays taken until it is purged. See [Delete a repository](/guides/managing-repositories/#delete-a-repository)."
668 },
669 "list_deleted_repos": {
670 "params": {
671 "workspace": "flagon-io"
672 },
673 "response": [
674 {
675 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
676 "namespace": "flagon-io",
677 "name": "hello",
678 "description": "A tiny service that says hello.",
679 "is_private": false,
680 "deleted_at": "2026-10-05T09:30:00.000Z",
681 "deleted_by": "syntaqx",
682 "purge_after": "2026-11-04T09:30:00.000Z"
683 }
684 ],
685 "notes": "Newest first. Empty for anyone who is not an owner of the workspace."
686 },
687 "restore_repo": {
688 "response": {
689 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
690 "namespace": "flagon-io",
691 "name": "hello",
692 "description": "A tiny service that says hello.",
693 "is_private": false,
694 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
695 "default_branch": "main",
696 "fork_of": null,
697 "protected": true,
698 "created_at": "2026-09-28T14:11:52.640Z",
699 "topics": [
700 "http",
701 "example"
702 ],
703 "website": "https://hello.g1t.page",
704 "archived_at": null
705 },
706 "notes": "The repository, back at its address. Name it by the path it had. Owners only (`403`); `404` when no deleted repository had that path, or it has been purged. See [Restore a repository](/guides/managing-repositories/#restore-a-repository)."
707 },
708 "purge_repo": {
709 "request": {
710 "confirm": "flagon-io/hello"
711 },
712 "response": true,
713 "notes": "Permanent: it cannot be restored afterwards, and its name is free again. Only a deleted repository can be purged (`404` otherwise). Owners only (`403`); `422` when `confirm` is not its full name."
714 },
Merge branch 'worktree-agent-ab2e39e11a6493412'715 "get_repo_settings": {
716 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API717 "auto_merge": false,
Fast pages, required checks on the branch, self-hosted runners, honest incidents718 "required_checks": [
719 "CI"
720 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API721 "require_up_to_date": false,
722 "required_approvals": 0,
723 "count_agent_approvals": true,
724 "allow_ignoring_checks": true,
725 "agent_review": true,
726 "max_revisions": 2,
727 "merge_queue": false,
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step728 "hold_low_confidence": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API729 "updated_by": null,
730 "updated_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'731 }
732 },
733 "update_repo_settings": {
734 "request": {
Fast pages, required checks on the branch, self-hosted runners, honest incidents735 "required_checks": [
736 "CI",
737 "g1t / deploy"
738 ],
Merge branch 'worktree-agent-ab2e39e11a6493412'739 "required_approvals": 1,
740 "count_agent_approvals": false,
741 "merge_queue": true
742 },
743 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API744 "auto_merge": false,
Fast pages, required checks on the branch, self-hosted runners, honest incidents745 "required_checks": [
746 "CI",
747 "g1t / deploy"
748 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API749 "require_up_to_date": false,
750 "required_approvals": 1,
751 "count_agent_approvals": false,
752 "allow_ignoring_checks": true,
753 "agent_review": true,
754 "max_revisions": 2,
755 "merge_queue": true,
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step756 "hold_low_confidence": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API757 "updated_by": "syntaqx",
758 "updated_at": "2026-10-04T16:20:37.508Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'759 },
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent760 "notes": "`required_checks` replaces the whole list: at most 20 names, each a workflow's name or another status's context, as [`list_check_names`](/reference/api/repositories/list-check-names/) gives them. A pull request merges only once each passes on its head; one nothing has reported holds it too. With the merge queue on, each must also pass on the queued state, so the workflows behind them need `merge_group` in their `on:`. `required_approvals` is at most 6 and `max_revisions` at most 5. See [what a repository can ask for](/guides/working-with-g1t/#what-a-repository-can-ask-for). `hold_low_confidence` is on unless turned off: see [confidence](/guides/working-with-g1t/#how-sure-the-agent-is)."
Merge branch 'worktree-agent-ab2e39e11a6493412'761 },
Fast pages, required checks on the branch, self-hosted runners, honest incidents762 "list_check_names": {
763 "response": [
764 {
765 "name": "CI",
766 "events": [
767 "pull_request",
768 "merge_group",
769 "push"
770 ],
771 "last_seen": "2026-10-06T09:14:02.118Z"
772 },
773 {
774 "name": "g1t / deploy",
775 "events": [],
776 "last_seen": "2026-10-06T08:51:40.006Z"
777 }
778 ],
779 "notes": "The names reported on the repository's commits in the last 30 days, most recent first. A workflow reports a check named after it (`CI`), for each event it ran for; another tool, such as a deployment, reports its own name (`g1t / deploy`). Empty until something has reported on a commit: add a workflow in `.g1t/workflows` first."
780 },
Merge branch 'worktree-agent-ab2e39e11a6493412'781 "list_events": {
782 "query": {
783 "before": "evt_01m43t2a6c9e3g7j1m5q9t3x7b"
784 },
785 "response": [
786 {
787 "id": "evt_01m43smh3ve52vkcna207vqctf",
788 "type": "pull.opened",
789 "source": "work",
790 "time": "2026-10-01T18:20:02.117Z",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API791 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'792 "actor": "usr_01kkntcg1eeb98j62xjm7eh09p",
793 "data": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API794 "pull_id": "pr_01m43smh3vexsr5pmp60qwv0vs",
795 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'796 "number": 14,
797 "issue": 12,
798 "agent": "claude-code"
799 }
800 },
801 {
802 "id": "evt_01m43shrzpf2vt5rxbb02z0xjt",
803 "type": "issue.opened",
804 "source": "work",
805 "time": "2026-10-01T18:04:11.482Z",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API806 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'807 "actor": "usr_01kkntcg1eeb98j62xjm7eh09p",
808 "data": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API809 "issue_id": "iss_01m43shrzpfe49x74ga7sj1c6v",
810 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'811 "number": 12,
812 "title": "Greeting should name the caller"
813 }
814 }
815 ],
816 "notes": "Returns 50 events a page. To page back, send the `id` of the last event you have as `before`. `actor` is a user id, and `data` depends on `type`."
817 },
818 "list_issues": {
819 "query": {
820 "state": "open",
821 "label": "feature"
822 },
823 "response": [
824 {
825 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API826 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'827 "number": 12,
828 "title": "Greeting should name the caller",
829 "body": "Take a name from the first argument; fall back to world.",
830 "labels": [
831 "feature"
832 ],
833 "state": "open",
834 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API835 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'836 "author": {
837 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
838 "username": "syntaqx",
839 "kind": "user",
840 "verified": false,
841 "workspaces": []
842 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights843 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API844 "created_at": "2026-10-01T18:04:11.482Z",
845 "updated_at": "2026-10-01T18:04:11.482Z",
846 "closed_at": null,
847 "pull_count": 1,
848 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'849 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API850 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'851 "queued": false,
852 "agent": "claude-code"
853 }
854 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API855 "notes": "Returns at most 100 issues, newest first. `comment_count` counts comments, not events such as \"opened #14 for this\"."
Merge branch 'worktree-agent-ab2e39e11a6493412'856 },
857 "create_issue": {
858 "request": {
859 "title": "Greeting should name the caller",
860 "body": "Take a name from the first argument; fall back to world.",
861 "labels": [
862 "feature"
863 ]
864 },
865 "response": {
866 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API867 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'868 "number": 12,
869 "title": "Greeting should name the caller",
870 "body": "Take a name from the first argument; fall back to world.",
871 "labels": [
872 "feature"
873 ],
874 "state": "open",
875 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API876 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'877 "author": {
878 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
879 "username": "syntaqx",
880 "kind": "user",
881 "verified": false,
882 "workspaces": []
883 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights884 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API885 "created_at": "2026-10-01T18:04:11.482Z",
886 "updated_at": "2026-10-01T18:04:11.482Z",
887 "closed_at": null,
888 "pull_count": 0,
889 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'890 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API891 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'892 "queued": false,
893 "agent": null
894 },
895 "notes": "Labels are lowercased. A label not used before is created."
896 },
897 "get_issue": {
898 "response": {
899 "issue": {
900 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API901 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'902 "number": 12,
903 "title": "Greeting should name the caller",
904 "body": "Take a name from the first argument; fall back to world.",
905 "labels": [
906 "feature"
907 ],
908 "state": "closed",
909 "reason": "completed",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API910 "resolved_by": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'911 "author": {
912 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
913 "username": "syntaqx",
914 "kind": "user",
915 "verified": false,
916 "workspaces": []
917 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights918 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API919 "created_at": "2026-10-01T18:04:11.482Z",
920 "updated_at": "2026-10-01T18:52:17.093Z",
921 "closed_at": "2026-10-01T18:52:17.093Z",
922 "pull_count": 2,
923 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'924 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API925 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'926 "queued": false,
927 "agent": null
928 },
929 "pulls": [
930 {
931 "id": "pr_01m43sjq8tcz5rbm2a7k4d9e6w",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API932 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'933 "number": 13,
934 "issue": 12,
935 "title": "Greeting should name the caller",
936 "body": null,
937 "agent": "claude-code",
938 "runtime": "external",
939 "status": "closed",
940 "fork": {
941 "namespace": "pulls",
942 "name": "pr_01m43sjq8tcz5rbm2a7k4d9e6w"
943 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API944 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'945 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API946 "head_commit": null,
947 "merge_base": null,
948 "merged_by": null,
949 "merged_at": null,
950 "superseded_by": 14,
951 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'952 "files": [],
953 "assignees": [],
954 "reviewers": [],
955 "author": {
956 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
957 "username": "syntaqx",
958 "kind": "user",
959 "verified": false,
960 "workspaces": []
961 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights962 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API963 "created_at": "2026-10-01T18:20:02.117Z",
964 "updated_at": "2026-10-01T18:20:02.117Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'965 },
966 {
967 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API968 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'969 "number": 14,
970 "issue": 12,
971 "title": "Greeting should name the caller",
972 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
973 "agent": "claude-code",
974 "runtime": "external",
975 "status": "merged",
976 "fork": {
977 "namespace": "pulls",
978 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
979 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API980 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'981 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API982 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
983 "merge_base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
984 "merged_by": "syntaqx",
985 "merged_at": "2026-10-01T18:52:17.093Z",
986 "superseded_by": null,
987 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'988 "files": [
989 {
990 "path": "src/main.rs",
991 "additions": 6,
992 "deletions": 2
993 }
994 ],
995 "assignees": [],
996 "reviewers": [
997 "ana"
998 ],
999 "author": {
1000 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1001 "username": "syntaqx",
1002 "kind": "user",
1003 "verified": false,
1004 "workspaces": []
1005 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1006 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1007 "created_at": "2026-10-01T18:20:02.117Z",
1008 "updated_at": "2026-10-01T18:52:17.093Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1009 }
1010 ],
1011 "comments": [
1012 {
1013 "id": "cmt_01m43sr2b7d5f0j6k3n8p1q4v9",
1014 "kind": "event",
1015 "author": {
1016 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1017 "username": "syntaqx",
1018 "kind": "user",
1019 "verified": false,
1020 "workspaces": []
1021 },
1022 "body": "opened #14 for this",
1023 "path": null,
1024 "line": null,
1025 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1026 "created_at": "2026-10-01T18:20:02.141Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1027 }
1028 ]
1029 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1030 "notes": "A closed issue says how it was closed: `reason` is `completed` or `not_planned`, and `resolved_by` is the number of the pull request whose merge closed it. Each pull request made for it is listed; one closed because another was merged has `superseded_by` set."
Merge branch 'worktree-agent-ab2e39e11a6493412'1031 },
1032 "update_issue": {
1033 "request": {
1034 "labels": [
1035 "feature",
1036 "good first issue"
1037 ],
1038 "assignees": [
1039 "syntaqx"
1040 ]
1041 },
1042 "response": {
1043 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1044 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1045 "number": 12,
1046 "title": "Greeting should name the caller",
1047 "body": "Take a name from the first argument; fall back to world.",
1048 "labels": [
1049 "feature",
1050 "good first issue"
1051 ],
1052 "state": "open",
1053 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1054 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1055 "author": {
1056 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1057 "username": "syntaqx",
1058 "kind": "user",
1059 "verified": false,
1060 "workspaces": []
1061 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1062 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1063 "created_at": "2026-10-01T18:04:11.482Z",
1064 "updated_at": "2026-10-01T18:09:47.305Z",
1065 "closed_at": null,
1066 "pull_count": 0,
1067 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1068 "assignees": [
1069 "syntaqx"
1070 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1071 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1072 "queued": false,
1073 "agent": null
1074 }
1075 },
1076 "close_issue": {
1077 "request": {
1078 "reason": "not_planned"
1079 },
1080 "response": {
1081 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1082 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1083 "number": 12,
1084 "title": "Greeting should name the caller",
1085 "body": "Take a name from the first argument; fall back to world.",
1086 "labels": [
1087 "feature"
1088 ],
1089 "state": "closed",
1090 "reason": "not_planned",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1091 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1092 "author": {
1093 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1094 "username": "syntaqx",
1095 "kind": "user",
1096 "verified": false,
1097 "workspaces": []
1098 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1099 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1100 "created_at": "2026-10-01T18:04:11.482Z",
1101 "updated_at": "2026-10-01T19:30:00.214Z",
1102 "closed_at": "2026-10-01T19:30:00.214Z",
1103 "pull_count": 0,
1104 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1105 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1106 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1107 "queued": false,
1108 "agent": null
1109 }
1110 },
1111 "reopen_issue": {
1112 "response": {
1113 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1114 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1115 "number": 12,
1116 "title": "Greeting should name the caller",
1117 "body": "Take a name from the first argument; fall back to world.",
1118 "labels": [
1119 "feature"
1120 ],
1121 "state": "open",
1122 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1123 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1124 "author": {
1125 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1126 "username": "syntaqx",
1127 "kind": "user",
1128 "verified": false,
1129 "workspaces": []
1130 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1131 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1132 "created_at": "2026-10-01T18:04:11.482Z",
1133 "updated_at": "2026-10-01T19:41:52.830Z",
1134 "closed_at": null,
1135 "pull_count": 0,
1136 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1137 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1138 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1139 "queued": false,
1140 "agent": null
1141 }
1142 },
1143 "assign_issue": {
1144 "request": {
1145 "instructions": "Keep the change to src/main.rs."
1146 },
1147 "response": {
1148 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1149 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1150 "number": 14,
1151 "issue": 12,
1152 "title": "Greeting should name the caller",
1153 "body": null,
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent1154 "agent": "g1t",
Merge branch 'worktree-agent-ab2e39e11a6493412'1155 "runtime": "hosted",
1156 "status": "draft",
1157 "fork": {
1158 "namespace": "pulls",
1159 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1160 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1161 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1162 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1163 "head_commit": null,
1164 "merge_base": null,
1165 "merged_by": null,
1166 "merged_at": null,
1167 "superseded_by": null,
1168 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1169 "files": [],
1170 "assignees": [],
1171 "reviewers": [],
1172 "author": {
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1173 "id": "usr_g1t_agent",
1174 "username": "g1t",
1175 "kind": "agent",
1176 "verified": false,
1177 "workspaces": []
1178 },
1179 "requested_by": {
Merge branch 'worktree-agent-ab2e39e11a6493412'1180 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1181 "username": "syntaqx",
1182 "kind": "user",
1183 "verified": false,
1184 "workspaces": []
1185 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1186 "created_at": "2026-10-01T18:20:02.117Z",
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1187 "updated_at": "2026-10-01T18:20:02.117Z",
1188 "confidence": null
Merge branch 'worktree-agent-ab2e39e11a6493412'1189 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1190 "notes": "The response is the pull request g1t opened, still a draft. g1t is its `author` and you are its `requested_by`: you may manage it as if you had opened it, and cannot approve it yourself. Follow it with [get a pull request](/reference/api/pull-requests/get-pull-request/): `lifecycle` says what the agent is doing."
Merge branch 'worktree-agent-ab2e39e11a6493412'1191 },
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1192 "delegate": {
1193 "request": {
1194 "title": "Retry webhooks with exponential backoff",
Fast pages, required checks on the branch, self-hosted runners, honest incidents1195 "body": "Deliveries that fail are dropped today. Retry them with exponential backoff, up to six times, then mark the delivery failed.\n\n## Definition of done\n\n- A delivery that fails is retried after 1, 2, 4, 8, 16 and 32 seconds.\n- After the sixth failure it is marked failed and shows on the webhook's page."
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1196 },
1197 "response": {
1198 "issue": {
1199 "id": "iss_01m4a2c8v1t7k3q9x5n0r2w6yd",
1200 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
1201 "number": 41,
1202 "title": "Retry webhooks with exponential backoff",
1203 "body": "Deliveries that fail are dropped today. Retry them with exponential backoff, up to six times, then mark the delivery failed.",
1204 "labels": [],
1205 "state": "open",
1206 "reason": null,
1207 "resolved_by": null,
1208 "author": {
1209 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1210 "username": "syntaqx",
1211 "kind": "user",
1212 "verified": false,
1213 "workspaces": []
1214 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1215 "requested_by": null,
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1216 "created_at": "2026-10-05T14:02:11.204Z",
1217 "updated_at": "2026-10-05T14:02:11.204Z",
1218 "closed_at": null,
1219 "pull_count": 1,
1220 "comment_count": 0,
1221 "assignees": [],
1222 "blocked_by": [],
1223 "queued": false,
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent1224 "agent": "g1t"
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1225 },
1226 "pull": {
1227 "id": "pr_01m4a2c9b6e0h4m8q2t6x0a4d8",
1228 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
1229 "number": 42,
1230 "issue": 41,
1231 "title": "Retry webhooks with exponential backoff",
1232 "body": null,
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent1233 "agent": "g1t",
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1234 "runtime": "hosted",
1235 "status": "draft",
1236 "fork": {
1237 "namespace": "pulls",
1238 "name": "pr_01m4a2c9b6e0h4m8q2t6x0a4d8"
1239 },
1240 "fork_repo_id": "rep_01m4a2c9d2g6k0n4r8v2z6c0f4",
1241 "branch": null,
1242 "head_commit": null,
1243 "merge_base": null,
1244 "merged_by": null,
1245 "merged_at": null,
1246 "superseded_by": null,
1247 "check_status": null,
1248 "files": [],
1249 "assignees": [],
1250 "reviewers": [],
1251 "author": {
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1252 "id": "usr_g1t_agent",
1253 "username": "g1t",
1254 "kind": "agent",
1255 "verified": false,
1256 "workspaces": []
1257 },
1258 "requested_by": {
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1259 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1260 "username": "syntaqx",
1261 "kind": "user",
1262 "verified": false,
1263 "workspaces": []
1264 },
1265 "created_at": "2026-10-05T14:02:12.880Z",
1266 "updated_at": "2026-10-05T14:02:12.880Z",
1267 "confidence": null
1268 },
1269 "agent": {
1270 "status": "started",
1271 "code": null,
1272 "message": null,
1273 "fix_url": null
1274 }
1275 },
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent1276 "notes": "The issue is opened whatever becomes of the agent. When the workspace's plan does not let it start, `pull` is null and `agent` says why and where to fix it, for example `{ \"status\": \"not_started\", \"code\": \"not_paid\", \"message\": \"Agents need a paid workspace. Start the $20 plan or try it with $5 of free usage after a card check: /acme/-/billing\", \"fix_url\": \"https://g1t.sh/acme/-/billing\" }`. With every agent slot busy, `status` is `queued` and it starts by itself when one frees up. See [putting an agent on something](/guides/working-with-g1t/#put-an-agent-on-it-in-one-step)."
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1277 },
Merge branch 'worktree-agent-ab2e39e11a6493412'1278 "add_comment": {
1279 "request": {
1280 "body": "Should an empty name fall back to \"world\"?"
1281 },
1282 "response": {
1283 "id": "cmt_01m43sv4c8e2g6j0m4q8t2x6a1",
1284 "kind": "comment",
1285 "author": {
1286 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1287 "username": "syntaqx",
1288 "kind": "user",
1289 "verified": true,
1290 "workspaces": [
1291 {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look1292 "slug": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'1293 "role": "owner"
1294 }
1295 ]
1296 },
1297 "body": "Should an empty name fall back to \"world\"?",
1298 "path": null,
1299 "line": null,
1300 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1301 "created_at": "2026-10-01T18:12:30.551Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1302 }
1303 },
1304 "list_labels": {
1305 "response": [
1306 "bug",
1307 "feature",
1308 "docs",
1309 "chore",
1310 "question",
1311 "good first issue"
1312 ],
1313 "notes": "The five default labels come first, then the others used on the repository's issues, alphabetically."
1314 },
1315 "plan_work": {
1316 "request": {
1317 "brief": "Greet people by name, from the command line and the web page."
1318 },
1319 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1320 "plan_id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
Merge branch 'worktree-agent-ab2e39e11a6493412'1321 }
1322 },
1323 "get_plan": {
1324 "params": {
1325 "plan": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
1326 },
1327 "response": {
1328 "id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1329 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1330 "brief": "Greet people by name, from the command line and the web page.",
1331 "status": "ready",
1332 "summary": "Name parsing first, then the two places that print the greeting.",
1333 "issues": [
1334 {
1335 "title": "Greeting should name the caller",
1336 "body": "Accept an optional name in `greet()` and use it.",
1337 "labels": [
1338 "feature"
1339 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1340 "done": [
1341 "`greet` prints \"Hello, ana!\" when given \"ana\", and \"Hello, world!\" with no argument."
Merge branch 'worktree-agent-ab2e39e11a6493412'1342 ],
1343 "files": [
1344 "src/greet.rs"
1345 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1346 "depends_on": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1347 "number": null
1348 },
1349 {
1350 "title": "Show the caller's name on the web page",
1351 "body": "Read `?name=` and pass it to `greet()`.",
1352 "labels": [
1353 "feature"
1354 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1355 "done": [
1356 "The page at / shows the name given in ?name=, escaped."
Merge branch 'worktree-agent-ab2e39e11a6493412'1357 ],
1358 "files": [
1359 "src/web.rs"
1360 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1361 "depends_on": [
Merge branch 'worktree-agent-ab2e39e11a6493412'1362 1
1363 ],
1364 "number": null
1365 }
1366 ],
1367 "error": null,
1368 "author": {
1369 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1370 "username": "syntaqx",
1371 "kind": "user",
1372 "verified": false,
1373 "workspaces": []
1374 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1375 "created_at": "2026-10-01T17:58:40.006Z",
1376 "finished_at": "2026-10-01T18:01:12.774Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1377 "progress": [],
1378 "exchanges": []
1379 },
1380 "notes": "A plan still `planning` after 20 minutes is reported as `failed`. `progress` follows each issue once the plan is applied."
1381 },
1382 "apply_plan": {
1383 "params": {
1384 "plan": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
1385 },
1386 "request": {
1387 "assign": true
1388 },
1389 "response": {
1390 "id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1391 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1392 "brief": "Greet people by name, from the command line and the web page.",
1393 "status": "applied",
1394 "summary": "Name parsing first, then the two places that print the greeting.",
1395 "issues": [
1396 {
1397 "title": "Greeting should name the caller",
1398 "body": "Accept an optional name in `greet()` and use it.",
1399 "labels": [
1400 "feature"
1401 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1402 "done": [
1403 "`greet` prints \"Hello, ana!\" when given \"ana\", and \"Hello, world!\" with no argument."
Merge branch 'worktree-agent-ab2e39e11a6493412'1404 ],
1405 "files": [
1406 "src/greet.rs"
1407 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1408 "depends_on": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1409 "number": 12
1410 },
1411 {
1412 "title": "Show the caller's name on the web page",
1413 "body": "Read `?name=` and pass it to `greet()`.",
1414 "labels": [
1415 "feature"
1416 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1417 "done": [
1418 "The page at / shows the name given in ?name=, escaped."
Merge branch 'worktree-agent-ab2e39e11a6493412'1419 ],
1420 "files": [
1421 "src/web.rs"
1422 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1423 "depends_on": [
Merge branch 'worktree-agent-ab2e39e11a6493412'1424 1
1425 ],
1426 "number": 13
1427 }
1428 ],
1429 "error": null,
1430 "author": {
1431 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1432 "username": "syntaqx",
1433 "kind": "user",
1434 "verified": false,
1435 "workspaces": []
1436 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1437 "created_at": "2026-10-01T17:58:40.006Z",
1438 "finished_at": "2026-10-01T18:01:12.774Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1439 "progress": [],
1440 "exchanges": []
1441 },
1442 "notes": "Each opened issue's `number` is filled in. Issues left out with `keep` stay `null`."
1443 },
1444 "list_pull_requests": {
1445 "query": {
1446 "state": "open"
1447 },
1448 "response": [
1449 {
1450 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1451 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1452 "number": 14,
1453 "issue": 12,
1454 "title": "Greeting should name the caller",
1455 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1456 "agent": "claude-code",
1457 "runtime": "external",
1458 "status": "open",
1459 "fork": {
1460 "namespace": "pulls",
1461 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1462 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1463 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1464 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1465 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1466 "merge_base": null,
1467 "merged_by": null,
1468 "merged_at": null,
1469 "superseded_by": null,
1470 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1471 "files": [
1472 {
1473 "path": "src/main.rs",
1474 "additions": 6,
1475 "deletions": 2
1476 }
1477 ],
1478 "assignees": [],
1479 "reviewers": [
1480 "ana"
1481 ],
1482 "author": {
1483 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1484 "username": "syntaqx",
1485 "kind": "user",
1486 "verified": false,
1487 "workspaces": []
1488 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1489 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1490 "created_at": "2026-10-01T18:20:02.117Z",
1491 "updated_at": "2026-10-01T18:35:44.902Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1492 }
1493 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1494 "notes": "Returns at most 100 pull requests, newest first. `check_status` is `queued`, `running`, `passed`, `failed`, `errored`, or `null` when no checks have run against the head."
Merge branch 'worktree-agent-ab2e39e11a6493412'1495 },
1496 "create_pull_request": {
1497 "request": {
1498 "issue": 12,
1499 "agent": "claude-code"
1500 },
1501 "response": {
1502 "pull": {
1503 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1504 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1505 "number": 14,
1506 "issue": 12,
1507 "title": "Greeting should name the caller",
1508 "body": null,
1509 "agent": "claude-code",
1510 "runtime": "external",
1511 "status": "draft",
1512 "fork": {
1513 "namespace": "pulls",
1514 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1515 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1516 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1517 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1518 "head_commit": null,
1519 "merge_base": null,
1520 "merged_by": null,
1521 "merged_at": null,
1522 "superseded_by": null,
1523 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1524 "files": [],
1525 "assignees": [],
1526 "reviewers": [],
1527 "author": {
1528 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1529 "username": "syntaqx",
1530 "kind": "user",
1531 "verified": false,
1532 "workspaces": []
1533 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1534 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1535 "created_at": "2026-10-01T18:20:02.117Z",
1536 "updated_at": "2026-10-01T18:20:02.117Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1537 },
1538 "git": {
1539 "remote": "https://g1t.sh/pulls/pr_01m43smh3vexsr5pmp60qwv0vs.git",
1540 "username": "syntaqx",
1541 "password": "your g1t access token"
1542 }
1543 },
1544 "notes": "`title` defaults to the issue's title, and is required when there is no `issue`. Push to `git.remote` with your username and an access token as the password.\n\nSend `branch` to open the pull request from a branch already pushed to the repository. No fork is made, `fork` is `null`, `git.remote` is the repository itself, and the pull request is `open` at once."
1545 },
1546 "get_pull_request": {
1547 "response": {
1548 "pull": {
1549 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1550 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1551 "number": 14,
1552 "issue": 12,
1553 "title": "Greeting should name the caller",
1554 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1555 "agent": "claude-code",
1556 "runtime": "external",
1557 "status": "open",
1558 "fork": {
1559 "namespace": "pulls",
1560 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1561 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1562 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1563 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1564 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1565 "merge_base": null,
1566 "merged_by": null,
1567 "merged_at": null,
1568 "superseded_by": null,
1569 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1570 "files": [
1571 {
1572 "path": "src/main.rs",
1573 "additions": 6,
1574 "deletions": 2
1575 }
1576 ],
1577 "assignees": [],
1578 "reviewers": [
1579 "ana"
1580 ],
1581 "author": {
1582 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1583 "username": "syntaqx",
1584 "kind": "user",
1585 "verified": false,
1586 "workspaces": []
1587 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1588 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1589 "created_at": "2026-10-01T18:20:02.117Z",
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1590 "updated_at": "2026-10-01T18:35:44.902Z",
1591 "confidence": null
Merge branch 'worktree-agent-ab2e39e11a6493412'1592 },
1593 "issue": {
1594 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1595 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1596 "number": 12,
1597 "title": "Greeting should name the caller",
1598 "body": "Take a name from the first argument; fall back to world.",
1599 "labels": [
1600 "feature"
1601 ],
1602 "state": "open",
1603 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1604 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1605 "author": {
1606 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1607 "username": "syntaqx",
1608 "kind": "user",
1609 "verified": false,
1610 "workspaces": []
1611 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1612 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1613 "created_at": "2026-10-01T18:04:11.482Z",
1614 "updated_at": "2026-10-01T18:20:02.117Z",
1615 "closed_at": null,
1616 "pull_count": 1,
1617 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1618 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1619 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1620 "queued": false,
1621 "agent": "claude-code"
1622 },
1623 "comments": [
1624 {
1625 "id": "cmt_01m43st6d0f4h8k2n6r0v4z8c2",
1626 "kind": "event",
1627 "author": {
1628 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1629 "username": "syntaqx",
1630 "kind": "user",
1631 "verified": false,
1632 "workspaces": []
1633 },
1634 "body": "marked this ready for review",
1635 "path": null,
1636 "line": null,
1637 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1638 "created_at": "2026-10-01T18:33:10.420Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1639 }
1640 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1641 "checks": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1642 "overlaps": [],
1643 "behind": false,
1644 "review_pending": false,
1645 "lifecycle": null,
1646 "landing": false,
1647 "stalled": null,
1648 "messages": [
1649 {
1650 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1651 "author": "syntaqx",
1652 "body": "Keep \"world\" as the default when no name is given.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1653 "created_at": "2026-10-01T18:25:00.310Z",
1654 "delivered_at": "2026-10-01T18:25:31.007Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1655 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1656 "from_number": null,
1657 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1658 "answer": null,
1659 "declined": false
1660 }
1661 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1662 "statuses": [
1663 {
1664 "context": "CI / pull_request",
1665 "state": "success",
1666 "description": "CI passed",
1667 "target_url": "https://g1t.sh/syntaqx/hello/actions/runs/run_01m43sw8e2g6j0m4q8t2x6a0c4",
1668 "updated_at": "2026-10-01T18:35:44.902Z"
1669 }
1670 ],
1671 "required_checks": [
1672 {
1673 "name": "CI",
1674 "state": "success",
1675 "description": "CI passed",
1676 "target_url": "https://g1t.sh/syntaqx/hello/actions/runs/run_01m43sw8e2g6j0m4q8t2x6a0c4"
1677 }
1678 ]
Merge branch 'worktree-agent-ab2e39e11a6493412'1679 },
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent1680 "notes": "| Field | |\n| --- | --- |\n| `pull.files` | The files it changes, with lines added and removed. |\n| `statuses` | Its checks: what each workflow run (or another tool, such as a deployment) reported on its head, as `pending`, `success`, `failure` or `error`, with a link to the run. |\n| `required_checks` | Each check the default branch requires (see [`update_repo_settings`](/reference/api/repositories/update-repo-settings/)), as it stands on the head: `success`, `failure`, `pending`, or `expected` when nothing has reported it yet. It merges only once all are `success`. |\n| `checks` | Set when the merge queue took it out, with why in `error`. Older pull requests may show a run of commands from their issue here, from before checks were workflows. |\n| `overlaps` | Other pull requests in progress that change the same files. |\n| `behind` | Whether the default branch has moved since it was made. |\n| `landing` | Whether it is being brought up to date to land. |\n| `lifecycle` | For a pull request g1t is seeing through: its stage, such as `working`, `checking`, `reviewing` or `needs_you`. |\n| `comments` | Comments, reviews and events, with `path`, `line` and `verdict`. |\n| `messages` | Messages sent to the agent working on it. |\n\n| `mergeable` | Whether it merges cleanly into its target: `clean`, `conflicting`, `checking` (being worked out) or `unknown`. Worked out ahead of time whenever it or its target moves. |\n| `conflicts` | When `mergeable` is `conflicting`, the files that conflict. Resolve them by merging the target in, or have g1t do it. |\n| `earlier_checks` | Earlier records like `checks`, newest first. |\n\nChecks are the repository's workflows: they run on `pull_request` events when it is opened, marked ready and pushed to. Read why one failed with [`get_workflow_run`](/reference/api/actions/get-workflow-run/) and [`get_job_logs`](/reference/api/actions/get-job-logs/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'1681 },
1682 "get_pull_request_changes": {
1683 "response": {
1684 "base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1685 "head": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1686 "files": [
1687 {
1688 "path": "src/main.rs",
1689 "status": "modified",
1690 "additions": 1,
1691 "deletions": 1,
1692 "binary": false,
1693 "hunks": [
1694 {
1695 "lines": [
1696 {
1697 "kind": "context",
1698 "old": 3,
1699 "new": 3,
1700 "text": "fn main() {"
1701 },
1702 {
1703 "kind": "delete",
1704 "old": 4,
1705 "new": null,
1706 "text": " println!(\"Hello, world!\");"
1707 },
1708 {
1709 "kind": "add",
1710 "old": null,
1711 "new": 4,
1712 "text": " println!(\"Hello, {}!\", std::env::args().nth(1).unwrap_or(\"world\".into()));"
1713 },
1714 {
1715 "kind": "context",
1716 "old": 5,
1717 "new": 5,
1718 "text": "}"
1719 }
1720 ]
1721 }
1722 ]
1723 }
1724 ],
1725 "truncated": false
1726 },
1727 "notes": "A file's `status` is `added`, `modified` or `deleted`. A binary file has no `hunks`. In a line, `old` is `null` when it was added and `new` is `null` when it was deleted."
1728 },
1729 "mark_pull_request_ready": {
1730 "request": {
1731 "summary": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\"."
1732 },
1733 "response": {
1734 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1735 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1736 "number": 14,
1737 "issue": 12,
1738 "title": "Greeting should name the caller",
1739 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1740 "agent": "claude-code",
1741 "runtime": "external",
1742 "status": "open",
1743 "fork": {
1744 "namespace": "pulls",
1745 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1746 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1747 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1748 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1749 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1750 "merge_base": null,
1751 "merged_by": null,
1752 "merged_at": null,
1753 "superseded_by": null,
1754 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1755 "files": [
1756 {
1757 "path": "src/main.rs",
1758 "additions": 6,
1759 "deletions": 2
1760 }
1761 ],
1762 "assignees": [],
1763 "reviewers": [],
1764 "author": {
1765 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1766 "username": "syntaqx",
1767 "kind": "user",
1768 "verified": false,
1769 "workspaces": []
1770 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1771 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1772 "created_at": "2026-10-01T18:20:02.117Z",
1773 "updated_at": "2026-10-01T18:33:10.398Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1774 }
1775 },
1776 "review_pull_request": {
1777 "request": {
1778 "verdict": "request_changes",
1779 "body": "Trim the name before using it."
1780 },
1781 "response": {
1782 "id": "cmt_01m43sx9f3h7k1n5r9v3z7d1g5",
1783 "kind": "comment",
1784 "author": {
1785 "id": "usr_01kz9d3f7h1k5n9r3v7z1c5g9b",
1786 "username": "ana",
1787 "kind": "user",
1788 "verified": true,
1789 "workspaces": [
1790 {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look1791 "slug": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'1792 "role": "member"
1793 }
1794 ]
1795 },
1796 "body": "Trim the name before using it.",
1797 "path": null,
1798 "line": null,
1799 "verdict": "request_changes",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1800 "created_at": "2026-10-01T18:40:05.019Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1801 }
1802 },
1803 "merge_pull_request": {
1804 "request": {
1805 "keep_issue_open": false
1806 },
1807 "response": {
1808 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1809 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1810 "number": 14,
1811 "issue": 12,
1812 "title": "Greeting should name the caller",
1813 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1814 "agent": "claude-code",
1815 "runtime": "external",
1816 "status": "merged",
1817 "fork": {
1818 "namespace": "pulls",
1819 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1820 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1821 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1822 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1823 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1824 "merge_base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1825 "merged_by": "syntaqx",
1826 "merged_at": "2026-10-01T18:52:17.093Z",
1827 "superseded_by": null,
1828 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1829 "files": [
1830 {
1831 "path": "src/main.rs",
1832 "additions": 6,
1833 "deletions": 2
1834 }
1835 ],
1836 "assignees": [],
1837 "reviewers": [
1838 "ana"
1839 ],
1840 "author": {
1841 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1842 "username": "syntaqx",
1843 "kind": "user",
1844 "verified": false,
1845 "workspaces": []
1846 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1847 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1848 "created_at": "2026-10-01T18:20:02.117Z",
1849 "updated_at": "2026-10-01T18:52:17.093Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1850 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1851 "notes": "A draft, or one whose checks have not passed, answers `409`. A pull request still `open` in the response has not landed yet: `landing` is true on it while it is brought up to date, and [get the merge queue](/reference/api/pull-requests/get-merge-queue/) shows it waiting in the [merge queue](/guides/merge-queue/). Merging records the pull request in the issue's `resolved_by` and sets `superseded_by` on the pull requests it closes."
Merge branch 'worktree-agent-ab2e39e11a6493412'1852 },
1853 "close_pull_request": {
1854 "response": {
1855 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1856 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1857 "number": 14,
1858 "issue": 12,
1859 "title": "Greeting should name the caller",
1860 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1861 "agent": "claude-code",
1862 "runtime": "external",
1863 "status": "closed",
1864 "fork": {
1865 "namespace": "pulls",
1866 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1867 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1868 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1869 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1870 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1871 "merge_base": null,
1872 "merged_by": null,
1873 "merged_at": null,
1874 "superseded_by": null,
1875 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1876 "files": [
1877 {
1878 "path": "src/main.rs",
1879 "additions": 6,
1880 "deletions": 2
1881 }
1882 ],
1883 "assignees": [],
1884 "reviewers": [],
1885 "author": {
1886 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1887 "username": "syntaqx",
1888 "kind": "user",
1889 "verified": false,
1890 "workspaces": []
1891 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights1892 "requested_by": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1893 "created_at": "2026-10-01T18:20:02.117Z",
1894 "updated_at": "2026-10-01T19:02:48.760Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1895 }
1896 },
1897 "get_merge_queue": {
1898 "response": {
1899 "enabled": true,
1900 "active": [
1901 {
1902 "id": "qen_01m43rn0qsft1tpap1awkewzbb",
1903 "number": 14,
1904 "title": "Greeting should name the caller",
1905 "agent": "claude-code",
1906 "state": "testing",
1907 "ahead": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1908 "base_commit": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1909 "combined_commit": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1910 "error": null,
1911 "results": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1912 "enqueued_by": "syntaqx",
1913 "created_at": "2026-10-04T15:31:20.441Z",
1914 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'1915 }
1916 ],
1917 "recent": [
1918 {
1919 "id": "qen_01m43khqjmeb5a1magayrnk63z",
1920 "number": 11,
1921 "title": "Fix trailing newline in greeting",
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent1922 "agent": "g1t",
Merge branch 'worktree-agent-ab2e39e11a6493412'1923 "state": "landed",
1924 "ahead": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1925 "base_commit": "4b1d7e9c2a5f8e3d6c0b9a7e5d3c1b8a6f4e2d0c",
1926 "combined_commit": "c3e8a1f6d4b2097e5c3a1f8d6b4e2c0a9f7d5b3e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1927 "error": null,
1928 "results": [
1929 {
1930 "command": "cargo test",
1931 "passed": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1932 "exit_code": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1933 "output": "test result: ok. 12 passed; 0 failed\n",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1934 "duration_ms": 48211
Merge branch 'worktree-agent-ab2e39e11a6493412'1935 }
1936 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1937 "enqueued_by": "g1t",
1938 "created_at": "2026-10-04T14:02:09.876Z",
1939 "finished_at": "2026-10-04T14:09:55.102Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1940 }
1941 ]
1942 },
1943 "notes": "An entry's `state` is `waiting`, `testing`, `passed`, `failed`, `landed` or `removed`. `active` is in queue order; `recent` holds at most 20, newest first."
1944 },
1945 "message_agent": {
1946 "request": {
1947 "body": "Keep \"world\" as the default when no name is given."
1948 },
1949 "response": {
1950 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1951 "author": "syntaqx",
1952 "body": "Keep \"world\" as the default when no name is given.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1953 "created_at": "2026-10-01T18:25:00.310Z",
1954 "delivered_at": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1955 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1956 "from_number": null,
1957 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1958 "answer": null,
1959 "declined": false
1960 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1961 "notes": "The response is the message. `delivered_at` is set once the agent has read it."
Merge branch 'worktree-agent-ab2e39e11a6493412'1962 },
1963 "answer_message": {
1964 "params": {
1965 "id": "msg_01m43t66tde8hs2vpxhh3v8tqw"
1966 },
1967 "request": {
1968 "body": "No. greet() keeps its name; only greet_named() is added."
1969 },
1970 "response": {
1971 "id": "msg_01m43t66tde8hs2vpxhh3v8tqw",
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent1972 "author": "g1t",
Merge branch 'worktree-agent-ab2e39e11a6493412'1973 "body": "Are you renaming greet() in src/lib.rs? I need to call it from #16.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1974 "created_at": "2026-10-01T18:58:12.301Z",
1975 "delivered_at": "2026-10-01T18:58:40.117Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1976 "kind": "question",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1977 "from_number": 16,
1978 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1979 "answer": "No. greet() keeps its name; only greet_named() is added.",
1980 "declined": false
1981 },
1982 "notes": "The response is the question or handoff that was answered, with `answer` and `declined` filled in."
1983 },
1984 "take_messages": {
1985 "response": [
1986 {
1987 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1988 "author": "syntaqx",
1989 "body": "Keep \"world\" as the default when no name is given.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1990 "created_at": "2026-10-01T18:25:00.310Z",
1991 "delivered_at": "2026-10-01T18:25:31.007Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1992 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1993 "from_number": null,
1994 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1995 "answer": null,
1996 "declined": false
1997 }
1998 ],
1999 "notes": "Only a g1t agent's token can take messages. They come oldest first, and each is marked delivered."
2000 },
2001 "read_session": {
2002 "query": {
2003 "after": 0
2004 },
2005 "response": [
2006 {
2007 "seq": 1,
2008 "kind": "prompt",
2009 "text": "Make the greeting name the caller (issue #12).",
2010 "tool": null,
2011 "commit": null,
2012 "at": "2026-10-01T18:21:00.004Z"
2013 },
2014 {
2015 "seq": 2,
2016 "kind": "tool_call",
2017 "text": "cargo test",
2018 "tool": "bash",
2019 "commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2020 "at": "2026-10-01T18:30:12.660Z"
2021 }
2022 ]
2023 },
2024 "record_session": {
2025 "request": {
2026 "entries": [
2027 {
2028 "kind": "message",
2029 "text": "Reading src/main.rs."
2030 },
2031 {
2032 "kind": "tool_call",
2033 "text": "cargo test",
2034 "tool": "bash"
2035 }
2036 ]
2037 },
2038 "response": {
2039 "count": 2
2040 },
2041 "notes": "Up to 200 entries can be appended per request. Each is recorded against the pull request's head commit at the time. See [sessions and why-blame](/guides/why-blame/)."
2042 },
2043 "list_workflows": {
2044 "response": [
2045 {
2046 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
2047 "path": ".g1t/workflows/ci.yml",
2048 "name": "CI",
2049 "events": [
2050 "push",
2051 "pull_request",
2052 "workflow_dispatch"
2053 ],
2054 "state": "active",
2055 "error": null,
2056 "notes": [
2057 {
2058 "severity": "unsupported",
2059 "job": "test",
2060 "message": "`services` containers (such as a database) are not started on g1t yet."
2061 }
2062 ],
2063 "dispatch": {
2064 "debug": {
2065 "description": "Verbose logs",
2066 "type": "boolean",
2067 "default": false
2068 }
2069 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2070 "last_run": {
Merge branch 'worktree-agent-ab2e39e11a6493412'2071 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2072 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2073 "path": ".g1t/workflows/ci.yml",
2074 "name": "CI",
2075 "title": "Greeting should name the caller",
2076 "number": 12,
2077 "attempt": 1,
2078 "event": "push",
2079 "ref": "refs/heads/main",
2080 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2081 "pull": null,
2082 "status": "completed",
2083 "conclusion": "success",
2084 "error": null,
2085 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2086 "created_at": "2026-10-04T15:42:07.318Z",
2087 "started_at": "2026-10-04T15:42:09.020Z",
2088 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2089 }
2090 },
2091 {
2092 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2093 "path": ".g1t/workflows/nightly.yml",
2094 "name": "Nightly",
2095 "events": [
2096 "schedule"
2097 ],
2098 "state": "disabled",
2099 "error": null,
2100 "notes": [],
2101 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2102 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2103 }
2104 ],
2105 "notes": "`state` is `active` or `disabled`. `dispatch` holds the `workflow_dispatch` inputs, or is `null` when the workflow cannot be run by hand. See [GitHub Actions](/guides/actions/)."
2106 },
2107 "list_workflow_runs": {
2108 "query": {
2109 "workflow": "ci.yml",
2110 "branch": "main",
2111 "per_page": 20
2112 },
2113 "response": [
2114 {
2115 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2116 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2117 "path": ".g1t/workflows/ci.yml",
2118 "name": "CI",
2119 "title": "Greeting should name the caller",
2120 "number": 12,
2121 "attempt": 1,
2122 "event": "push",
2123 "ref": "refs/heads/main",
2124 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2125 "pull": null,
2126 "status": "completed",
2127 "conclusion": "success",
2128 "error": null,
2129 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2130 "created_at": "2026-10-04T15:42:07.318Z",
2131 "started_at": "2026-10-04T15:42:09.020Z",
2132 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2133 }
2134 ],
2135 "notes": "A run's `status` is `queued`, `pending` (waiting for its concurrency group), `in_progress` or `completed`; `conclusion` is set once it completes."
2136 },
2137 "list_runs_of_workflow": {
2138 "params": {
2139 "workflow": "ci.yml"
2140 },
2141 "query": {
2142 "branch": "main",
2143 "per_page": 20
2144 },
2145 "response": [
2146 {
2147 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2148 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2149 "path": ".g1t/workflows/ci.yml",
2150 "name": "CI",
2151 "title": "Greeting should name the caller",
2152 "number": 12,
2153 "attempt": 1,
2154 "event": "push",
2155 "ref": "refs/heads/main",
2156 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2157 "pull": null,
2158 "status": "completed",
2159 "conclusion": "success",
2160 "error": null,
2161 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2162 "created_at": "2026-10-04T15:42:07.318Z",
2163 "started_at": "2026-10-04T15:42:09.020Z",
2164 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2165 }
2166 ]
2167 },
2168 "get_workflow_run": {
2169 "params": {
2170 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2171 },
2172 "response": {
2173 "run": {
2174 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2175 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2176 "path": ".g1t/workflows/ci.yml",
2177 "name": "CI",
2178 "title": "Greeting should name the caller",
2179 "number": 12,
2180 "attempt": 1,
2181 "event": "push",
2182 "ref": "refs/heads/main",
2183 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2184 "pull": null,
2185 "status": "completed",
2186 "conclusion": "failure",
2187 "error": null,
2188 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2189 "created_at": "2026-10-04T15:42:07.318Z",
2190 "started_at": "2026-10-04T15:42:09.020Z",
2191 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2192 },
2193 "jobs": [
2194 {
2195 "id": "job_01kpx7b3d0e4f8g2h6j0k4m8ns",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2196 "run_id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Merge branch 'worktree-agent-ab2e39e11a6493412'2197 "key": "test",
2198 "name": "test",
2199 "needs": [],
2200 "status": "completed",
2201 "conclusion": "failure",
2202 "steps": [
2203 {
2204 "number": 1,
2205 "name": "Run actions/checkout@v4",
2206 "status": "completed",
2207 "conclusion": "success",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2208 "started_at": "2026-10-04T15:42:10.101Z",
2209 "finished_at": "2026-10-04T15:42:12.433Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2210 },
2211 {
2212 "number": 2,
2213 "name": "Run cargo test",
2214 "status": "completed",
2215 "conclusion": "failure",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2216 "started_at": "2026-10-04T15:42:12.440Z",
2217 "finished_at": "2026-10-04T15:44:30.902Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2218 }
2219 ],
2220 "annotations": [
2221 {
2222 "level": "error",
2223 "message": "assertion failed: greeting names the caller",
2224 "title": "greet",
2225 "file": "src/main.rs",
2226 "line": 41
2227 }
2228 ],
2229 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2230 "started_at": "2026-10-04T15:42:09.020Z",
2231 "finished_at": "2026-10-04T15:44:31.002Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2232 },
2233 {
2234 "id": "job_01kpx7b3d0e4f8g2h6j0k4m8nt",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2235 "run_id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Merge branch 'worktree-agent-ab2e39e11a6493412'2236 "key": "deploy",
2237 "name": "deploy",
2238 "needs": [
2239 "test"
2240 ],
2241 "status": "completed",
2242 "conclusion": "skipped",
2243 "steps": [],
2244 "annotations": [],
2245 "reason": "A job it needs did not succeed.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2246 "started_at": null,
2247 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2248 }
2249 ],
2250 "notes": [
2251 {
2252 "severity": "unsupported",
2253 "job": "test",
2254 "message": "`services` containers (such as a database) are not started on g1t yet."
2255 }
2256 ]
2257 }
2258 },
2259 "get_job_logs": {
2260 "params": {
2261 "job": "job_01kpx7b3d0e4f8g2h6j0k4m8ns"
2262 },
2263 "query": {
2264 "after": 0
2265 },
2266 "response": {
2267 "chunks": [
2268 {
2269 "seq": 1,
2270 "step": 0,
2271 "text": "Preparing the sandbox\n"
2272 },
2273 {
2274 "seq": 2,
2275 "step": 2,
2276 "text": "> cargo test\ntest greet ... FAILED\n"
2277 }
2278 ],
2279 "done": true
2280 },
2281 "notes": "Returns at most 500 chunks. Step 0 is the job's setup. While `done` is false, call again with the last `seq` as `after`."
2282 },
2283 "dispatch_workflow": {
2284 "params": {
2285 "workflow": "ci.yml"
2286 },
2287 "request": {
2288 "ref": "main",
2289 "inputs": {
2290 "debug": true
2291 }
2292 },
2293 "response": {
2294 "id": "run_01kpx8d4e7f0g3h6j9k2m5n8pq",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2295 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2296 "path": ".g1t/workflows/ci.yml",
2297 "name": "CI",
2298 "title": "CI run by syntaqx",
2299 "number": 13,
2300 "attempt": 1,
2301 "event": "workflow_dispatch",
2302 "ref": "refs/heads/main",
2303 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2304 "pull": null,
2305 "status": "queued",
2306 "conclusion": null,
2307 "error": null,
2308 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2309 "created_at": "2026-10-04T16:30:00.512Z",
2310 "started_at": null,
2311 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2312 }
2313 },
2314 "cancel_workflow_run": {
2315 "params": {
2316 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2317 },
2318 "response": {
2319 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2320 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2321 "path": ".g1t/workflows/ci.yml",
2322 "name": "CI",
2323 "title": "Greeting should name the caller",
2324 "number": 12,
2325 "attempt": 1,
2326 "event": "push",
2327 "ref": "refs/heads/main",
2328 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2329 "pull": null,
2330 "status": "completed",
2331 "conclusion": "cancelled",
2332 "error": null,
2333 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2334 "created_at": "2026-10-04T15:42:07.318Z",
2335 "started_at": "2026-10-04T15:42:09.020Z",
2336 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2337 }
2338 },
2339 "rerun_workflow_run": {
2340 "params": {
2341 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2342 },
2343 "request": {
2344 "failed_only": true
2345 },
2346 "response": {
2347 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2348 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2349 "path": ".g1t/workflows/ci.yml",
2350 "name": "CI",
2351 "title": "Greeting should name the caller",
2352 "number": 12,
2353 "attempt": 2,
2354 "event": "push",
2355 "ref": "refs/heads/main",
2356 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2357 "pull": null,
2358 "status": "queued",
2359 "conclusion": null,
2360 "error": null,
2361 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2362 "created_at": "2026-10-04T15:42:07.318Z",
2363 "started_at": null,
2364 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2365 },
2366 "notes": "The run keeps its id; `attempt` goes up by one."
2367 },
2368 "rerun_failed_jobs": {
2369 "params": {
2370 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2371 },
2372 "response": {
2373 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2374 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2375 "path": ".g1t/workflows/ci.yml",
2376 "name": "CI",
2377 "title": "Greeting should name the caller",
2378 "number": 12,
2379 "attempt": 2,
2380 "event": "push",
2381 "ref": "refs/heads/main",
2382 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2383 "pull": null,
2384 "status": "queued",
2385 "conclusion": null,
2386 "error": null,
2387 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2388 "created_at": "2026-10-04T15:42:07.318Z",
2389 "started_at": null,
2390 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2391 }
2392 },
2393 "update_workflow": {
2394 "params": {
2395 "workflow": "nightly.yml"
2396 },
2397 "request": {
2398 "enabled": false
2399 },
2400 "response": {
2401 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2402 "path": ".g1t/workflows/nightly.yml",
2403 "name": "Nightly",
2404 "events": [
2405 "schedule"
2406 ],
2407 "state": "disabled",
2408 "error": null,
2409 "notes": [],
2410 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2411 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2412 }
2413 },
2414 "enable_workflow": {
2415 "params": {
2416 "workflow": "nightly.yml"
2417 },
2418 "response": {
2419 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2420 "path": ".g1t/workflows/nightly.yml",
2421 "name": "Nightly",
2422 "events": [
2423 "schedule"
2424 ],
2425 "state": "active",
2426 "error": null,
2427 "notes": [],
2428 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2429 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2430 }
2431 },
2432 "disable_workflow": {
2433 "params": {
2434 "workflow": "nightly.yml"
2435 },
2436 "response": {
2437 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2438 "path": ".g1t/workflows/nightly.yml",
2439 "name": "Nightly",
2440 "events": [
2441 "schedule"
2442 ],
2443 "state": "disabled",
2444 "error": null,
2445 "notes": [],
2446 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2447 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2448 }
2449 },
2450 "list_actions_secrets": {
2451 "response": [
2452 {
2453 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ab",
2454 "name": "NPM_TOKEN",
2455 "kind": "secret",
2456 "value": null,
2457 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2458 "updated_at": "2026-10-01T09:12:44.020Z",
2459 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2460 "workflows"
2461 ],
2462 "environments": [],
API reference examples use projects2463 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2464 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2465 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2466 },
2467 {
2468 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2469 "name": "STRIPE_KEY",
2470 "kind": "secret",
2471 "value": null,
API reference examples use projects2472 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2473 "updated_at": "2026-10-04T15:42:07.318Z",
2474 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2475 "workflows",
2476 "deployments"
2477 ],
2478 "environments": [
2479 "production"
2480 ],
API reference examples use projects2481 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2482 "note": "Rotate in the Stripe dashboard.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2483 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2484 }
2485 ],
2486 "notes": "Values are never returned. A repository's list includes the workspace's rows that reach it, with `scope` set to `workspace`. Empty `environments` means every environment."
2487 },
2488 "list_actions_secrets_for_workspace": {
2489 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2490 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2491 },
2492 "response": [
2493 {
2494 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ab",
2495 "name": "NPM_TOKEN",
2496 "kind": "secret",
2497 "value": null,
2498 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2499 "updated_at": "2026-10-04T15:42:07.318Z",
2500 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2501 "workflows"
2502 ],
2503 "environments": [],
API reference examples use projects2504 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2505 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2506 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2507 }
2508 ],
2509 "notes": "Values are never returned. A repository's list includes the workspace's rows that reach it, with `scope` set to `workspace`. Empty `environments` means every environment."
2510 },
2511 "set_actions_secret": {
2512 "params": {
2513 "setting": "STRIPE_KEY"
2514 },
2515 "request": {
2516 "value": "sk_live_…",
2517 "available_to": [
2518 "workflows",
2519 "deployments"
2520 ],
2521 "environments": [
2522 "production"
2523 ]
2524 },
2525 "response": {
2526 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2527 "name": "STRIPE_KEY",
2528 "kind": "secret",
2529 "value": null,
API reference examples use projects2530 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2531 "updated_at": "2026-10-04T15:42:07.318Z",
2532 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2533 "workflows",
2534 "deployments"
2535 ],
2536 "environments": [
2537 "production"
2538 ],
API reference examples use projects2539 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2540 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2541 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2542 },
2543 "notes": "Keys are uppercased. See [secrets and variables](/guides/secrets-and-variables/)."
2544 },
2545 "set_actions_secret_for_workspace": {
2546 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2547 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2548 "setting": "NPM_TOKEN"
2549 },
2550 "request": {
2551 "value": "npm_…",
API reference examples use projects2552 "projects": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2553 "hello"
2554 ]
2555 },
2556 "response": {
2557 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2558 "name": "NPM_TOKEN",
2559 "kind": "secret",
2560 "value": null,
2561 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2562 "updated_at": "2026-10-04T15:42:07.318Z",
2563 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2564 "workflows"
2565 ],
2566 "environments": [],
API reference examples use projects2567 "projects": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2568 "hello"
2569 ],
2570 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2571 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2572 }
2573 },
2574 "delete_actions_secret": {
2575 "params": {
2576 "setting": "STRIPE_KEY"
2577 },
2578 "response": true
2579 },
2580 "delete_actions_secret_for_workspace": {
2581 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2582 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2583 "setting": "NPM_TOKEN"
2584 },
2585 "response": true
2586 },
2587 "list_actions_variables": {
2588 "response": [
2589 {
2590 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2591 "name": "NODE_VERSION",
2592 "kind": "variable",
2593 "value": "20",
API reference examples use projects2594 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2595 "updated_at": "2026-10-04T15:42:07.318Z",
2596 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2597 "workflows",
2598 "deployments"
2599 ],
2600 "environments": [],
API reference examples use projects2601 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2602 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2603 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2604 }
2605 ],
2606 "notes": "A repository's list includes the workspace's rows that reach it, with `scope` set to `workspace`. Empty `environments` means every environment."
2607 },
2608 "list_actions_variables_for_workspace": {
2609 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2610 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2611 },
2612 "response": [
2613 {
2614 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2615 "name": "NODE_VERSION",
2616 "kind": "variable",
2617 "value": "20",
2618 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2619 "updated_at": "2026-10-04T15:42:07.318Z",
2620 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2621 "workflows",
2622 "deployments"
2623 ],
2624 "environments": [],
API reference examples use projects2625 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2626 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2627 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2628 }
2629 ]
2630 },
2631 "set_actions_variable": {
2632 "request": {
2633 "setting": "NODE_VERSION",
2634 "value": "20"
2635 },
2636 "response": {
2637 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2638 "name": "NODE_VERSION",
2639 "kind": "variable",
2640 "value": "20",
API reference examples use projects2641 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2642 "updated_at": "2026-10-04T15:42:07.318Z",
2643 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2644 "workflows",
2645 "deployments"
2646 ],
2647 "environments": [],
API reference examples use projects2648 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2649 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2650 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2651 },
2652 "notes": "GitHub's clients send the key as `name`; that is accepted too."
2653 },
2654 "set_actions_variable_for_workspace": {
2655 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2656 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2657 },
2658 "request": {
2659 "setting": "NODE_VERSION",
2660 "value": "20"
2661 },
2662 "response": {
2663 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2664 "name": "NODE_VERSION",
2665 "kind": "variable",
2666 "value": "20",
2667 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2668 "updated_at": "2026-10-04T15:42:07.318Z",
2669 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2670 "workflows",
2671 "deployments"
2672 ],
2673 "environments": [],
API reference examples use projects2674 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2675 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2676 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2677 }
2678 },
2679 "update_actions_variable": {
2680 "params": {
2681 "setting": "NODE_VERSION"
2682 },
2683 "request": {
2684 "value": "22"
2685 },
2686 "response": {
2687 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2688 "name": "NODE_VERSION",
2689 "kind": "variable",
2690 "value": "22",
API reference examples use projects2691 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2692 "updated_at": "2026-10-04T15:42:07.318Z",
2693 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2694 "workflows",
2695 "deployments"
2696 ],
2697 "environments": [],
API reference examples use projects2698 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2699 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2700 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2701 }
2702 },
2703 "update_actions_variable_for_workspace": {
2704 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2705 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2706 "setting": "NODE_VERSION"
2707 },
2708 "request": {
2709 "value": "22"
2710 },
2711 "response": {
2712 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2713 "name": "NODE_VERSION",
2714 "kind": "variable",
2715 "value": "22",
2716 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2717 "updated_at": "2026-10-04T15:42:07.318Z",
2718 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2719 "workflows",
2720 "deployments"
2721 ],
2722 "environments": [],
API reference examples use projects2723 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2724 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2725 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2726 }
2727 },
2728 "delete_actions_variable": {
2729 "params": {
2730 "setting": "NODE_VERSION"
2731 },
2732 "response": true
2733 },
2734 "delete_actions_variable_for_workspace": {
2735 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2736 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2737 "setting": "NODE_VERSION"
2738 },
2739 "response": true
2740 },
Fast pages, required checks on the branch, self-hosted runners, honest incidents2741 "list_runners": {
2742 "response": [
2743 {
2744 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w8z",
2745 "name": "build-01",
2746 "workspace": "flagon-io",
2747 "repo": null,
2748 "group": "Default",
2749 "labels": [
2750 "self-hosted",
2751 "linux",
2752 "x64",
2753 "gpu"
2754 ],
2755 "os": "linux",
2756 "arch": "x64",
2757 "version": "0.2.0",
2758 "ephemeral": false,
2759 "status": "busy",
2760 "work": {
2761 "kind": "workflow",
2762 "id": "job_01kq2m9b1d4g7j0m3p6s9v2y5b",
2763 "name": "test (linux, 24)",
2764 "repo": "flagon-io/hello",
2765 "run_id": "run_01kq2m9a8c1f4h7k0n3q6t9w2z",
2766 "started_at": "2026-10-06T14:02:11.000Z"
2767 },
2768 "last_seen_at": "2026-10-06T14:05:40.512Z",
2769 "created_at": "2026-10-02T09:30:00.000Z",
2770 "created_by": null
2771 },
2772 {
2773 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w9a",
2774 "name": "mac-mini",
2775 "workspace": "flagon-io",
2776 "repo": null,
2777 "group": "Default",
2778 "labels": [
2779 "self-hosted",
2780 "macos",
2781 "arm64"
2782 ],
2783 "os": "macos",
2784 "arch": "arm64",
2785 "version": "0.2.0",
2786 "ephemeral": false,
2787 "status": "online",
2788 "work": null,
2789 "last_seen_at": "2026-10-06T14:05:40.512Z",
2790 "created_at": "2026-10-02T09:30:00.000Z",
2791 "created_by": null
2792 }
2793 ],
2794 "notes": "A repository's list holds its own runners (`repo` set) and the workspace's that its runner group lets it use. A runner is `offline` when it has not polled for 90 seconds."
2795 },
2796 "list_runners_for_workspace": {
2797 "params": {
2798 "workspace": "flagon-io"
2799 },
2800 "response": [
2801 {
2802 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w8z",
2803 "name": "build-01",
2804 "workspace": "flagon-io",
2805 "repo": null,
2806 "group": "Default",
2807 "labels": [
2808 "self-hosted",
2809 "linux",
2810 "x64",
2811 "gpu"
2812 ],
2813 "os": "linux",
2814 "arch": "x64",
2815 "version": "0.2.0",
2816 "ephemeral": false,
2817 "status": "busy",
2818 "work": {
2819 "kind": "workflow",
2820 "id": "job_01kq2m9b1d4g7j0m3p6s9v2y5b",
2821 "name": "test (linux, 24)",
2822 "repo": "flagon-io/hello",
2823 "run_id": "run_01kq2m9a8c1f4h7k0n3q6t9w2z",
2824 "started_at": "2026-10-06T14:02:11.000Z"
2825 },
2826 "last_seen_at": "2026-10-06T14:05:40.512Z",
2827 "created_at": "2026-10-02T09:30:00.000Z",
2828 "created_by": null
2829 },
2830 {
2831 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w9a",
2832 "name": "mac-mini",
2833 "workspace": "flagon-io",
2834 "repo": null,
2835 "group": "Default",
2836 "labels": [
2837 "self-hosted",
2838 "macos",
2839 "arm64"
2840 ],
2841 "os": "macos",
2842 "arch": "arm64",
2843 "version": "0.2.0",
2844 "ephemeral": false,
2845 "status": "online",
2846 "work": null,
2847 "last_seen_at": "2026-10-06T14:05:40.512Z",
2848 "created_at": "2026-10-02T09:30:00.000Z",
2849 "created_by": null
2850 }
2851 ]
2852 },
2853 "create_runner_registration_token": {
2854 "response": {
2855 "token": "g1trt_…",
2856 "expires_at": "2026-10-06T15:04:00.000Z",
2857 "workspace": "flagon-io",
2858 "repo": "flagon-io/hello",
2859 "group": null,
2860 "url": "https://g1t.sh"
2861 },
2862 "notes": "Pass it to `g1t-runner register --url https://g1t.sh --token …` within the hour. See [self-hosted runners](/guides/self-hosted-runners/)."
2863 },
2864 "create_runner_registration_token_for_workspace": {
2865 "params": {
2866 "workspace": "flagon-io"
2867 },
2868 "request": {
2869 "group": "Default"
2870 },
2871 "response": {
2872 "token": "g1trt_…",
2873 "expires_at": "2026-10-06T15:04:00.000Z",
2874 "workspace": "flagon-io",
2875 "repo": null,
2876 "group": "Default",
2877 "url": "https://g1t.sh"
2878 }
2879 },
2880 "remove_runner": {
2881 "params": {
2882 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w8z"
2883 },
2884 "response": true
2885 },
2886 "remove_runner_for_workspace": {
2887 "params": {
2888 "workspace": "flagon-io",
2889 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w8z"
2890 },
2891 "response": true
2892 },
2893 "get_runner_settings": {
2894 "response": {
2895 "agents_on_self_hosted": false,
2896 "agent_labels": [
2897 "self-hosted",
2898 "linux"
2899 ],
2900 "fork_pull_requests": false,
2901 "inherited": true
2902 }
2903 },
2904 "get_runner_settings_for_workspace": {
2905 "params": {
2906 "workspace": "flagon-io"
2907 },
2908 "response": {
2909 "agents_on_self_hosted": true,
2910 "agent_labels": [
2911 "self-hosted",
2912 "linux"
2913 ],
2914 "fork_pull_requests": false,
2915 "inherited": false
2916 }
2917 },
2918 "update_runner_settings": {
2919 "request": {
2920 "inherit": true
2921 },
2922 "response": {
2923 "agents_on_self_hosted": false,
2924 "agent_labels": [
2925 "self-hosted",
2926 "linux"
2927 ],
2928 "fork_pull_requests": false,
2929 "inherited": true
2930 }
2931 },
2932 "update_runner_settings_for_workspace": {
2933 "params": {
2934 "workspace": "flagon-io"
2935 },
2936 "request": {
2937 "agents_on_self_hosted": true,
2938 "agent_labels": [
2939 "linux"
2940 ]
2941 },
2942 "response": {
2943 "agents_on_self_hosted": true,
2944 "agent_labels": [
2945 "self-hosted",
2946 "linux"
2947 ],
2948 "fork_pull_requests": false,
2949 "inherited": false
2950 },
2951 "notes": "Agent work on your runners still uses g1t's model proxy, paid as before, unless the workspace has its own model provider."
2952 },
2953 "list_runner_groups": {
2954 "params": {
2955 "workspace": "flagon-io"
2956 },
2957 "response": [
2958 {
2959 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6y",
2960 "name": "Default",
2961 "default": true,
2962 "repositories": [],
2963 "runners": 2,
2964 "updated_at": "2026-10-02T09:30:00.000Z"
2965 },
2966 {
2967 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z",
2968 "name": "GPU",
2969 "default": false,
2970 "repositories": [
2971 "hello",
2972 "models"
2973 ],
2974 "runners": 1,
2975 "updated_at": "2026-10-05T11:20:00.000Z"
2976 }
2977 ]
2978 },
2979 "create_runner_group": {
2980 "params": {
2981 "workspace": "flagon-io"
2982 },
2983 "request": {
2984 "name": "GPU",
2985 "repositories": [
2986 "hello",
2987 "models"
2988 ]
2989 },
2990 "response": {
2991 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z",
2992 "name": "GPU",
2993 "default": false,
2994 "repositories": [
2995 "hello",
2996 "models"
2997 ],
2998 "runners": 1,
2999 "updated_at": "2026-10-05T11:20:00.000Z"
3000 }
3001 },
3002 "update_runner_group": {
3003 "params": {
3004 "workspace": "flagon-io",
3005 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z"
3006 },
3007 "request": {
3008 "repositories": []
3009 },
3010 "response": {
3011 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z",
3012 "name": "GPU",
3013 "default": false,
3014 "repositories": [],
3015 "runners": 1,
3016 "updated_at": "2026-10-05T11:20:00.000Z"
3017 }
3018 },
3019 "delete_runner_group": {
3020 "params": {
3021 "workspace": "flagon-io",
3022 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z"
3023 },
3024 "response": true
3025 },
Merge branch 'worktree-agent-ab2e39e11a6493412'3026 "list_webhooks": {
3027 "response": [
3028 {
3029 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3030 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3031 "workspace": "flagon-io",
3032 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3033 "url": "https://hooks.example.com/g1t",
3034 "events": [
3035 "git.push",
3036 "pull.merged"
3037 ],
3038 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3039 "secret_hint": "…9c2e",
3040 "created_by": "syntaqx",
3041 "created_at": "2026-10-04T15:42:07.318Z",
3042 "last_status": "delivered",
3043 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3044 }
3045 ]
3046 },
3047 "list_webhooks_for_workspace": {
3048 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3049 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3050 },
3051 "response": [
3052 {
3053 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3054 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3055 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3056 "repo": null,
3057 "url": "https://hooks.example.com/g1t",
3058 "events": [
3059 "git.push",
3060 "pull.merged"
3061 ],
3062 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3063 "secret_hint": "…9c2e",
3064 "created_by": "syntaqx",
3065 "created_at": "2026-10-04T15:42:07.318Z",
3066 "last_status": "delivered",
3067 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3068 }
3069 ]
3070 },
3071 "create_webhook": {
3072 "request": {
3073 "url": "https://hooks.example.com/g1t",
3074 "events": [
3075 "git.push",
3076 "pull.merged"
3077 ]
3078 },
3079 "response": {
3080 "hook": {
3081 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3082 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3083 "workspace": "flagon-io",
3084 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3085 "url": "https://hooks.example.com/g1t",
3086 "events": [
3087 "git.push",
3088 "pull.merged"
3089 ],
3090 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3091 "secret_hint": "…9c2e",
3092 "created_by": "syntaqx",
3093 "created_at": "2026-10-04T15:42:07.318Z",
3094 "last_status": "delivered",
3095 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3096 },
API reference: no example reads as a real secret3097 "secret": "whsec_…"
Merge branch 'worktree-agent-ab2e39e11a6493412'3098 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3099 "notes": "A ping is sent before the response, so `last_status` is usually set already. When g1t made the signing secret, `secret` holds it: it is shown only this once. See [webhooks](/guides/webhooks/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'3100 },
3101 "create_webhook_for_workspace": {
3102 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3103 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3104 },
3105 "request": {
3106 "url": "https://hooks.example.com/g1t"
3107 },
3108 "response": {
3109 "hook": {
3110 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3111 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3112 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3113 "repo": null,
3114 "url": "https://hooks.example.com/g1t",
3115 "events": [
3116 "*"
3117 ],
3118 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3119 "secret_hint": "…9c2e",
3120 "created_by": "syntaqx",
3121 "created_at": "2026-10-04T15:42:07.318Z",
3122 "last_status": "delivered",
3123 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3124 },
API reference: no example reads as a real secret3125 "secret": "whsec_…"
Merge branch 'worktree-agent-ab2e39e11a6493412'3126 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3127 "notes": "A ping is sent before the response, so `last_status` is usually set already. When g1t made the signing secret, `secret` holds it: it is shown only this once. See [webhooks](/guides/webhooks/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'3128 },
3129 "update_webhook": {
3130 "params": {
3131 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3132 },
3133 "request": {
3134 "active": false
3135 },
3136 "response": {
3137 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3138 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3139 "workspace": "flagon-io",
3140 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3141 "url": "https://hooks.example.com/g1t",
3142 "events": [
3143 "git.push",
3144 "pull.merged"
3145 ],
3146 "active": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3147 "secret_hint": "…9c2e",
3148 "created_by": "syntaqx",
3149 "created_at": "2026-10-04T15:42:07.318Z",
3150 "last_status": "delivered",
3151 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3152 }
3153 },
3154 "update_webhook_for_workspace": {
3155 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3156 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3157 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3158 },
3159 "request": {
3160 "active": false
3161 },
3162 "response": {
3163 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3164 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3165 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3166 "repo": null,
3167 "url": "https://hooks.example.com/g1t",
3168 "events": [
3169 "git.push",
3170 "pull.merged"
3171 ],
3172 "active": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3173 "secret_hint": "…9c2e",
3174 "created_by": "syntaqx",
3175 "created_at": "2026-10-04T15:42:07.318Z",
3176 "last_status": "delivered",
3177 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3178 }
3179 },
3180 "delete_webhook": {
3181 "params": {
3182 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3183 },
3184 "response": true
3185 },
3186 "delete_webhook_for_workspace": {
3187 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3188 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3189 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3190 },
3191 "response": true
3192 },
3193 "ping_webhook": {
3194 "params": {
3195 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3196 },
3197 "response": {
3198 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3199 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3200 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3201 "event": "ping",
3202 "status": "delivered",
3203 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3204 "response_status": 200,
3205 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3206 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3207 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'3208 "payload": "{\"hook\":{\"events\":[\"git.push\",\"pull.merged\"],\"id\":\"hk_01kpx5p9s4h0t1w6x8y2a3b4cd\",\"url\":\"https://hooks.example.com/g1t\"},\"message\":\"g1t will send this webhook's events here.\",\"time\":\"2026-10-04T16:01:12.440Z\",\"type\":\"ping\"}",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3209 "created_at": "2026-10-04T16:01:12.440Z",
3210 "delivered_at": "2026-10-04T16:01:12.631Z",
3211 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3212 },
3213 "notes": "`payload` is the JSON that was sent, as a string."
3214 },
3215 "ping_webhook_for_workspace": {
3216 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3217 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3218 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3219 },
3220 "response": {
3221 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3222 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3223 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3224 "event": "ping",
3225 "status": "delivered",
3226 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3227 "response_status": 200,
3228 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3229 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3230 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'3231 "payload": "{\"hook\":{\"events\":[\"git.push\",\"pull.merged\"],\"id\":\"hk_01kpx5p9s4h0t1w6x8y2a3b4cd\",\"url\":\"https://hooks.example.com/g1t\"},\"message\":\"g1t will send this webhook's events here.\",\"time\":\"2026-10-04T16:01:12.440Z\",\"type\":\"ping\"}",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3232 "created_at": "2026-10-04T16:01:12.440Z",
3233 "delivered_at": "2026-10-04T16:01:12.631Z",
3234 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3235 }
3236 },
3237 "list_webhook_deliveries": {
3238 "params": {
3239 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3240 },
3241 "response": [
3242 {
3243 "id": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3244 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3245 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3246 "event": "ping",
3247 "status": "pending",
3248 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3249 "response_status": 503,
3250 "response_body": "Service Unavailable",
Merge branch 'worktree-agent-ab2e39e11a6493412'3251 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3252 "duration_ms": 212,
Merge branch 'worktree-agent-ab2e39e11a6493412'3253 "payload": "{\"hook\":{\"events\":[\"git.push\",\"pull.merged\"],\"id\":\"hk_01kpx5p9s4h0t1w6x8y2a3b4cd\",\"url\":\"https://hooks.example.com/g1t\"},\"message\":\"g1t will send this webhook's events here.\",\"time\":\"2026-10-04T16:01:12.440Z\",\"type\":\"ping\"}",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3254 "created_at": "2026-10-04T16:20:03.100Z",
3255 "delivered_at": null,
3256 "next_attempt_at": "2026-10-04T16:21:03.312Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3257 },
3258 {
3259 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3260 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3261 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3262 "event": "ping",
3263 "status": "delivered",
3264 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3265 "response_status": 200,
3266 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3267 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3268 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'3269 "payload": "{\"hook\":{\"events\":[\"git.push\",\"pull.merged\"],\"id\":\"hk_01kpx5p9s4h0t1w6x8y2a3b4cd\",\"url\":\"https://hooks.example.com/g1t\"},\"message\":\"g1t will send this webhook's events here.\",\"time\":\"2026-10-04T16:01:12.440Z\",\"type\":\"ping\"}",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3270 "created_at": "2026-10-04T16:01:12.440Z",
3271 "delivered_at": "2026-10-04T16:01:12.631Z",
3272 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3273 }
3274 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3275 "notes": "Returns at most 50, newest first. `status` is `pending`, `delivered` or `failed`; `next_attempt_at` is set while it is pending."
Merge branch 'worktree-agent-ab2e39e11a6493412'3276 },
3277 "list_webhook_deliveries_for_workspace": {
3278 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3279 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3280 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3281 },
3282 "response": [
3283 {
3284 "id": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3285 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3286 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3287 "event": "ping",
3288 "status": "pending",
3289 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3290 "response_status": 503,
3291 "response_body": "Service Unavailable",
Merge branch 'worktree-agent-ab2e39e11a6493412'3292 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3293 "duration_ms": 212,
Merge branch 'worktree-agent-ab2e39e11a6493412'3294 "payload": "{\"hook\":{\"events\":[\"git.push\",\"pull.merged\"],\"id\":\"hk_01kpx5p9s4h0t1w6x8y2a3b4cd\",\"url\":\"https://hooks.example.com/g1t\"},\"message\":\"g1t will send this webhook's events here.\",\"time\":\"2026-10-04T16:01:12.440Z\",\"type\":\"ping\"}",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3295 "created_at": "2026-10-04T16:20:03.100Z",
3296 "delivered_at": null,
3297 "next_attempt_at": "2026-10-04T16:21:03.312Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3298 },
3299 {
3300 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3301 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3302 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3303 "event": "ping",
3304 "status": "delivered",
3305 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3306 "response_status": 200,
3307 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3308 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3309 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'3310 "payload": "{\"hook\":{\"events\":[\"git.push\",\"pull.merged\"],\"id\":\"hk_01kpx5p9s4h0t1w6x8y2a3b4cd\",\"url\":\"https://hooks.example.com/g1t\"},\"message\":\"g1t will send this webhook's events here.\",\"time\":\"2026-10-04T16:01:12.440Z\",\"type\":\"ping\"}",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3311 "created_at": "2026-10-04T16:01:12.440Z",
3312 "delivered_at": "2026-10-04T16:01:12.631Z",
3313 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3314 }
3315 ]
3316 },
3317 "redeliver_webhook": {
3318 "params": {
3319 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3320 "delivery": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz"
3321 },
3322 "response": {
3323 "id": "dlv_01kpx6c8d1e2f3g4h5j6k7m8np",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3324 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3325 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3326 "event": "ping",
3327 "status": "delivered",
3328 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3329 "response_status": 200,
3330 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3331 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3332 "duration_ms": 171,
Merge branch 'worktree-agent-ab2e39e11a6493412'3333 "payload": "{\"hook\":{\"events\":[\"git.push\",\"pull.merged\"],\"id\":\"hk_01kpx5p9s4h0t1w6x8y2a3b4cd\",\"url\":\"https://hooks.example.com/g1t\"},\"message\":\"g1t will send this webhook's events here.\",\"time\":\"2026-10-04T16:01:12.440Z\",\"type\":\"ping\"}",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3334 "created_at": "2026-10-04T16:25:40.007Z",
3335 "delivered_at": "2026-10-04T16:25:40.178Z",
3336 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3337 },
3338 "notes": "The response is the new delivery."
3339 },
3340 "redeliver_webhook_for_workspace": {
3341 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3342 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3343 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3344 "delivery": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz"
3345 },
3346 "response": {
3347 "id": "dlv_01kpx6c8d1e2f3g4h5j6k7m8np",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3348 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3349 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3350 "event": "ping",
3351 "status": "delivered",
3352 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3353 "response_status": 200,
3354 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3355 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3356 "duration_ms": 171,
Merge branch 'worktree-agent-ab2e39e11a6493412'3357 "payload": "{\"hook\":{\"events\":[\"git.push\",\"pull.merged\"],\"id\":\"hk_01kpx5p9s4h0t1w6x8y2a3b4cd\",\"url\":\"https://hooks.example.com/g1t\"},\"message\":\"g1t will send this webhook's events here.\",\"time\":\"2026-10-04T16:01:12.440Z\",\"type\":\"ping\"}",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3358 "created_at": "2026-10-04T16:25:40.007Z",
3359 "delivered_at": "2026-10-04T16:25:40.178Z",
3360 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3361 }
3362 },
3363 "list_integrations": {
3364 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3365 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3366 },
3367 "response": [
3368 {
3369 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3370 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3371 "provider": "anthropic",
3372 "kind": "models",
3373 "name": "Anthropic",
3374 "config": {
3375 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3376 "write_back": true
Merge branch 'worktree-agent-ab2e39e11a6493412'3377 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3378 "secret_hint": "…3f9a",
3379 "webhook_url": null,
3380 "created_by": "syntaqx",
3381 "created_at": "2026-10-04T15:42:07.318Z",
3382 "last_used_at": "2026-10-04T15:42:08.102Z",
3383 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3384 "models": [
3385 "claude-haiku-4-5",
3386 "claude-sonnet-4-5"
3387 ]
3388 },
3389 {
3390 "id": "con_01kpx4n8r3g9s0v5w7x1z2a3bc",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3391 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3392 "provider": "jira",
3393 "kind": "tracker",
3394 "name": "Jira",
3395 "config": {
3396 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3397 "write_back": true,
Merge branch 'worktree-agent-ab2e39e11a6493412'3398 "site": "https://acme.atlassian.net",
3399 "email": "syntaqx@example.com",
3400 "keys": [
3401 "TECH"
3402 ]
3403 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3404 "secret_hint": "…x7Qe",
3405 "webhook_url": null,
3406 "created_by": "syntaqx",
3407 "created_at": "2026-10-04T15:42:07.318Z",
3408 "last_used_at": null,
3409 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3410 "models": []
3411 }
3412 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3413 "notes": "`kind` is `models`, `alerts` or `tracker`. `secret_hint` shows the end of the secret; the secret itself is never returned. `webhook_url` is where an alert source sends its alerts."
Merge branch 'worktree-agent-ab2e39e11a6493412'3414 },
3415 "connect_integration": {
3416 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3417 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3418 },
3419 "request": {
3420 "provider": "webhook",
3421 "config": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3422 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3423 "label": "bug"
3424 }
3425 },
3426 "response": {
3427 "connection": {
3428 "id": "con_01kpx4n8r3g9s0v5w7x1z2a3bd",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3429 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3430 "provider": "webhook",
3431 "kind": "alerts",
3432 "name": "Webhook",
3433 "config": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3434 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3435 "label": "bug",
3436 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3437 "write_back": true
Merge branch 'worktree-agent-ab2e39e11a6493412'3438 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3439 "secret_hint": null,
3440 "webhook_url": "https://api.g1t.sh/hooks/con_01kpx4n8r3g9s0v5w7x1z2a3bd",
3441 "created_by": "syntaqx",
3442 "created_at": "2026-10-04T15:42:07.318Z",
3443 "last_used_at": null,
3444 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3445 "models": []
3446 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3447 "signing_secret": "g1ts_9f2c4a7e1b0d3c6f8a2e5b7d9c1f4a6e8b0d2c4f6a8e1b3d"
Merge branch 'worktree-agent-ab2e39e11a6493412'3448 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3449 "notes": "`signing_secret` is set only when g1t made it, for `datadog` and `webhook`, and is shown only this once. A model provider is tested as it is connected. See [integrations](/guides/integrations/) and [model providers](/guides/models/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'3450 },
3451 "disconnect_integration": {
3452 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3453 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3454 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab"
3455 },
3456 "response": true
3457 },
3458 "test_integration": {
3459 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3460 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3461 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab"
3462 },
3463 "response": {
3464 "ok": true,
3465 "message": "Anthropic accepted the key and offers 9 models."
3466 },
3467 "notes": "Credentials that do not work still answer `200`, with `ok` false and `message` saying what went wrong."
3468 },
3469 "get_model_routes": {
3470 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3471 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3472 },
3473 "response": [
3474 {
3475 "task": "default",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3476 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Merge branch 'worktree-agent-ab2e39e11a6493412'3477 "model": "claude-sonnet-4-5"
3478 },
3479 {
3480 "task": "review",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3481 "connection_id": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3482 "model": null
3483 }
3484 ]
3485 },
3486 "set_model_routes": {
3487 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3488 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3489 },
3490 "request": {
3491 "routes": [
3492 {
3493 "task": "default",
3494 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
3495 "model": "claude-sonnet-4-5"
3496 },
3497 {
3498 "task": "review",
3499 "connection_id": null
3500 }
3501 ]
3502 },
3503 "response": [
3504 {
3505 "task": "default",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3506 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Merge branch 'worktree-agent-ab2e39e11a6493412'3507 "model": "claude-sonnet-4-5"
3508 },
3509 {
3510 "task": "review",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3511 "connection_id": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3512 "model": null
3513 }
3514 ],
3515 "notes": "The response is the routes as saved, ordered by task."
3516 },
3517 "get_context": {
3518 "query": {
3519 "reference": "TECH-1234"
3520 },
3521 "response": {
3522 "provider": "jira",
3523 "key": "TECH-1234",
3524 "title": "Checkout fails for EU cards",
3525 "url": "https://acme.atlassian.net/browse/TECH-1234",
3526 "status": "In Progress",
3527 "body": "Customers with 3DS cards see a 500 at /pay.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3528 "fetched_at": "2026-10-04T15:42:07.318Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3529 }
3530 },
3531 "import_issue": {
3532 "request": {
3533 "reference": "TECH-1234"
3534 },
3535 "response": {
3536 "number": 42,
3537 "item": {
3538 "provider": "jira",
3539 "key": "TECH-1234",
3540 "title": "Checkout fails for EU cards",
3541 "url": "https://acme.atlassian.net/browse/TECH-1234",
3542 "status": "In Progress",
3543 "body": "Customers with 3DS cards see a 500 at /pay.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3544 "fetched_at": "2026-10-04T15:42:07.318Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3545 },
3546 "created": true
3547 },
3548 "notes": "`created` is false when the ticket was imported before; `number` is then that issue."
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3549 },
3550 "remember": {
3551 "request": {
3552 "text": "The tests need TZ=UTC or the date tests fail.",
3553 "scope": "project",
3554 "kind": "gotcha",
3555 "from_number": 14
3556 },
3557 "response": {
3558 "id": "mem_01m43v8q2w3e4r5t6y7u8i9o0p",
3559 "scope": "project",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3560 "workspace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3561 "repo": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3562 "namespace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3563 "name": "hello"
3564 },
3565 "text": "The tests need TZ=UTC or the date tests fail.",
3566 "kind": "gotcha",
3567 "source": {
3568 "kind": "run",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3569 "run_id": "arn_01m43v2c1p9k8d7e6f5a4b3c2d",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3570 "repo": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3571 "namespace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3572 "name": "hello"
3573 },
3574 "number": 14
3575 },
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent3576 "created_by": "g1t",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3577 "pinned": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3578 "created_at": "2026-10-01T18:40:12.000Z",
3579 "updated_at": "2026-10-01T18:40:12.000Z",
3580 "last_used_at": null
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3581 },
3582 "notes": "Text that looks like a key, a token or a password is refused with `invalid`: memory is read by every agent in the workspace. Saving the same text again in the same scope returns the memory already kept."
3583 },
3584 "recall": {
3585 "query": {
3586 "q": "pnpm"
3587 },
3588 "response": {
3589 "project": [],
3590 "workspace": [
3591 {
3592 "id": "mem_01m43t0a1s2d3f4g5h6j7k8l9z",
3593 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3594 "workspace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3595 "repo": null,
3596 "text": "We use pnpm everywhere, never npm or yarn.",
3597 "kind": "convention",
3598 "source": {
3599 "kind": "person",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3600 "run_id": null,
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3601 "repo": null,
3602 "number": null
3603 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3604 "created_by": "syntaqx",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3605 "pinned": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3606 "created_at": "2026-10-01T18:40:12.000Z",
3607 "updated_at": "2026-10-01T18:40:12.000Z",
3608 "last_used_at": null
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3609 }
3610 ]
3611 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3612 "notes": "Anyone who can read the repository gets its project memory; `workspace` is filled only for members of the workspace, and is empty for anyone else. Each memory returned is marked used, which keeps it near the front of what agents are given."
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3613 },
Search across all of g1t, Explore, and a command palette3614 "search": {
3615 "query": {
3616 "q": "parse_query language:rust repo:acme/web",
3617 "type": "code"
3618 },
3619 "response": {
3620 "query": "parse_query repo:acme/web language:rust",
3621 "type": "code",
3622 "counts": {
3623 "repositories": 0,
3624 "code": 2,
3625 "issues": 0,
3626 "pulls": 0,
3627 "people": 0
3628 },
3629 "page": 1,
3630 "per_page": 20,
3631 "more": false,
3632 "hits": [
3633 {
3634 "kind": "code",
3635 "title": "src/search/query.rs",
3636 "url": "/acme/web/blob/main/src/search/query.rs#L42",
3637 "repo": "acme/web",
3638 "private": false,
3639 "description": null,
3640 "snippet": [],
3641 "lines": [
3642 {
3643 "number": 41,
3644 "parts": [
3645 {
3646 "text": "/// Reads a query typed into the search box.",
3647 "highlight": false
3648 }
3649 ]
3650 },
3651 {
3652 "number": 42,
3653 "parts": [
3654 {
3655 "text": "pub fn ",
3656 "highlight": false
3657 },
3658 {
3659 "text": "parse_query",
3660 "highlight": true
3661 },
3662 {
3663 "text": "(text: &str) -> Query {",
3664 "highlight": false
3665 }
3666 ]
3667 },
3668 {
3669 "number": 43,
3670 "parts": [
3671 {
3672 "text": " let mut query = Query::default();",
3673 "highlight": false
3674 }
3675 ]
3676 }
3677 ],
3678 "path": "src/search/query.rs",
3679 "language": "rust",
3680 "ref": "main",
3681 "number": null,
3682 "state": null,
3683 "author": null,
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights3684 "requested_by": null,
Search across all of g1t, Explore, and a command palette3685 "labels": [],
3686 "topics": [],
3687 "slug": null,
3688 "avatar": null,
3689 "updated_at": null
3690 }
3691 ],
3692 "notes": []
3693 },
g1t is the stored author of what it opens; the person who asked is requested_by and keeps the author's rights3694 "notes": "`q` takes words, `\"exact phrases\"`, `-words` to leave out, and qualifiers: `repo:owner/name`, `org:` (or `workspace:`), `language:`, `path:` (a glob when it has `*`), `is:issue`, `is:pr`, `is:open`, `is:closed`, `is:merged`, `is:draft`, `is:public`, `is:private`, `author:` and `label:`; most can be left out with a leading `-`, as in `-label:wontfix`. `type` is `repositories`, `code`, `issues`, `pulls` or `people`; without it, `path:` means code, `is:pr` pull requests, `is:open`, `author:` or `label:` issues, and anything else repositories. `counts` says how many results each type has, up to 1,000. Each result's `snippet` (or, for code, each of its `lines`) is a list of parts, `highlight` true where the query matched. Code is searched on default branches and needs a word of three characters or more, unless the query names a `repo:`. Public content is returned to anyone, without a token; private content only to people who can read it (members of its workspace, and people given a role on the repository), checked when the search runs, so a repository made private, or a role taken away, stops appearing at once. A g1t agent's token can search too. An issue or pull request g1t opened has `author` `g1t` and `requested_by` the person it was for; `author:` matches the author."
Search across all of g1t, Explore, and a command palette3695 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3696 "search_context": {
3697 "params": {
3698 "workspace": "acme"
3699 },
3700 "query": {
3701 "q": "how do we run the web tests",
3702 "project": "web"
3703 },
3704 "response": {
3705 "query": "how do we run the web tests",
3706 "mode": "semantic",
3707 "hits": [
3708 {
3709 "kind": "memory",
3710 "id": "mem_01m4a0c2b7k3f9d1e5g8h2j6k4",
3711 "title": "Gotcha",
3712 "snippet": "The date tests fail unless TZ=UTC.",
3713 "project": "web",
3714 "url": "/acme/web/memory",
3715 "score": 0.82,
3716 "source": "AGENTS.md",
3717 "by": "g1t",
3718 "updated_at": "2026-10-04T21:10:02.000Z"
3719 },
3720 {
3721 "kind": "doc",
3722 "id": "ent_5f0c2a9e41d7b3c86a1e2f40:2",
3723 "title": "Web (README.md)",
3724 "snippet": "## Testing Run npm test. The end-to-end tests need the api running locally…",
3725 "project": "web",
3726 "url": "/acme/web/blob/main/README.md",
3727 "score": 0.77,
3728 "source": "README.md",
3729 "by": null,
3730 "updated_at": "2026-10-04T20:58:41.000Z"
3731 },
3732 {
3733 "kind": "project",
3734 "id": "ent_9b1d6f0a2c3e4b5d6e7f8a9b",
3735 "title": "web",
3736 "snippet": "The storefront. Written in TypeScript. Packages: @acme/web. Uses api. Owned by ana.",
3737 "project": "web",
3738 "url": "/acme/web",
3739 "score": 0.71,
3740 "source": "catalog",
3741 "by": null,
3742 "updated_at": "2026-10-04T20:58:41.000Z"
3743 }
3744 ]
3745 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3746 "notes": "Give `workspace`, or `repo` as `owner/name` for its workspace. `kinds` narrows to some of `project`, `app`, `api`, `package`, `language`, `owner`, `environment`, `integration`, `doc`, `memory`, `issue` and `pull`; in a URL, comma-separated. `mode` is `text` when the search index could not answer and words were matched instead. Memory is returned only to members of the workspace and its agents; anything from a private project, only to those who can read it (members, unless the base permission is None, and people given a role on its repository). A g1t agent searches its own workspace only."
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3747 },
3748 "get_entity": {
3749 "params": {
3750 "workspace": "acme",
3751 "kind": "project",
3752 "id": "web"
3753 },
3754 "response": {
3755 "entity": {
3756 "id": "ent_9b1d6f0a2c3e4b5d6e7f8a9b",
3757 "workspace": "acme",
3758 "kind": "project",
3759 "key": "web",
3760 "name": "web",
3761 "summary": "The storefront. Written in TypeScript. Packages: @acme/web. Uses api. Owned by ana.",
3762 "project": "web",
3763 "private": true,
3764 "data": {
3765 "repo": "acme/web",
3766 "root_dir": "",
3767 "default_branch": "main",
3768 "languages": [
3769 "TypeScript"
3770 ],
3771 "owners": [
3772 "ana"
3773 ],
3774 "tests": true,
3775 "test_commands": [
3776 "npm test"
3777 ],
3778 "production_url": "https://web--acme.g1t.page"
3779 },
3780 "source": "scan",
3781 "ref": "/acme/web",
3782 "updated_at": "2026-10-04T20:58:41.000Z"
3783 },
3784 "relations": [
3785 {
3786 "kind": "depends_on",
3787 "direction": "out",
3788 "entity": {
3789 "id": "ent_0a7c3e5b9d1f2a4c6e8b0d2f",
3790 "workspace": "acme",
3791 "kind": "project",
3792 "key": "api",
3793 "name": "api",
3794 "summary": "The public API. Written in Rust.",
3795 "project": "api",
3796 "private": true,
3797 "data": {},
3798 "source": "scan",
3799 "ref": "/acme/api",
3800 "updated_at": "2026-10-04T20:57:12.000Z"
3801 }
3802 },
3803 {
3804 "kind": "owned_by",
3805 "direction": "out",
3806 "entity": {
3807 "id": "ent_3c5e7a9b1d2f4a6c8e0b2d4f",
3808 "workspace": "acme",
3809 "kind": "owner",
3810 "key": "ana",
3811 "name": "ana",
3812 "summary": null,
3813 "project": null,
3814 "private": false,
3815 "data": {},
3816 "source": "scan",
3817 "ref": "/u/ana",
3818 "updated_at": "2026-10-04T20:58:41.000Z"
3819 }
3820 }
3821 ]
3822 },
3823 "notes": "`id` is the entry's id, or its key: a project's or app's slug, `npm:<name>` (or `cargo:`, `go:`, `pypi:`) for a package, a username for an owner, `<project>/production` for an environment. `data` depends on the kind: a package's version and dependencies, an API's routes, an app's production address."
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3824 },
3825 "list_collaborators": {
3826 "response": {
3827 "repo": "flagon-io/hello",
3828 "base_permission": "write",
3829 "people": [
3830 {
3831 "username": "syntaqx",
3832 "name": "Chase Pierce",
3833 "avatar": null,
3834 "role": "admin",
3835 "source": "owner",
3836 "direct": null,
3837 "workspace_role": "owner"
3838 },
3839 {
3840 "username": "linus",
3841 "name": null,
3842 "avatar": null,
3843 "role": "maintain",
3844 "source": "direct",
3845 "direct": "maintain",
3846 "workspace_role": "member"
3847 },
3848 {
3849 "username": "grace",
3850 "name": "Grace Hopper",
3851 "avatar": null,
3852 "role": "write",
3853 "source": "base",
3854 "direct": null,
3855 "workspace_role": "member"
3856 },
3857 {
3858 "username": "ada",
3859 "name": "Ada Lovelace",
3860 "avatar": null,
3861 "role": "triage",
3862 "source": "direct",
3863 "direct": "triage",
3864 "workspace_role": null
3865 }
3866 ],
3867 "invitations": [
3868 {
3869 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
3870 "repo": "flagon-io/hello",
3871 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3872 "invitee": "alan",
3873 "email": null,
3874 "role": "write",
3875 "invited_by": "syntaqx",
3876 "inviter_avatar": null,
3877 "status": "pending",
3878 "created_at": "2026-10-05T17:00:00.000Z",
3879 "expires_at": "2026-10-12T17:00:00.000Z"
3880 },
3881 {
3882 "id": "rin_01kp3d7e8f9g0h1j2k3m4n5p6q",
3883 "repo": "flagon-io/hello",
3884 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3885 "invitee": null,
3886 "email": "joan@example.com",
3887 "role": "read",
3888 "invited_by": "syntaqx",
3889 "inviter_avatar": null,
3890 "status": "pending",
3891 "created_at": "2026-10-05T17:00:00.000Z",
3892 "expires_at": "2026-10-12T17:00:00.000Z"
3893 }
3894 ],
3895 "viewer_role": "admin",
3896 "can_manage": true
3897 },
3898 "notes": "Owners are listed with `source` `owner`, members with the base permission with `base`, and anyone given a role on this repository with `direct`; `role` is the highest of these, and `direct` shows a direct role even when ownership or the base permission gives more. `workspace_role` null means an outside collaborator. Anyone can read a public repository, which is not listed. `invitations` is empty unless you have the Admin role (`can_manage`). Refused with `403` below the Write role, and `404` for a private repository you cannot see. See [Access and roles](/guides/access-and-roles/)."
3899 },
3900 "add_collaborator": {
3901 "request": {
3902 "invitee": "ada",
3903 "role": "triage"
3904 },
3905 "response": {
3906 "result": "invited",
3907 "invitation": {
3908 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
3909 "repo": "flagon-io/hello",
3910 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3911 "invitee": "ada",
3912 "email": null,
3913 "role": "triage",
3914 "invited_by": "syntaqx",
3915 "inviter_avatar": null,
3916 "status": "pending",
3917 "created_at": "2026-10-05T17:00:00.000Z",
3918 "expires_at": "2026-10-12T17:00:00.000Z"
3919 }
3920 },
3921 "notes": "`invitee` is a username or an email address. A member of the workspace answers `{\"result\": \"granted\", \"collaborator\": {…}}` with the role already given, shown as list_collaborators shows a person. Anyone else answers `{\"result\": \"invited\", \"invitation\": {…}}`: the invitation is emailed and waits 7 days, and the role is theirs once they accept it. An email address without an account gets an invitation with `email` set and `invitee` null, and an invite that makes the account and accepts in one step. Refused with `404` when no account has that username, `409` when they already have a role of their own or a pending invitation (change it with update_collaborator), and `403` without the Admin role, from an agent's or a workspace's token, or when the person does not meet what the workspace asks of everyone with access. The `repo.collaborator_added` webhook event is sent once they have the role. See [Access and roles](/guides/access-and-roles/)."
3922 },
3923 "update_collaborator": {
3924 "params": {
3925 "owner": "flagon-io",
3926 "name": "hello",
3927 "username": "ada"
3928 },
3929 "request": {
3930 "role": "write"
3931 },
3932 "response": {
3933 "username": "ada",
3934 "name": "Ada Lovelace",
3935 "avatar": null,
3936 "role": "write",
3937 "source": "direct",
3938 "direct": "write",
3939 "workspace_role": null
3940 },
3941 "notes": "Changes a direct role, or the role of the person's pending invitation. `404` when they have neither: an owner's Admin and a member's base permission are not changed here. Changing a direct role sends the `repo.collaborator_role_changed` webhook event. See [Access and roles](/guides/access-and-roles/)."
3942 },
3943 "remove_collaborator": {
3944 "params": {
3945 "owner": "flagon-io",
3946 "name": "hello",
3947 "username": "ada"
3948 },
3949 "response": true,
3950 "notes": "Takes away a direct role. Anyone may remove their own, to leave a repository. `404` when the person has no role of their own on it. A member keeps the workspace's base permission. Sends the `repo.collaborator_removed` webhook event. See [Access and roles](/guides/access-and-roles/)."
3951 },
3952 "get_collaborator_permission": {
3953 "params": {
3954 "owner": "flagon-io",
3955 "name": "hello",
3956 "username": "ada"
3957 },
3958 "response": {
3959 "username": "ada",
3960 "role": "triage",
3961 "source": "direct",
3962 "capabilities": [
3963 "read",
3964 "participate",
3965 "triage"
3966 ]
3967 },
3968 "notes": "`capabilities` lists what the role allows, in the table's order: `read`, `participate`, `triage`, `push`, `merge`, `run`, `manage_settings`, `manage_protection`, `manage_integrations`, `manage_access`, `administer` and `delete` (which also takes an owner of the workspace). `role` and `source` are null, and `capabilities` empty, for someone with no role. Refused with `403` below the Write role, unless you ask about yourself. See [Access and roles](/guides/access-and-roles/)."
3969 },
3970 "list_repo_invitations": {
3971 "response": [
3972 {
3973 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
3974 "repo": "flagon-io/hello",
3975 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3976 "invitee": "alan",
3977 "email": null,
3978 "role": "write",
3979 "invited_by": "syntaqx",
3980 "inviter_avatar": null,
3981 "status": "pending",
3982 "created_at": "2026-10-05T17:00:00.000Z",
3983 "expires_at": "2026-10-12T17:00:00.000Z"
3984 },
3985 {
3986 "id": "rin_01kp3d7e8f9g0h1j2k3m4n5p6q",
3987 "repo": "flagon-io/hello",
3988 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3989 "invitee": null,
3990 "email": "joan@example.com",
3991 "role": "read",
3992 "invited_by": "syntaqx",
3993 "inviter_avatar": null,
3994 "status": "pending",
3995 "created_at": "2026-10-05T17:00:00.000Z",
3996 "expires_at": "2026-10-12T17:00:00.000Z"
3997 }
3998 ],
3999 "notes": "Pending invitations only, newest first. `email` is set for an invitation sent to an address that had no account. Refused with `403` without the Admin role. See [Access and roles](/guides/access-and-roles/)."
4000 },
4001 "revoke_repo_invitation": {
4002 "params": {
4003 "owner": "flagon-io",
4004 "name": "hello",
4005 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p"
4006 },
4007 "response": {
4008 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
4009 "repo": "flagon-io/hello",
4010 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
4011 "invitee": "alan",
4012 "email": null,
4013 "role": "write",
4014 "invited_by": "syntaqx",
4015 "inviter_avatar": null,
4016 "status": "revoked",
4017 "created_at": "2026-10-05T17:00:00.000Z",
4018 "expires_at": "2026-10-12T17:00:00.000Z"
4019 },
4020 "notes": "`404` when there is no pending invitation with that id on this repository."
4021 },
4022 "list_my_repo_invitations": {
4023 "response": [
4024 {
4025 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
4026 "repo": "flagon-io/hello",
4027 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
4028 "invitee": "ada",
4029 "email": null,
4030 "role": "triage",
4031 "invited_by": "syntaqx",
4032 "inviter_avatar": null,
4033 "status": "pending",
4034 "created_at": "2026-10-05T17:00:00.000Z",
4035 "expires_at": "2026-10-12T17:00:00.000Z"
4036 }
4037 ],
4038 "notes": "Invitations sent to your username, and to any of your confirmed addresses before you had an account, newest first. Accept one with `PATCH /user/repository_invitations/{id}`, or decline it with `DELETE`. Expired and answered ones are left out."
4039 },
4040 "accept_repo_invitation": {
4041 "params": {
4042 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r"
4043 },
4044 "response": {
4045 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
4046 "repo": "flagon-io/hello",
4047 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
4048 "invitee": "ada",
4049 "email": null,
4050 "role": "triage",
4051 "invited_by": "syntaqx",
4052 "inviter_avatar": null,
4053 "status": "accepted",
4054 "created_at": "2026-10-05T17:00:00.000Z",
4055 "expires_at": "2026-10-12T17:00:00.000Z"
4056 },
4057 "notes": "The role is yours at once. `404` when you have no pending invitation with that id (it may have expired or been revoked), and `403` when your account does not meet what the workspace asks of everyone with access, such as two-factor authentication, with a message that says what to turn on. See [Access and roles](/guides/access-and-roles/)."
4058 },
4059 "decline_repo_invitation": {
4060 "params": {
4061 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r"
4062 },
4063 "response": {
4064 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
4065 "repo": "flagon-io/hello",
4066 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
4067 "invitee": "ada",
4068 "email": null,
4069 "role": "triage",
4070 "invited_by": "syntaqx",
4071 "inviter_avatar": null,
4072 "status": "declined",
4073 "created_at": "2026-10-05T17:00:00.000Z",
4074 "expires_at": "2026-10-12T17:00:00.000Z"
4075 },
4076 "notes": "`404` when you have no pending invitation with that id."
4077 },
4078 "set_base_permission": {
4079 "params": {
4080 "workspace": "flagon-io"
4081 },
4082 "request": {
4083 "base_permission": "read"
4084 },
4085 "response": {
4086 "workspace": "flagon-io",
4087 "base_permission": "read"
4088 },
4089 "notes": "`base_permission` is `none`, `read`, `write` (the default) or `admin`. Owners keep Admin, and a role given on a repository directly still counts where it is higher. Refused with `403` for anyone but an owner signed in as a person. See [Access and roles](/guides/access-and-roles/)."
4090 },
4091 "list_outside_collaborators": {
4092 "params": {
4093 "workspace": "flagon-io"
4094 },
4095 "response": [
4096 {
4097 "username": "ada",
4098 "name": "Ada Lovelace",
4099 "avatar": null,
4100 "repos": [
4101 {
4102 "repo": "flagon-io/docs",
4103 "role": "write"
4104 },
4105 {
4106 "repo": "flagon-io/hello",
4107 "role": "triage"
4108 }
4109 ]
4110 }
4111 ],
4112 "notes": "By username, each with the repositories they have a role on. Refused with `403` for anyone but an owner. See [Access and roles](/guides/access-and-roles/)."
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily4113 },
4114 "list_security_alerts": {
4115 "params": {
4116 "owner": "flagon-io",
4117 "name": "hello"
4118 },
4119 "query": {
4120 "state": "open"
4121 },
4122 "response": [
4123 {
4124 "kind": "secret",
4125 "id": "sec_01kp4a7b2c3d4e5f6g7h8j9k0m",
4126 "state": "dismissed",
4127 "secret_type": "aws_access_key",
4128 "label": "an AWS access key",
4129 "path": "test/fixtures/aws.env",
4130 "line": 3,
4131 "commit": "9f2c1e04b7d3a8e6f5c2b1a0d9e8f7c6b5a4d3e2",
4132 "preview": "AKIA…MPLE",
4133 "status": "allowed",
4134 "source": "history",
4135 "test_value": "the documented example key",
4136 "found_by": null,
4137 "found_at": "2026-10-01T12:00:00.000Z",
4138 "dismissed_reason": "used_in_tests",
4139 "dismissed_comment": "Only in the test fixtures.",
4140 "dismissed_by": "syntaqx",
4141 "dismissed_at": "2026-10-02T09:15:00.000Z"
4142 },
4143 {
4144 "kind": "dependency",
4145 "id": "vul_01kp4b8c3d4e5f6g7h8j9k0m1n",
4146 "state": "open",
4147 "ecosystem": "npm",
4148 "package": "lodash",
4149 "version": "4.17.20",
4150 "manifest": "package-lock.json",
4151 "advisory": "GHSA-35jh-r3h4-6jhm",
4152 "osv_id": "GHSA-35jh-r3h4-6jhm",
4153 "summary": "Command Injection in lodash",
4154 "severity": "high",
4155 "fixed_version": "4.17.21",
4156 "fixed_at": null,
4157 "update": {
4158 "state": "open",
4159 "target": "4.17.21",
4160 "branch": "g1t/security/lodash-4.17.21",
4161 "pull": 42,
4162 "issue": null,
4163 "error": null,
4164 "updated_at": "2026-10-01T12:20:00.000Z"
4165 },
4166 "found_at": "2026-10-01T12:00:00.000Z",
4167 "dismissed_reason": null,
4168 "dismissed_comment": null,
4169 "dismissed_by": null,
4170 "dismissed_at": null
4171 }
4172 ],
4173 "notes": "Secrets come first, then dependencies. Fields only one kind has are left out of the other: a secret has `secret_type`, `label`, `path`, `line`, `commit`, `preview`, `status` (`open`, `blocked`, `allowed` or `resolved`), `source` (`push` or `history`), `test_value` and `found_by`; a dependency has `ecosystem`, `package`, `version`, `manifest`, `advisory`, `osv_id`, `summary`, `severity`, `fixed_version` (null when no patched version is available), `fixed_at` and `update`, the pull request g1t opens to upgrade it. `dismissed_reason`, `dismissed_comment`, `dismissed_by` and `dismissed_at` are null while an alert is open; a secret fixed by being revoked keeps them. `422` for a `state` or `kind` it does not know, and `404` for anyone without the Write role. See [Security](/guides/security/)."
4174 },
4175 "dismiss_security_alert": {
4176 "params": {
4177 "owner": "flagon-io",
4178 "name": "hello",
4179 "id": "vul_01kp4b8c3d4e5f6g7h8j9k0m1n"
4180 },
4181 "request": {
4182 "reason": "tolerable_risk",
4183 "comment": "Only the build uses it, on trusted input."
4184 },
4185 "response": {
4186 "kind": "dependency",
4187 "id": "vul_01kp4b8c3d4e5f6g7h8j9k0m1n",
4188 "state": "dismissed",
4189 "ecosystem": "npm",
4190 "package": "lodash",
4191 "version": "4.17.20",
4192 "manifest": "package-lock.json",
4193 "advisory": "GHSA-35jh-r3h4-6jhm",
4194 "osv_id": "GHSA-35jh-r3h4-6jhm",
4195 "summary": "Command Injection in lodash",
4196 "severity": "high",
4197 "fixed_version": "4.17.21",
4198 "fixed_at": null,
4199 "update": {
4200 "state": "open",
4201 "target": "4.17.21",
4202 "branch": "g1t/security/lodash-4.17.21",
4203 "pull": 42,
4204 "issue": null,
4205 "error": null,
4206 "updated_at": "2026-10-01T12:20:00.000Z"
4207 },
4208 "found_at": "2026-10-01T12:00:00.000Z",
4209 "dismissed_reason": "tolerable_risk",
4210 "dismissed_comment": "Only the build uses it, on trusted input.",
4211 "dismissed_by": "syntaqx",
4212 "dismissed_at": "2026-10-06T10:00:00.000Z"
4213 },
4214 "notes": "| Kind | Reasons |\n| --- | --- |\n| `secret` | `false_positive`, `used_in_tests`, `revoked`, `wont_fix` |\n| `dependency` | `fix_started`, `no_bandwidth`, `tolerable_risk`, `inaccurate`, `not_used` |\n\nA reason for the other kind of alert, or one not in the table, is refused with `422`. A secret dismissed as `revoked` becomes `fixed`; with any other reason it becomes `dismissed` and pushes that carry it go through. Dismissing a secret needs the Admin role on the repository; a dependency needs the Write role. A token needs `repo:admin` for either, and a g1t agent’s token never dismisses alerts."
4215 },
4216 "reopen_security_alert": {
4217 "params": {
4218 "owner": "flagon-io",
4219 "name": "hello",
4220 "id": "sec_01kp4a7b2c3d4e5f6g7h8j9k0m"
4221 },
4222 "response": {
4223 "kind": "secret",
4224 "id": "sec_01kp4a7b2c3d4e5f6g7h8j9k0m",
4225 "state": "open",
4226 "secret_type": "aws_access_key",
4227 "label": "an AWS access key",
4228 "path": "test/fixtures/aws.env",
4229 "line": 3,
4230 "commit": "9f2c1e04b7d3a8e6f5c2b1a0d9e8f7c6b5a4d3e2",
4231 "preview": "AKIA…MPLE",
4232 "status": "open",
4233 "source": "history",
4234 "test_value": "the documented example key",
4235 "found_by": null,
4236 "found_at": "2026-10-01T12:00:00.000Z",
4237 "dismissed_reason": null,
4238 "dismissed_comment": null,
4239 "dismissed_by": null,
4240 "dismissed_at": null
4241 },
4242 "notes": "The alert is `open` again, and a reopened secret stops pushes that carry it. The same roles as dismissing: Admin for a secret, Write for a dependency."
API: notifications over REST and MCP, with notifications scopes4243 },
4244 "list_notifications": {
4245 "query": {
4246 "participating": "true"
4247 },
4248 "response": {
4249 "items": [
4250 {
4251 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4252 "reason": "review_requested",
4253 "severity": "warning",
4254 "title": "ada asked you to review flagon-io/hello#14",
4255 "body": "Add a greeting to the README",
4256 "event": "pull.review_requested",
4257 "repo": "flagon-io/hello",
4258 "workspace": "flagon-io",
4259 "subject": "pull",
4260 "number": 14,
4261 "url": "/flagon-io/hello/pull/14",
4262 "actor": "ada",
4263 "count": 3,
4264 "created_at": "2026-10-06T15:02:11.000Z",
4265 "updated_at": "2026-10-07T09:41:30.000Z",
4266 "read_at": null,
4267 "done_at": null,
4268 "saved": false,
4269 "snoozed_until": null
4270 },
4271 {
4272 "id": "ntf_01kp7k9a8b7c6d5e4f3g2h1j0k",
4273 "reason": "ci_activity",
4274 "severity": "error",
4275 "title": "Production of hello failed to deploy",
4276 "body": "The build failed: npm run build exited with 1.",
4277 "event": "deployment.failed",
4278 "repo": "flagon-io/hello",
4279 "workspace": "flagon-io",
4280 "subject": "deploy",
4281 "number": null,
4282 "url": "/flagon-io/hello/deployments/dpl_01kp7k8z7y6x5w4v3t2s1r0q9p",
4283 "actor": "syntaqx",
4284 "count": 1,
4285 "created_at": "2026-10-07T08:12:40.000Z",
4286 "updated_at": "2026-10-07T08:12:40.000Z",
4287 "read_at": null,
4288 "done_at": null,
4289 "saved": false,
4290 "snoozed_until": null
4291 }
4292 ],
4293 "next": null
4294 },
4295 "notes": "Unread threads only, unless `all=true`. Threads that wait on you (an agent, or a review asked of you) have severity `warning`.\n\n| `reason` | You were told because |\n| --- | --- |\n| `agent` | An agent is waiting on you: it asked a question, or g1t stopped until a person steps in |\n| `review_requested` | You were asked to review |\n| `assign` | You were assigned |\n| `mention` | Someone mentioned you by `@username` |\n| `ci_activity` | Checks, a workflow or a deployment on your work finished |\n| `security_alert` | A security alert on a repository you look after |\n| `state_change` | It was closed, reopened or merged |\n| `author` | You opened it, or asked g1t for it |\n| `comment` | You commented on it |\n| `manual` | You subscribed to it by hand |\n| `subscribed` | You watch its repository |\n\nWith `participating=true`, threads you only follow (`manual`, `subscribed`) are left out. For the next page, pass `next` as `cursor`; `next` is null on the last."
4296 },
4297 "list_repo_notifications": {
4298 "params": {
4299 "owner": "flagon-io",
4300 "name": "hello"
4301 },
4302 "query": {
4303 "all": "true"
4304 },
4305 "response": {
4306 "items": [
4307 {
4308 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4309 "reason": "review_requested",
4310 "severity": "warning",
4311 "title": "ada asked you to review flagon-io/hello#14",
4312 "body": "Add a greeting to the README",
4313 "event": "pull.review_requested",
4314 "repo": "flagon-io/hello",
4315 "workspace": "flagon-io",
4316 "subject": "pull",
4317 "number": 14,
4318 "url": "/flagon-io/hello/pull/14",
4319 "actor": "ada",
4320 "count": 3,
4321 "created_at": "2026-10-06T15:02:11.000Z",
4322 "updated_at": "2026-10-07T09:41:30.000Z",
4323 "read_at": "2026-10-07T09:50:00.000Z",
4324 "done_at": null,
4325 "saved": false,
4326 "snoozed_until": null
4327 },
4328 {
4329 "id": "ntf_01kp7k9a8b7c6d5e4f3g2h1j0k",
4330 "reason": "ci_activity",
4331 "severity": "error",
4332 "title": "Production of hello failed to deploy",
4333 "body": "The build failed: npm run build exited with 1.",
4334 "event": "deployment.failed",
4335 "repo": "flagon-io/hello",
4336 "workspace": "flagon-io",
4337 "subject": "deploy",
4338 "number": null,
4339 "url": "/flagon-io/hello/deployments/dpl_01kp7k8z7y6x5w4v3t2s1r0q9p",
4340 "actor": "syntaqx",
4341 "count": 1,
4342 "created_at": "2026-10-07T08:12:40.000Z",
4343 "updated_at": "2026-10-07T08:12:40.000Z",
4344 "read_at": null,
4345 "done_at": null,
4346 "saved": false,
4347 "snoozed_until": null
4348 }
4349 ],
4350 "next": "ntf_01kp7k9a8b7c6d5e4f3g2h1j0k"
4351 },
4352 "notes": "The same as `GET /notifications`, for one repository you can read."
4353 },
4354 "mark_notifications_read": {
4355 "request": {
4356 "last_read_at": "2026-10-07T10:00:00Z"
4357 },
4358 "response": {
4359 "marked": 12,
4360 "last_read_at": "2026-10-07T10:00:00.000Z"
4361 },
4362 "notes": "Threads with activity after `last_read_at` stay unread, so send the time you last listed them."
4363 },
4364 "mark_repo_notifications_read": {
4365 "params": {
4366 "owner": "flagon-io",
4367 "name": "hello"
4368 },
4369 "request": {},
4370 "response": {
4371 "marked": 3,
4372 "last_read_at": "2026-10-07T10:02:41.512Z"
4373 }
4374 },
4375 "get_notification_thread": {
4376 "params": {
4377 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4378 },
4379 "response": {
4380 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4381 "reason": "review_requested",
4382 "severity": "warning",
4383 "title": "ada asked you to review flagon-io/hello#14",
4384 "body": "Add a greeting to the README",
4385 "event": "pull.review_requested",
4386 "repo": "flagon-io/hello",
4387 "workspace": "flagon-io",
4388 "subject": "pull",
4389 "number": 14,
4390 "url": "/flagon-io/hello/pull/14",
4391 "actor": "ada",
4392 "count": 3,
4393 "created_at": "2026-10-06T15:02:11.000Z",
4394 "updated_at": "2026-10-07T09:41:30.000Z",
4395 "read_at": null,
4396 "done_at": null,
4397 "saved": false,
4398 "snoozed_until": null,
4399 "activity": [
4400 {
4401 "reason": "review_requested",
4402 "severity": "warning",
4403 "title": "ada asked you to review flagon-io/hello#14",
4404 "body": "Add a greeting to the README",
4405 "event": "pull.review_requested",
4406 "actor": "ada",
4407 "created_at": "2026-10-07T09:41:30.000Z"
4408 },
4409 {
4410 "reason": "comment",
4411 "severity": "info",
4412 "title": "ada commented on flagon-io/hello#14",
4413 "body": "Pushed the fix for the heading.",
4414 "event": "comment.created",
4415 "actor": "ada",
4416 "created_at": "2026-10-06T18:20:02.000Z"
4417 },
4418 {
4419 "reason": "comment",
4420 "severity": "info",
4421 "title": "g1t commented on flagon-io/hello#14",
4422 "body": "The heading level is off by one.",
4423 "event": "comment.created",
4424 "actor": "g1t",
4425 "created_at": "2026-10-06T15:02:11.000Z"
4426 }
4427 ],
4428 "subscription": {
4429 "subscribed": true,
4430 "ignored": false,
4431 "reason": "review_requested",
4432 "repo": "flagon-io/hello",
4433 "number": 14,
4434 "updated_at": null
4435 }
4436 },
4437 "notes": "`activity` keeps the last 10 things that happened on the thread, newest first; `count` is how many there have been. `subscription` is null for a workflow or a deployment, which nobody subscribes to."
4438 },
4439 "mark_thread_read": {
4440 "params": {
4441 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4442 },
4443 "request": {},
4444 "response": {
4445 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4446 "reason": "review_requested",
4447 "severity": "warning",
4448 "title": "ada asked you to review flagon-io/hello#14",
4449 "body": "Add a greeting to the README",
4450 "event": "pull.review_requested",
4451 "repo": "flagon-io/hello",
4452 "workspace": "flagon-io",
4453 "subject": "pull",
4454 "number": 14,
4455 "url": "/flagon-io/hello/pull/14",
4456 "actor": "ada",
4457 "count": 3,
4458 "created_at": "2026-10-06T15:02:11.000Z",
4459 "updated_at": "2026-10-07T09:41:30.000Z",
4460 "read_at": "2026-10-07T10:03:00.000Z",
4461 "done_at": null,
4462 "saved": false,
4463 "snoozed_until": null,
4464 "activity": [
4465 {
4466 "reason": "review_requested",
4467 "severity": "warning",
4468 "title": "ada asked you to review flagon-io/hello#14",
4469 "body": "Add a greeting to the README",
4470 "event": "pull.review_requested",
4471 "actor": "ada",
4472 "created_at": "2026-10-07T09:41:30.000Z"
4473 },
4474 {
4475 "reason": "comment",
4476 "severity": "info",
4477 "title": "ada commented on flagon-io/hello#14",
4478 "body": "Pushed the fix for the heading.",
4479 "event": "comment.created",
4480 "actor": "ada",
4481 "created_at": "2026-10-06T18:20:02.000Z"
4482 },
4483 {
4484 "reason": "comment",
4485 "severity": "info",
4486 "title": "g1t commented on flagon-io/hello#14",
4487 "body": "The heading level is off by one.",
4488 "event": "comment.created",
4489 "actor": "g1t",
4490 "created_at": "2026-10-06T15:02:11.000Z"
4491 }
4492 ],
4493 "subscription": {
4494 "subscribed": true,
4495 "ignored": false,
4496 "reason": "review_requested",
4497 "repo": "flagon-io/hello",
4498 "number": 14,
4499 "updated_at": null
4500 }
4501 }
4502 },
4503 "mark_thread_done": {
4504 "params": {
4505 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4506 },
4507 "response": {
4508 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4509 "reason": "review_requested",
4510 "severity": "warning",
4511 "title": "ada asked you to review flagon-io/hello#14",
4512 "body": "Add a greeting to the README",
4513 "event": "pull.review_requested",
4514 "repo": "flagon-io/hello",
4515 "workspace": "flagon-io",
4516 "subject": "pull",
4517 "number": 14,
4518 "url": "/flagon-io/hello/pull/14",
4519 "actor": "ada",
4520 "count": 3,
4521 "created_at": "2026-10-06T15:02:11.000Z",
4522 "updated_at": "2026-10-07T09:41:30.000Z",
4523 "read_at": "2026-10-07T10:03:00.000Z",
4524 "done_at": "2026-10-07T10:03:00.000Z",
4525 "saved": false,
4526 "snoozed_until": null,
4527 "activity": [
4528 {
4529 "reason": "review_requested",
4530 "severity": "warning",
4531 "title": "ada asked you to review flagon-io/hello#14",
4532 "body": "Add a greeting to the README",
4533 "event": "pull.review_requested",
4534 "actor": "ada",
4535 "created_at": "2026-10-07T09:41:30.000Z"
4536 },
4537 {
4538 "reason": "comment",
4539 "severity": "info",
4540 "title": "ada commented on flagon-io/hello#14",
4541 "body": "Pushed the fix for the heading.",
4542 "event": "comment.created",
4543 "actor": "ada",
4544 "created_at": "2026-10-06T18:20:02.000Z"
4545 },
4546 {
4547 "reason": "comment",
4548 "severity": "info",
4549 "title": "g1t commented on flagon-io/hello#14",
4550 "body": "The heading level is off by one.",
4551 "event": "comment.created",
4552 "actor": "g1t",
4553 "created_at": "2026-10-06T15:02:11.000Z"
4554 }
4555 ],
4556 "subscription": {
4557 "subscribed": true,
4558 "ignored": false,
4559 "reason": "review_requested",
4560 "repo": "flagon-io/hello",
4561 "number": 14,
4562 "updated_at": null
4563 }
4564 },
4565 "notes": "New activity on a done thread brings it back to the inbox, unread."
4566 },
4567 "save_thread": {
4568 "params": {
4569 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4570 },
4571 "request": {},
4572 "response": {
4573 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4574 "reason": "review_requested",
4575 "severity": "warning",
4576 "title": "ada asked you to review flagon-io/hello#14",
4577 "body": "Add a greeting to the README",
4578 "event": "pull.review_requested",
4579 "repo": "flagon-io/hello",
4580 "workspace": "flagon-io",
4581 "subject": "pull",
4582 "number": 14,
4583 "url": "/flagon-io/hello/pull/14",
4584 "actor": "ada",
4585 "count": 3,
4586 "created_at": "2026-10-06T15:02:11.000Z",
4587 "updated_at": "2026-10-07T09:41:30.000Z",
4588 "read_at": null,
4589 "done_at": null,
4590 "saved": true,
4591 "snoozed_until": null,
4592 "activity": [
4593 {
4594 "reason": "review_requested",
4595 "severity": "warning",
4596 "title": "ada asked you to review flagon-io/hello#14",
4597 "body": "Add a greeting to the README",
4598 "event": "pull.review_requested",
4599 "actor": "ada",
4600 "created_at": "2026-10-07T09:41:30.000Z"
4601 },
4602 {
4603 "reason": "comment",
4604 "severity": "info",
4605 "title": "ada commented on flagon-io/hello#14",
4606 "body": "Pushed the fix for the heading.",
4607 "event": "comment.created",
4608 "actor": "ada",
4609 "created_at": "2026-10-06T18:20:02.000Z"
4610 },
4611 {
4612 "reason": "comment",
4613 "severity": "info",
4614 "title": "g1t commented on flagon-io/hello#14",
4615 "body": "The heading level is off by one.",
4616 "event": "comment.created",
4617 "actor": "g1t",
4618 "created_at": "2026-10-06T15:02:11.000Z"
4619 }
4620 ],
4621 "subscription": {
4622 "subscribed": true,
4623 "ignored": false,
4624 "reason": "review_requested",
4625 "repo": "flagon-io/hello",
4626 "number": 14,
4627 "updated_at": null
4628 }
4629 }
4630 },
4631 "unsave_thread": {
4632 "params": {
4633 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4634 },
4635 "response": {
4636 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4637 "reason": "review_requested",
4638 "severity": "warning",
4639 "title": "ada asked you to review flagon-io/hello#14",
4640 "body": "Add a greeting to the README",
4641 "event": "pull.review_requested",
4642 "repo": "flagon-io/hello",
4643 "workspace": "flagon-io",
4644 "subject": "pull",
4645 "number": 14,
4646 "url": "/flagon-io/hello/pull/14",
4647 "actor": "ada",
4648 "count": 3,
4649 "created_at": "2026-10-06T15:02:11.000Z",
4650 "updated_at": "2026-10-07T09:41:30.000Z",
4651 "read_at": null,
4652 "done_at": null,
4653 "saved": false,
4654 "snoozed_until": null,
4655 "activity": [
4656 {
4657 "reason": "review_requested",
4658 "severity": "warning",
4659 "title": "ada asked you to review flagon-io/hello#14",
4660 "body": "Add a greeting to the README",
4661 "event": "pull.review_requested",
4662 "actor": "ada",
4663 "created_at": "2026-10-07T09:41:30.000Z"
4664 },
4665 {
4666 "reason": "comment",
4667 "severity": "info",
4668 "title": "ada commented on flagon-io/hello#14",
4669 "body": "Pushed the fix for the heading.",
4670 "event": "comment.created",
4671 "actor": "ada",
4672 "created_at": "2026-10-06T18:20:02.000Z"
4673 },
4674 {
4675 "reason": "comment",
4676 "severity": "info",
4677 "title": "g1t commented on flagon-io/hello#14",
4678 "body": "The heading level is off by one.",
4679 "event": "comment.created",
4680 "actor": "g1t",
4681 "created_at": "2026-10-06T15:02:11.000Z"
4682 }
4683 ],
4684 "subscription": {
4685 "subscribed": true,
4686 "ignored": false,
4687 "reason": "review_requested",
4688 "repo": "flagon-io/hello",
4689 "number": 14,
4690 "updated_at": null
4691 }
4692 }
4693 },
4694 "snooze_thread": {
4695 "params": {
4696 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4697 },
4698 "request": {
4699 "until": "2026-10-08T09:00:00Z"
4700 },
4701 "response": {
4702 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4703 "reason": "review_requested",
4704 "severity": "warning",
4705 "title": "ada asked you to review flagon-io/hello#14",
4706 "body": "Add a greeting to the README",
4707 "event": "pull.review_requested",
4708 "repo": "flagon-io/hello",
4709 "workspace": "flagon-io",
4710 "subject": "pull",
4711 "number": 14,
4712 "url": "/flagon-io/hello/pull/14",
4713 "actor": "ada",
4714 "count": 3,
4715 "created_at": "2026-10-06T15:02:11.000Z",
4716 "updated_at": "2026-10-07T09:41:30.000Z",
4717 "read_at": "2026-10-07T10:03:00.000Z",
4718 "done_at": null,
4719 "saved": false,
4720 "snoozed_until": "2026-10-08T09:00:00.000Z",
4721 "activity": [
4722 {
4723 "reason": "review_requested",
4724 "severity": "warning",
4725 "title": "ada asked you to review flagon-io/hello#14",
4726 "body": "Add a greeting to the README",
4727 "event": "pull.review_requested",
4728 "actor": "ada",
4729 "created_at": "2026-10-07T09:41:30.000Z"
4730 },
4731 {
4732 "reason": "comment",
4733 "severity": "info",
4734 "title": "ada commented on flagon-io/hello#14",
4735 "body": "Pushed the fix for the heading.",
4736 "event": "comment.created",
4737 "actor": "ada",
4738 "created_at": "2026-10-06T18:20:02.000Z"
4739 },
4740 {
4741 "reason": "comment",
4742 "severity": "info",
4743 "title": "g1t commented on flagon-io/hello#14",
4744 "body": "The heading level is off by one.",
4745 "event": "comment.created",
4746 "actor": "g1t",
4747 "created_at": "2026-10-06T15:02:11.000Z"
4748 }
4749 ],
4750 "subscription": {
4751 "subscribed": true,
4752 "ignored": false,
4753 "reason": "review_requested",
4754 "repo": "flagon-io/hello",
4755 "number": 14,
4756 "updated_at": null
4757 }
4758 }
4759 },
4760 "unsnooze_thread": {
4761 "params": {
4762 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4763 },
4764 "response": {
4765 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a",
4766 "reason": "review_requested",
4767 "severity": "warning",
4768 "title": "ada asked you to review flagon-io/hello#14",
4769 "body": "Add a greeting to the README",
4770 "event": "pull.review_requested",
4771 "repo": "flagon-io/hello",
4772 "workspace": "flagon-io",
4773 "subject": "pull",
4774 "number": 14,
4775 "url": "/flagon-io/hello/pull/14",
4776 "actor": "ada",
4777 "count": 3,
4778 "created_at": "2026-10-06T15:02:11.000Z",
4779 "updated_at": "2026-10-07T09:41:30.000Z",
4780 "read_at": "2026-10-07T10:03:00.000Z",
4781 "done_at": null,
4782 "saved": false,
4783 "snoozed_until": null,
4784 "activity": [
4785 {
4786 "reason": "review_requested",
4787 "severity": "warning",
4788 "title": "ada asked you to review flagon-io/hello#14",
4789 "body": "Add a greeting to the README",
4790 "event": "pull.review_requested",
4791 "actor": "ada",
4792 "created_at": "2026-10-07T09:41:30.000Z"
4793 },
4794 {
4795 "reason": "comment",
4796 "severity": "info",
4797 "title": "ada commented on flagon-io/hello#14",
4798 "body": "Pushed the fix for the heading.",
4799 "event": "comment.created",
4800 "actor": "ada",
4801 "created_at": "2026-10-06T18:20:02.000Z"
4802 },
4803 {
4804 "reason": "comment",
4805 "severity": "info",
4806 "title": "g1t commented on flagon-io/hello#14",
4807 "body": "The heading level is off by one.",
4808 "event": "comment.created",
4809 "actor": "g1t",
4810 "created_at": "2026-10-06T15:02:11.000Z"
4811 }
4812 ],
4813 "subscription": {
4814 "subscribed": true,
4815 "ignored": false,
4816 "reason": "review_requested",
4817 "repo": "flagon-io/hello",
4818 "number": 14,
4819 "updated_at": null
4820 }
4821 }
4822 },
4823 "get_thread_subscription": {
4824 "params": {
4825 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4826 },
4827 "response": {
4828 "subscribed": true,
4829 "ignored": false,
4830 "reason": "review_requested",
4831 "repo": "flagon-io/hello",
4832 "number": 14,
4833 "updated_at": null
4834 }
4835 },
4836 "set_thread_subscription": {
4837 "params": {
4838 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4839 },
4840 "request": {
4841 "ignored": true
4842 },
4843 "response": {
4844 "subscribed": false,
4845 "ignored": true,
4846 "reason": null,
4847 "repo": "flagon-io/hello",
4848 "number": 14,
4849 "updated_at": "2026-10-07T10:04:00.000Z"
4850 },
4851 "notes": "| Body | Then |\n| --- | --- |\n| `{}` or `{\"subscribed\": true}` | You hear of what happens on it |\n| `{\"subscribed\": false}` | You hear only of what is asked of you |\n| `{\"ignored\": true}` | You hear of nothing on it, not even a mention |"
4852 },
4853 "delete_thread_subscription": {
4854 "params": {
4855 "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a"
4856 },
4857 "response": {
4858 "subscribed": false,
4859 "ignored": false,
4860 "reason": null,
4861 "repo": "flagon-io/hello",
4862 "number": 14,
4863 "updated_at": "2026-10-07T10:04:00.000Z"
4864 }
4865 },
4866 "get_issue_subscription": {
4867 "params": {
4868 "owner": "flagon-io",
4869 "name": "hello",
4870 "number": 14
4871 },
4872 "response": {
4873 "subscribed": true,
4874 "ignored": false,
4875 "reason": "author",
4876 "repo": null,
4877 "number": 14,
4878 "updated_at": null
4879 }
4880 },
4881 "set_issue_subscription": {
4882 "params": {
4883 "owner": "flagon-io",
4884 "name": "hello",
4885 "number": 14
4886 },
4887 "request": {
4888 "subscribed": true
4889 },
4890 "response": {
4891 "subscribed": true,
4892 "ignored": false,
4893 "reason": "manual",
4894 "repo": null,
4895 "number": 14,
4896 "updated_at": "2026-10-07T10:05:00.000Z"
4897 }
4898 },
4899 "delete_issue_subscription": {
4900 "params": {
4901 "owner": "flagon-io",
4902 "name": "hello",
4903 "number": 14
4904 },
4905 "response": {
4906 "subscribed": false,
4907 "ignored": false,
4908 "reason": null,
4909 "repo": null,
4910 "number": 14,
4911 "updated_at": "2026-10-07T10:05:30.000Z"
4912 }
4913 },
4914 "get_repo_subscription": {
4915 "params": {
4916 "owner": "flagon-io",
4917 "name": "hello"
4918 },
4919 "response": {
4920 "repo": "flagon-io/hello",
4921 "level": "participating",
4922 "events": [],
4923 "subscribed": false,
4924 "ignored": false,
4925 "updated_at": null
4926 }
4927 },
4928 "set_repo_subscription": {
4929 "params": {
4930 "owner": "flagon-io",
4931 "name": "hello"
4932 },
4933 "request": {
4934 "level": "custom",
4935 "events": [
4936 "pulls",
4937 "deployments"
4938 ]
4939 },
4940 "response": {
4941 "repo": "flagon-io/hello",
4942 "level": "custom",
4943 "events": [
4944 "pulls",
4945 "deployments"
4946 ],
4947 "subscribed": true,
4948 "ignored": false,
4949 "updated_at": "2026-10-07T10:06:00.000Z"
4950 },
4951 "notes": "| `level` | You hear of |\n| --- | --- |\n| `participating` | What you take part in, or are mentioned in (the default) |\n| `all` | Every issue and pull request opened, commented on, closed or merged, and every deployment |\n| `custom` | What you take part in, and the kinds in `events`: `issues`, `pulls`, `deployments`, `security` |\n| `ignore` | Nothing, not even a mention |\n\nInstead of `level`, `{\"subscribed\": true}` is `all`, `{\"subscribed\": false}` is `participating` and `{\"ignored\": true}` is `ignore`."
4952 },
4953 "delete_repo_subscription": {
4954 "params": {
4955 "owner": "flagon-io",
4956 "name": "hello"
4957 },
4958 "response": {
4959 "repo": "flagon-io/hello",
4960 "level": "participating",
4961 "events": [],
4962 "subscribed": false,
4963 "ignored": false,
4964 "updated_at": null
4965 }
4966 },
4967 "list_watched_repos": {
4968 "response": [
4969 {
4970 "repo": "flagon-io/hello",
4971 "level": "all",
4972 "events": [],
4973 "subscribed": true,
4974 "ignored": false,
4975 "updated_at": "2026-10-07T10:00:00.000Z"
4976 },
4977 {
4978 "repo": "flagon-io/docs",
4979 "level": "ignore",
4980 "events": [],
4981 "subscribed": false,
4982 "ignored": true,
4983 "updated_at": "2026-10-05T14:30:00.000Z"
4984 }
4985 ]
API: pinned projects over REST and MCP4986 },
4987 "list_pinned_projects": {
4988 "params": {
4989 "workspace": "flagon-io"
4990 },
4991 "response": [
4992 {
4993 "position": 0,
4994 "id": "prj_01kkp3m8w2f6t9qh4c7d1r5n0x",
4995 "workspace": "flagon-io",
4996 "slug": "g1t",
4997 "name": "g1t",
4998 "description": null,
4999 "private": false,
5000 "archived": false,
5001 "kind": "app",
5002 "url": "https://g1t.sh/flagon-io/g1t",
5003 "pushed_at": "2026-10-07T10:00:00.000Z",
5004 "updated_at": "2026-10-01T09:12:00.000Z"
5005 },
5006 {
5007 "position": 1,
5008 "id": "prj_01kkq0c4d9h2w7rn5f8t3k6p2z",
5009 "workspace": "flagon-io",
5010 "slug": "lab-api",
5011 "name": "lab-api",
5012 "description": null,
5013 "private": true,
5014 "archived": false,
5015 "kind": "app",
5016 "url": "https://g1t.sh/flagon-io/lab-api",
5017 "pushed_at": "2026-10-06T18:40:00.000Z",
5018 "updated_at": "2026-10-01T09:12:00.000Z"
5019 },
5020 {
5021 "position": 2,
5022 "id": "prj_01kkp3n2a7e5v8sk3b6g9j4m1y",
5023 "workspace": "flagon-io",
5024 "slug": "hello",
5025 "name": "hello",
5026 "description": "Greets people from the command line.",
5027 "private": false,
5028 "archived": false,
5029 "kind": "library",
5030 "url": "https://g1t.sh/flagon-io/hello",
5031 "pushed_at": null,
5032 "updated_at": "2026-10-01T09:12:00.000Z"
5033 }
5034 ],
5035 "notes": "In your order: `position` 0 first. The sidebar shows these, then the projects you opened last. `pushed_at` is null until the project's repository is pushed to."
5036 },
5037 "pin_project": {
5038 "params": {
5039 "workspace": "flagon-io",
5040 "project": "hello"
5041 },
5042 "request": {
5043 "position": 0
5044 },
5045 "response": [
5046 {
5047 "position": 0,
5048 "id": "prj_01kkp3n2a7e5v8sk3b6g9j4m1y",
5049 "workspace": "flagon-io",
5050 "slug": "hello",
5051 "name": "hello",
5052 "description": "Greets people from the command line.",
5053 "private": false,
5054 "archived": false,
5055 "kind": "library",
5056 "url": "https://g1t.sh/flagon-io/hello",
5057 "pushed_at": null,
5058 "updated_at": "2026-10-01T09:12:00.000Z"
5059 },
5060 {
5061 "position": 1,
5062 "id": "prj_01kkp3m8w2f6t9qh4c7d1r5n0x",
5063 "workspace": "flagon-io",
5064 "slug": "g1t",
5065 "name": "g1t",
5066 "description": null,
5067 "private": false,
5068 "archived": false,
5069 "kind": "app",
5070 "url": "https://g1t.sh/flagon-io/g1t",
5071 "pushed_at": "2026-10-07T10:00:00.000Z",
5072 "updated_at": "2026-10-01T09:12:00.000Z"
5073 },
5074 {
5075 "position": 2,
5076 "id": "prj_01kkq0c4d9h2w7rn5f8t3k6p2z",
5077 "workspace": "flagon-io",
5078 "slug": "lab-api",
5079 "name": "lab-api",
5080 "description": null,
5081 "private": true,
5082 "archived": false,
5083 "kind": "app",
5084 "url": "https://g1t.sh/flagon-io/lab-api",
5085 "pushed_at": "2026-10-06T18:40:00.000Z",
5086 "updated_at": "2026-10-01T09:12:00.000Z"
5087 }
5088 ],
5089 "notes": "A ninth pin in a workspace is refused with `409 conflict`: unpin one first."
5090 },
5091 "unpin_project": {
5092 "params": {
5093 "workspace": "flagon-io",
5094 "project": "lab-api"
5095 },
5096 "response": [
5097 {
5098 "position": 0,
5099 "id": "prj_01kkp3m8w2f6t9qh4c7d1r5n0x",
5100 "workspace": "flagon-io",
5101 "slug": "g1t",
5102 "name": "g1t",
5103 "description": null,
5104 "private": false,
5105 "archived": false,
5106 "kind": "app",
5107 "url": "https://g1t.sh/flagon-io/g1t",
5108 "pushed_at": "2026-10-07T10:00:00.000Z",
5109 "updated_at": "2026-10-01T09:12:00.000Z"
5110 },
5111 {
5112 "position": 1,
5113 "id": "prj_01kkp3n2a7e5v8sk3b6g9j4m1y",
5114 "workspace": "flagon-io",
5115 "slug": "hello",
5116 "name": "hello",
5117 "description": "Greets people from the command line.",
5118 "private": false,
5119 "archived": false,
5120 "kind": "library",
5121 "url": "https://g1t.sh/flagon-io/hello",
5122 "pushed_at": null,
5123 "updated_at": "2026-10-01T09:12:00.000Z"
5124 }
5125 ]
5126 },
5127 "reorder_pinned_projects": {
5128 "params": {
5129 "workspace": "flagon-io"
5130 },
5131 "request": {
5132 "projects": [
5133 "lab-api",
5134 "g1t",
5135 "hello"
5136 ]
5137 },
5138 "response": [
5139 {
5140 "position": 0,
5141 "id": "prj_01kkq0c4d9h2w7rn5f8t3k6p2z",
5142 "workspace": "flagon-io",
5143 "slug": "lab-api",
5144 "name": "lab-api",
5145 "description": null,
5146 "private": true,
5147 "archived": false,
5148 "kind": "app",
5149 "url": "https://g1t.sh/flagon-io/lab-api",
5150 "pushed_at": "2026-10-06T18:40:00.000Z",
5151 "updated_at": "2026-10-01T09:12:00.000Z"
5152 },
5153 {
5154 "position": 1,
5155 "id": "prj_01kkp3m8w2f6t9qh4c7d1r5n0x",
5156 "workspace": "flagon-io",
5157 "slug": "g1t",
5158 "name": "g1t",
5159 "description": null,
5160 "private": false,
5161 "archived": false,
5162 "kind": "app",
5163 "url": "https://g1t.sh/flagon-io/g1t",
5164 "pushed_at": "2026-10-07T10:00:00.000Z",
5165 "updated_at": "2026-10-01T09:12:00.000Z"
5166 },
5167 {
5168 "position": 2,
5169 "id": "prj_01kkp3n2a7e5v8sk3b6g9j4m1y",
5170 "workspace": "flagon-io",
5171 "slug": "hello",
5172 "name": "hello",
5173 "description": "Greets people from the command line.",
5174 "private": false,
5175 "archived": false,
5176 "kind": "library",
5177 "url": "https://g1t.sh/flagon-io/hello",
5178 "pushed_at": null,
5179 "updated_at": "2026-10-01T09:12:00.000Z"
5180 }
5181 ],
5182 "notes": "Name every pinned project once; anything else is refused with `422 invalid`."
Merge branch 'worktree-agent-ab2e39e11a6493412'5183 }
5184}

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