flagon-io/g1t

public

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

g1t/apps/api/src/reference.json

3,681 lines105,447 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 }
43 ]
44 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look45 "notes": "`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'46 },
47 "create_workspace": {
48 "request": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look49 "slug": "acme-labs",
50 "name": "Acme Labs"
Merge branch 'worktree-agent-ab2e39e11a6493412'51 },
52 "response": {
53 "id": "wsp_01m43teqa9em6bje0bhvdj4jkb",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look54 "slug": "acme-labs",
55 "name": "Acme Labs",
Merge branch 'worktree-agent-ab2e39e11a6493412'56 "description": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API57 "created_at": "2026-10-04T16:02:51.337Z",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look58 "member_count": 1,
59 "base_permission": "write"
60 },
61 "notes": "`base_permission` is what every member gets on each of its repositories: `write` until an owner changes it with `PATCH /workspaces/{workspace}`. See [Access and roles](/guides/access-and-roles/)."
62 },
63 "delete_workspace": {
64 "request": {
65 "confirm": "acme-labs"
66 },
67 "response": true,
68 "notes": "Refused with `409` while the workspace holds repositories or projects, and with `402` while billing cannot settle it, each with a message that says what to do. See [Delete a workspace](/guides/workspaces/#delete-a-workspace)."
69 },
70 "list_emails": {
71 "response": {
72 "emails": [
73 {
74 "email": "ada@example.com",
75 "verified": true,
76 "primary": true,
77 "backup": false,
78 "created_at": "2026-09-01T10:00:00.000Z",
79 "verified_at": "2026-09-01T10:02:11.000Z"
80 },
81 {
82 "email": "ada@acme.com",
83 "verified": true,
84 "primary": false,
85 "backup": true,
86 "created_at": "2026-10-02T09:30:00.000Z",
87 "verified_at": "2026-10-02T09:31:40.000Z"
88 },
89 {
90 "email": "ada.l@example.org",
91 "verified": false,
92 "primary": false,
93 "backup": false,
94 "created_at": "2026-10-05T14:12:03.000Z",
95 "verified_at": null
96 }
97 ],
98 "private_email": true,
99 "block_private_pushes": false,
100 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
101 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
102 "limit": 10
103 },
104 "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)."
105 },
106 "add_email": {
107 "request": {
108 "email": "ada.l@example.org",
109 "password": "…"
110 },
111 "response": {
112 "emails": [
113 {
114 "email": "ada@example.com",
115 "verified": true,
116 "primary": true,
117 "backup": false,
118 "created_at": "2026-09-01T10:00:00.000Z",
119 "verified_at": "2026-09-01T10:02:11.000Z"
120 },
121 {
122 "email": "ada@acme.com",
123 "verified": true,
124 "primary": false,
125 "backup": true,
126 "created_at": "2026-10-02T09:30:00.000Z",
127 "verified_at": "2026-10-02T09:31:40.000Z"
128 },
129 {
130 "email": "ada.l@example.org",
131 "verified": false,
132 "primary": false,
133 "backup": false,
134 "created_at": "2026-10-05T14:12:03.000Z",
135 "verified_at": null
136 }
137 ],
138 "private_email": true,
139 "block_private_pushes": false,
140 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
141 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
142 "limit": 10
143 },
144 "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."
145 },
146 "remove_email": {
147 "request": {
148 "password": "…"
149 },
150 "response": {
151 "emails": [
152 {
153 "email": "ada@example.com",
154 "verified": true,
155 "primary": true,
156 "backup": false,
157 "created_at": "2026-09-01T10:00:00.000Z",
158 "verified_at": "2026-09-01T10:02:11.000Z"
159 },
160 {
161 "email": "ada@acme.com",
162 "verified": true,
163 "primary": false,
164 "backup": true,
165 "created_at": "2026-10-02T09:30:00.000Z",
166 "verified_at": "2026-10-02T09:31:40.000Z"
167 },
168 {
169 "email": "ada.l@example.org",
170 "verified": false,
171 "primary": false,
172 "backup": false,
173 "created_at": "2026-10-05T14:12:03.000Z",
174 "verified_at": null
175 }
176 ],
177 "private_email": true,
178 "block_private_pushes": false,
179 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
180 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
181 "limit": 10
182 },
183 "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."
184 },
185 "update_email_settings": {
186 "request": {
187 "primary": "ada@acme.com",
188 "password": "…"
189 },
190 "response": {
191 "emails": [
192 {
193 "email": "ada@example.com",
194 "verified": true,
195 "primary": true,
196 "backup": false,
197 "created_at": "2026-09-01T10:00:00.000Z",
198 "verified_at": "2026-09-01T10:02:11.000Z"
199 },
200 {
201 "email": "ada@acme.com",
202 "verified": true,
203 "primary": false,
204 "backup": true,
205 "created_at": "2026-10-02T09:30:00.000Z",
206 "verified_at": "2026-10-02T09:31:40.000Z"
207 },
208 {
209 "email": "ada.l@example.org",
210 "verified": false,
211 "primary": false,
212 "backup": false,
213 "created_at": "2026-10-05T14:12:03.000Z",
214 "verified_at": null
215 }
216 ],
217 "private_email": true,
218 "block_private_pushes": false,
219 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
220 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
221 "limit": 10
222 },
223 "notes": "Only the fields given change. `primary` and `backup` need `password`; `private_email` and `block_private_pushes` do not."
224 },
225 "list_invites": {
226 "response": {
227 "mode": "invite",
228 "allowance": {
229 "limit": 5,
230 "used": 2,
231 "remaining": 3
232 },
233 "workspaces": [
234 {
235 "slug": "acme-labs",
236 "allowance": {
237 "limit": 20,
238 "used": 4,
239 "remaining": 16
240 }
241 }
242 ],
243 "invites": [
244 {
245 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
246 "code": "g1t-k7m2-q9xd-4hpw-…",
247 "hint": "g1t-k7m2",
248 "email": "ada@example.com",
249 "kind": "account",
250 "workspace": null,
251 "status": "pending",
252 "charged_to": "user",
253 "invited_by": "syntaqx",
254 "redeemed_by": null,
255 "created_at": "2026-10-05T17:00:00.000Z",
256 "expires_at": "2026-11-04T17:00:00.000Z",
257 "redeemed_at": null,
258 "revoked_at": null
259 },
260 {
261 "id": "inv_01kp1v3c4d5e6f7g8h9j0k1m2n",
262 "code": null,
263 "hint": "g1t-p3rt",
264 "email": null,
265 "kind": "account",
266 "workspace": null,
267 "status": "redeemed",
268 "charged_to": "user",
269 "invited_by": "syntaqx",
270 "redeemed_by": "grace",
271 "created_at": "2026-10-02T09:12:40.000Z",
272 "expires_at": "2026-11-01T09:12:40.000Z",
273 "redeemed_at": "2026-10-02T11:30:05.000Z",
274 "revoked_at": null
275 }
276 ]
277 },
278 "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)."
279 },
280 "create_invite": {
281 "request": {
282 "email": "ada@example.com"
283 },
284 "response": {
285 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
286 "code": "g1t-k7m2-q9xd-4hpw-…",
287 "hint": "g1t-k7m2",
288 "email": "ada@example.com",
289 "kind": "account",
290 "workspace": null,
291 "status": "pending",
292 "charged_to": "user",
293 "invited_by": "syntaqx",
294 "redeemed_by": null,
295 "created_at": "2026-10-05T17:00:00.000Z",
296 "expires_at": "2026-11-04T17:00:00.000Z",
297 "redeemed_at": null,
298 "revoked_at": null
299 },
300 "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>`."
301 },
302 "revoke_invite": {
303 "response": {
304 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
305 "code": null,
306 "hint": "g1t-k7m2",
307 "email": "ada@example.com",
308 "kind": "account",
309 "workspace": null,
310 "status": "revoked",
311 "charged_to": "user",
312 "invited_by": "syntaqx",
313 "redeemed_by": null,
314 "created_at": "2026-10-05T17:00:00.000Z",
315 "expires_at": "2026-11-04T17:00:00.000Z",
316 "redeemed_at": null,
317 "revoked_at": "2026-10-06T08:00:00.000Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'318 }
319 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look320 "list_workspace_invites": {
321 "response": [
322 {
323 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
324 "code": "g1t-k7m2-q9xd-4hpw-…",
325 "hint": "g1t-k7m2",
326 "email": "ada@example.com",
327 "kind": "account",
328 "workspace": "acme-labs",
329 "status": "pending",
330 "charged_to": "workspace",
331 "invited_by": "syntaqx",
332 "redeemed_by": null,
333 "created_at": "2026-10-05T17:00:00.000Z",
334 "expires_at": "2026-11-04T17:00:00.000Z",
335 "redeemed_at": null,
336 "revoked_at": null
337 },
338 {
339 "id": "inv_01kp1z9y8x7w6v5t4s3r2q1p0n",
340 "code": "g1t-k7m2-q9xd-4hpw-…",
341 "hint": "g1t-w2vb",
342 "email": "linus@example.com",
343 "kind": "workspace",
344 "workspace": "acme-labs",
345 "status": "pending",
346 "charged_to": "none",
347 "invited_by": "syntaqx",
348 "redeemed_by": null,
349 "created_at": "2026-10-05T17:00:00.000Z",
350 "expires_at": "2026-11-04T17:00:00.000Z",
351 "redeemed_at": null,
352 "revoked_at": null
353 }
354 ]
355 },
356 "invite_member": {
357 "request": {
358 "email": "ada@example.com"
359 },
360 "response": {
361 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
362 "code": "g1t-k7m2-q9xd-4hpw-…",
363 "hint": "g1t-k7m2",
364 "email": "ada@example.com",
365 "kind": "account",
366 "workspace": "acme-labs",
367 "status": "pending",
368 "charged_to": "workspace",
369 "invited_by": "syntaqx",
370 "redeemed_by": null,
371 "created_at": "2026-10-05T17:00:00.000Z",
372 "expires_at": "2026-11-04T17:00:00.000Z",
373 "redeemed_at": null,
374 "revoked_at": null
375 },
376 "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."
377 },
378 "revoke_workspace_invite": {
379 "response": {
380 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
381 "code": null,
382 "hint": "g1t-k7m2",
383 "email": "ada@example.com",
384 "kind": "account",
385 "workspace": "acme-labs",
386 "status": "revoked",
387 "charged_to": "workspace",
388 "invited_by": "syntaqx",
389 "redeemed_by": null,
390 "created_at": "2026-10-05T17:00:00.000Z",
391 "expires_at": "2026-11-04T17:00:00.000Z",
392 "redeemed_at": null,
393 "revoked_at": "2026-10-06T08:00:00.000Z"
394 }
395 },
Merge branch 'worktree-agent-ab2e39e11a6493412'396 "list_repos": {
397 "query": {
398 "q": "hello"
399 },
400 "response": [
401 {
402 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look403 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'404 "name": "hello",
405 "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 API406 "is_private": false,
407 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
408 "default_branch": "main",
409 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'410 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look411 "created_at": "2026-09-28T14:11:52.640Z",
412 "website": "https://hello.g1t.page",
413 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'414 }
415 ],
416 "notes": "Returns at most 50 repositories, newest first. Forks made for pull requests are left out."
417 },
418 "create_repo": {
419 "request": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look420 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'421 "name": "hello-cli",
422 "description": "Command-line client for hello.",
423 "private": false
424 },
425 "response": {
426 "id": "rep_01m43tk1jhehztx23drs87f5fc",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look427 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'428 "name": "hello-cli",
429 "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 API430 "is_private": false,
431 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
432 "default_branch": "main",
433 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'434 "protected": false,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look435 "created_at": "2026-10-04T16:05:12.913Z",
436 "website": "https://hello.g1t.page",
437 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'438 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API439 "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'440 },
441 "get_repo": {
442 "response": {
443 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look444 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'445 "name": "hello",
446 "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 API447 "is_private": false,
448 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
449 "default_branch": "main",
450 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'451 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look452 "created_at": "2026-09-28T14:11:52.640Z",
453 "website": "https://hello.g1t.page",
454 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'455 }
456 },
457 "update_repo": {
458 "request": {
459 "description": "Says hello, politely.",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look460 "website": "hello.g1t.page",
461 "default_branch": "trunk",
Merge branch 'worktree-agent-ab2e39e11a6493412'462 "protected": true
463 },
464 "response": {
465 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look466 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'467 "name": "hello",
468 "description": "Says hello, politely.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API469 "is_private": false,
470 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look471 "default_branch": "trunk",
472 "fork_of": null,
473 "protected": true,
474 "created_at": "2026-09-28T14:11:52.640Z",
475 "topics": [
476 "http",
477 "example"
478 ],
479 "website": "https://hello.g1t.page",
480 "archived_at": null
481 },
482 "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/)."
483 },
484 "transfer_repo": {
485 "request": {
486 "to": "flagon-io"
487 },
488 "response": {
489 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
490 "namespace": "flagon-io",
491 "name": "hello",
492 "description": "A tiny service that says hello.",
493 "is_private": false,
494 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API495 "default_branch": "main",
496 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'497 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look498 "created_at": "2026-09-28T14:11:52.640Z",
499 "website": "https://hello.g1t.page",
500 "archived_at": null
501 },
502 "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'503 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look504 "rename_repo": {
505 "request": {
506 "name": "greeter"
507 },
508 "response": {
509 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
510 "namespace": "flagon-io",
511 "name": "greeter",
512 "description": "A tiny service that says hello.",
513 "is_private": false,
514 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
515 "default_branch": "main",
516 "fork_of": null,
517 "protected": true,
518 "created_at": "2026-09-28T14:11:52.640Z",
519 "topics": [
520 "http",
521 "example"
522 ],
523 "website": "https://hello.g1t.page",
524 "archived_at": null
525 },
526 "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)."
527 },
528 "rename_branch": {
529 "params": {
530 "owner": "flagon-io",
531 "name": "hello",
532 "branch": "feature/login"
533 },
534 "request": {
535 "new_name": "feature/sign-in"
536 },
537 "response": {
538 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
539 "namespace": "flagon-io",
540 "name": "hello",
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 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)."
556 },
557 "set_repo_visibility": {
558 "request": {
559 "private": true,
560 "confirm": "flagon-io/hello"
561 },
562 "response": {
563 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
564 "namespace": "flagon-io",
565 "name": "hello",
566 "description": "A tiny service that says hello.",
567 "is_private": true,
568 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
569 "default_branch": "main",
570 "fork_of": null,
571 "protected": true,
572 "created_at": "2026-09-28T14:11:52.640Z",
573 "topics": [
574 "http",
575 "example"
576 ],
577 "website": "https://hello.g1t.page",
578 "archived_at": null
579 },
580 "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)."
581 },
582 "archive_repo": {
583 "response": {
584 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
585 "namespace": "flagon-io",
586 "name": "hello",
587 "description": "A tiny service that says hello.",
588 "is_private": false,
589 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
590 "default_branch": "main",
591 "fork_of": null,
592 "protected": true,
593 "created_at": "2026-09-28T14:11:52.640Z",
594 "topics": [
595 "http",
596 "example"
597 ],
598 "website": "https://hello.g1t.page",
599 "archived_at": "2026-10-05T09:30:00.000Z"
600 },
601 "notes": "The repository, with `archived_at` set. Needs the Admin role (`403` otherwise). See [Archive a repository](/guides/managing-repositories/#archive-a-repository)."
602 },
603 "unarchive_repo": {
604 "response": {
605 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
606 "namespace": "flagon-io",
607 "name": "hello",
608 "description": "A tiny service that says hello.",
609 "is_private": false,
610 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
611 "default_branch": "main",
612 "fork_of": null,
613 "protected": true,
614 "created_at": "2026-09-28T14:11:52.640Z",
615 "topics": [
616 "http",
617 "example"
618 ],
619 "website": "https://hello.g1t.page",
620 "archived_at": null
621 },
622 "notes": "The repository, with `archived_at` null. Needs the Admin role (`403` otherwise)."
623 },
624 "delete_repo": {
625 "request": {
626 "confirm": "flagon-io/hello"
627 },
628 "response": {
629 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
630 "namespace": "flagon-io",
631 "name": "hello",
632 "description": "A tiny service that says hello.",
633 "is_private": false,
634 "deleted_at": "2026-10-05T09:30:00.000Z",
635 "deleted_by": "syntaqx",
636 "purge_after": "2026-11-04T09:30:00.000Z"
637 },
638 "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)."
639 },
640 "list_deleted_repos": {
641 "params": {
642 "workspace": "flagon-io"
643 },
644 "response": [
645 {
646 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
647 "namespace": "flagon-io",
648 "name": "hello",
649 "description": "A tiny service that says hello.",
650 "is_private": false,
651 "deleted_at": "2026-10-05T09:30:00.000Z",
652 "deleted_by": "syntaqx",
653 "purge_after": "2026-11-04T09:30:00.000Z"
654 }
655 ],
656 "notes": "Newest first. Empty for anyone who is not an owner of the workspace."
657 },
658 "restore_repo": {
659 "response": {
660 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
661 "namespace": "flagon-io",
662 "name": "hello",
663 "description": "A tiny service that says hello.",
664 "is_private": false,
665 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
666 "default_branch": "main",
667 "fork_of": null,
668 "protected": true,
669 "created_at": "2026-09-28T14:11:52.640Z",
670 "topics": [
671 "http",
672 "example"
673 ],
674 "website": "https://hello.g1t.page",
675 "archived_at": null
676 },
677 "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)."
678 },
679 "purge_repo": {
680 "request": {
681 "confirm": "flagon-io/hello"
682 },
683 "response": true,
684 "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."
685 },
Merge branch 'worktree-agent-ab2e39e11a6493412'686 "get_repo_settings": {
687 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API688 "auto_merge": false,
689 "require_up_to_date": false,
690 "required_approvals": 0,
691 "count_agent_approvals": true,
692 "allow_ignoring_checks": true,
693 "agent_review": true,
694 "max_revisions": 2,
695 "merge_queue": false,
696 "updated_by": null,
697 "updated_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'698 }
699 },
700 "update_repo_settings": {
701 "request": {
702 "required_approvals": 1,
703 "count_agent_approvals": false,
704 "merge_queue": true
705 },
706 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API707 "auto_merge": false,
708 "require_up_to_date": false,
709 "required_approvals": 1,
710 "count_agent_approvals": false,
711 "allow_ignoring_checks": true,
712 "agent_review": true,
713 "max_revisions": 2,
714 "merge_queue": true,
715 "updated_by": "syntaqx",
716 "updated_at": "2026-10-04T16:20:37.508Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'717 },
718 "notes": "`required_approvals` is at most 6 and `max_revisions` at most 5. See [what a repository can ask for](/guides/g1t-agents/#what-a-repository-can-ask-for)."
719 },
720 "list_events": {
721 "query": {
722 "before": "evt_01m43t2a6c9e3g7j1m5q9t3x7b"
723 },
724 "response": [
725 {
726 "id": "evt_01m43smh3ve52vkcna207vqctf",
727 "type": "pull.opened",
728 "source": "work",
729 "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 API730 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'731 "actor": "usr_01kkntcg1eeb98j62xjm7eh09p",
732 "data": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API733 "pull_id": "pr_01m43smh3vexsr5pmp60qwv0vs",
734 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'735 "number": 14,
736 "issue": 12,
737 "agent": "claude-code"
738 }
739 },
740 {
741 "id": "evt_01m43shrzpf2vt5rxbb02z0xjt",
742 "type": "issue.opened",
743 "source": "work",
744 "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 API745 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'746 "actor": "usr_01kkntcg1eeb98j62xjm7eh09p",
747 "data": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API748 "issue_id": "iss_01m43shrzpfe49x74ga7sj1c6v",
749 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'750 "number": 12,
751 "title": "Greeting should name the caller"
752 }
753 }
754 ],
755 "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`."
756 },
757 "list_issues": {
758 "query": {
759 "state": "open",
760 "label": "feature"
761 },
762 "response": [
763 {
764 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API765 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'766 "number": 12,
767 "title": "Greeting should name the caller",
768 "body": "Take a name from the first argument; fall back to world.",
769 "labels": [
770 "feature"
771 ],
772 "checks": [
773 "cargo test"
774 ],
775 "state": "open",
776 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API777 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'778 "author": {
779 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
780 "username": "syntaqx",
781 "kind": "user",
782 "verified": false,
783 "workspaces": []
784 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API785 "created_at": "2026-10-01T18:04:11.482Z",
786 "updated_at": "2026-10-01T18:04:11.482Z",
787 "closed_at": null,
788 "pull_count": 1,
789 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'790 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API791 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'792 "queued": false,
793 "agent": "claude-code"
794 }
795 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API796 "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'797 },
798 "create_issue": {
799 "request": {
800 "title": "Greeting should name the caller",
801 "body": "Take a name from the first argument; fall back to world.",
802 "labels": [
803 "feature"
804 ],
805 "checks": [
806 "cargo test"
807 ]
808 },
809 "response": {
810 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API811 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'812 "number": 12,
813 "title": "Greeting should name the caller",
814 "body": "Take a name from the first argument; fall back to world.",
815 "labels": [
816 "feature"
817 ],
818 "checks": [
819 "cargo test"
820 ],
821 "state": "open",
822 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API823 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'824 "author": {
825 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
826 "username": "syntaqx",
827 "kind": "user",
828 "verified": false,
829 "workspaces": []
830 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API831 "created_at": "2026-10-01T18:04:11.482Z",
832 "updated_at": "2026-10-01T18:04:11.482Z",
833 "closed_at": null,
834 "pull_count": 0,
835 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'836 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API837 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'838 "queued": false,
839 "agent": null
840 },
841 "notes": "Labels are lowercased. A label not used before is created."
842 },
843 "get_issue": {
844 "response": {
845 "issue": {
846 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API847 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'848 "number": 12,
849 "title": "Greeting should name the caller",
850 "body": "Take a name from the first argument; fall back to world.",
851 "labels": [
852 "feature"
853 ],
854 "checks": [
855 "cargo test"
856 ],
857 "state": "closed",
858 "reason": "completed",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API859 "resolved_by": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'860 "author": {
861 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
862 "username": "syntaqx",
863 "kind": "user",
864 "verified": false,
865 "workspaces": []
866 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API867 "created_at": "2026-10-01T18:04:11.482Z",
868 "updated_at": "2026-10-01T18:52:17.093Z",
869 "closed_at": "2026-10-01T18:52:17.093Z",
870 "pull_count": 2,
871 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'872 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API873 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'874 "queued": false,
875 "agent": null
876 },
877 "pulls": [
878 {
879 "id": "pr_01m43sjq8tcz5rbm2a7k4d9e6w",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API880 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'881 "number": 13,
882 "issue": 12,
883 "title": "Greeting should name the caller",
884 "body": null,
885 "agent": "claude-code",
886 "runtime": "external",
887 "status": "closed",
888 "fork": {
889 "namespace": "pulls",
890 "name": "pr_01m43sjq8tcz5rbm2a7k4d9e6w"
891 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API892 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'893 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API894 "head_commit": null,
895 "merge_base": null,
896 "merged_by": null,
897 "merged_at": null,
898 "superseded_by": 14,
899 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'900 "files": [],
901 "assignees": [],
902 "reviewers": [],
903 "author": {
904 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
905 "username": "syntaqx",
906 "kind": "user",
907 "verified": false,
908 "workspaces": []
909 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API910 "created_at": "2026-10-01T18:20:02.117Z",
911 "updated_at": "2026-10-01T18:20:02.117Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'912 },
913 {
914 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API915 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'916 "number": 14,
917 "issue": 12,
918 "title": "Greeting should name the caller",
919 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
920 "agent": "claude-code",
921 "runtime": "external",
922 "status": "merged",
923 "fork": {
924 "namespace": "pulls",
925 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
926 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API927 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'928 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API929 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
930 "merge_base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
931 "merged_by": "syntaqx",
932 "merged_at": "2026-10-01T18:52:17.093Z",
933 "superseded_by": null,
934 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'935 "files": [
936 {
937 "path": "src/main.rs",
938 "additions": 6,
939 "deletions": 2
940 }
941 ],
942 "assignees": [],
943 "reviewers": [
944 "ana"
945 ],
946 "author": {
947 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
948 "username": "syntaqx",
949 "kind": "user",
950 "verified": false,
951 "workspaces": []
952 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API953 "created_at": "2026-10-01T18:20:02.117Z",
954 "updated_at": "2026-10-01T18:52:17.093Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'955 }
956 ],
957 "comments": [
958 {
959 "id": "cmt_01m43sr2b7d5f0j6k3n8p1q4v9",
960 "kind": "event",
961 "author": {
962 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
963 "username": "syntaqx",
964 "kind": "user",
965 "verified": false,
966 "workspaces": []
967 },
968 "body": "opened #14 for this",
969 "path": null,
970 "line": null,
971 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API972 "created_at": "2026-10-01T18:20:02.141Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'973 }
974 ]
975 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API976 "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'977 },
978 "update_issue": {
979 "request": {
980 "labels": [
981 "feature",
982 "good first issue"
983 ],
984 "assignees": [
985 "syntaqx"
986 ]
987 },
988 "response": {
989 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API990 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'991 "number": 12,
992 "title": "Greeting should name the caller",
993 "body": "Take a name from the first argument; fall back to world.",
994 "labels": [
995 "feature",
996 "good first issue"
997 ],
998 "checks": [
999 "cargo test"
1000 ],
1001 "state": "open",
1002 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1003 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1004 "author": {
1005 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1006 "username": "syntaqx",
1007 "kind": "user",
1008 "verified": false,
1009 "workspaces": []
1010 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1011 "created_at": "2026-10-01T18:04:11.482Z",
1012 "updated_at": "2026-10-01T18:09:47.305Z",
1013 "closed_at": null,
1014 "pull_count": 0,
1015 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1016 "assignees": [
1017 "syntaqx"
1018 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1019 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1020 "queued": false,
1021 "agent": null
1022 }
1023 },
1024 "close_issue": {
1025 "request": {
1026 "reason": "not_planned"
1027 },
1028 "response": {
1029 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1030 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1031 "number": 12,
1032 "title": "Greeting should name the caller",
1033 "body": "Take a name from the first argument; fall back to world.",
1034 "labels": [
1035 "feature"
1036 ],
1037 "checks": [
1038 "cargo test"
1039 ],
1040 "state": "closed",
1041 "reason": "not_planned",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1042 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1043 "author": {
1044 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1045 "username": "syntaqx",
1046 "kind": "user",
1047 "verified": false,
1048 "workspaces": []
1049 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1050 "created_at": "2026-10-01T18:04:11.482Z",
1051 "updated_at": "2026-10-01T19:30:00.214Z",
1052 "closed_at": "2026-10-01T19:30:00.214Z",
1053 "pull_count": 0,
1054 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1055 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1056 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1057 "queued": false,
1058 "agent": null
1059 }
1060 },
1061 "reopen_issue": {
1062 "response": {
1063 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1064 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1065 "number": 12,
1066 "title": "Greeting should name the caller",
1067 "body": "Take a name from the first argument; fall back to world.",
1068 "labels": [
1069 "feature"
1070 ],
1071 "checks": [
1072 "cargo test"
1073 ],
1074 "state": "open",
1075 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1076 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1077 "author": {
1078 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1079 "username": "syntaqx",
1080 "kind": "user",
1081 "verified": false,
1082 "workspaces": []
1083 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1084 "created_at": "2026-10-01T18:04:11.482Z",
1085 "updated_at": "2026-10-01T19:41:52.830Z",
1086 "closed_at": null,
1087 "pull_count": 0,
1088 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1089 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1090 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1091 "queued": false,
1092 "agent": null
1093 }
1094 },
1095 "assign_issue": {
1096 "request": {
1097 "instructions": "Keep the change to src/main.rs."
1098 },
1099 "response": {
1100 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1101 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1102 "number": 14,
1103 "issue": 12,
1104 "title": "Greeting should name the caller",
1105 "body": null,
1106 "agent": "g1t-agent",
1107 "runtime": "hosted",
1108 "status": "draft",
1109 "fork": {
1110 "namespace": "pulls",
1111 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1112 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1113 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1114 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1115 "head_commit": null,
1116 "merge_base": null,
1117 "merged_by": null,
1118 "merged_at": null,
1119 "superseded_by": null,
1120 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1121 "files": [],
1122 "assignees": [],
1123 "reviewers": [],
1124 "author": {
1125 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1126 "username": "syntaqx",
1127 "kind": "user",
1128 "verified": false,
1129 "workspaces": []
1130 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1131 "created_at": "2026-10-01T18:20:02.117Z",
1132 "updated_at": "2026-10-01T18:20:02.117Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1133 },
1134 "notes": "The response is the pull request the g1t agent opened, still a draft. Follow it with [get a pull request](/reference/api/pull-requests/get-pull-request/): `lifecycle` says what the agent is doing."
1135 },
1136 "add_comment": {
1137 "request": {
1138 "body": "Should an empty name fall back to \"world\"?"
1139 },
1140 "response": {
1141 "id": "cmt_01m43sv4c8e2g6j0m4q8t2x6a1",
1142 "kind": "comment",
1143 "author": {
1144 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1145 "username": "syntaqx",
1146 "kind": "user",
1147 "verified": true,
1148 "workspaces": [
1149 {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look1150 "slug": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'1151 "role": "owner"
1152 }
1153 ]
1154 },
1155 "body": "Should an empty name fall back to \"world\"?",
1156 "path": null,
1157 "line": null,
1158 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1159 "created_at": "2026-10-01T18:12:30.551Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1160 }
1161 },
1162 "list_labels": {
1163 "response": [
1164 "bug",
1165 "feature",
1166 "docs",
1167 "chore",
1168 "question",
1169 "good first issue"
1170 ],
1171 "notes": "The five default labels come first, then the others used on the repository's issues, alphabetically."
1172 },
1173 "plan_work": {
1174 "request": {
1175 "brief": "Greet people by name, from the command line and the web page."
1176 },
1177 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1178 "plan_id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
Merge branch 'worktree-agent-ab2e39e11a6493412'1179 }
1180 },
1181 "get_plan": {
1182 "params": {
1183 "plan": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
1184 },
1185 "response": {
1186 "id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1187 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1188 "brief": "Greet people by name, from the command line and the web page.",
1189 "status": "ready",
1190 "summary": "Name parsing first, then the two places that print the greeting.",
1191 "issues": [
1192 {
1193 "title": "Greeting should name the caller",
1194 "body": "Accept an optional name in `greet()` and use it.",
1195 "labels": [
1196 "feature"
1197 ],
1198 "checks": [
1199 "cargo test"
1200 ],
1201 "files": [
1202 "src/greet.rs"
1203 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1204 "depends_on": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1205 "number": null
1206 },
1207 {
1208 "title": "Show the caller's name on the web page",
1209 "body": "Read `?name=` and pass it to `greet()`.",
1210 "labels": [
1211 "feature"
1212 ],
1213 "checks": [
1214 "cargo test"
1215 ],
1216 "files": [
1217 "src/web.rs"
1218 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1219 "depends_on": [
Merge branch 'worktree-agent-ab2e39e11a6493412'1220 1
1221 ],
1222 "number": null
1223 }
1224 ],
1225 "error": null,
1226 "author": {
1227 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1228 "username": "syntaqx",
1229 "kind": "user",
1230 "verified": false,
1231 "workspaces": []
1232 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1233 "created_at": "2026-10-01T17:58:40.006Z",
1234 "finished_at": "2026-10-01T18:01:12.774Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1235 "progress": [],
1236 "exchanges": []
1237 },
1238 "notes": "A plan still `planning` after 20 minutes is reported as `failed`. `progress` follows each issue once the plan is applied."
1239 },
1240 "apply_plan": {
1241 "params": {
1242 "plan": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
1243 },
1244 "request": {
1245 "assign": true
1246 },
1247 "response": {
1248 "id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1249 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1250 "brief": "Greet people by name, from the command line and the web page.",
1251 "status": "applied",
1252 "summary": "Name parsing first, then the two places that print the greeting.",
1253 "issues": [
1254 {
1255 "title": "Greeting should name the caller",
1256 "body": "Accept an optional name in `greet()` and use it.",
1257 "labels": [
1258 "feature"
1259 ],
1260 "checks": [
1261 "cargo test"
1262 ],
1263 "files": [
1264 "src/greet.rs"
1265 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1266 "depends_on": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1267 "number": 12
1268 },
1269 {
1270 "title": "Show the caller's name on the web page",
1271 "body": "Read `?name=` and pass it to `greet()`.",
1272 "labels": [
1273 "feature"
1274 ],
1275 "checks": [
1276 "cargo test"
1277 ],
1278 "files": [
1279 "src/web.rs"
1280 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1281 "depends_on": [
Merge branch 'worktree-agent-ab2e39e11a6493412'1282 1
1283 ],
1284 "number": 13
1285 }
1286 ],
1287 "error": null,
1288 "author": {
1289 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1290 "username": "syntaqx",
1291 "kind": "user",
1292 "verified": false,
1293 "workspaces": []
1294 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1295 "created_at": "2026-10-01T17:58:40.006Z",
1296 "finished_at": "2026-10-01T18:01:12.774Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1297 "progress": [],
1298 "exchanges": []
1299 },
1300 "notes": "Each opened issue's `number` is filled in. Issues left out with `keep` stay `null`."
1301 },
1302 "list_pull_requests": {
1303 "query": {
1304 "state": "open"
1305 },
1306 "response": [
1307 {
1308 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1309 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1310 "number": 14,
1311 "issue": 12,
1312 "title": "Greeting should name the caller",
1313 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1314 "agent": "claude-code",
1315 "runtime": "external",
1316 "status": "open",
1317 "fork": {
1318 "namespace": "pulls",
1319 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1320 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1321 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1322 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1323 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1324 "merge_base": null,
1325 "merged_by": null,
1326 "merged_at": null,
1327 "superseded_by": null,
1328 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1329 "files": [
1330 {
1331 "path": "src/main.rs",
1332 "additions": 6,
1333 "deletions": 2
1334 }
1335 ],
1336 "assignees": [],
1337 "reviewers": [
1338 "ana"
1339 ],
1340 "author": {
1341 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1342 "username": "syntaqx",
1343 "kind": "user",
1344 "verified": false,
1345 "workspaces": []
1346 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1347 "created_at": "2026-10-01T18:20:02.117Z",
1348 "updated_at": "2026-10-01T18:35:44.902Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1349 }
1350 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1351 "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'1352 },
1353 "create_pull_request": {
1354 "request": {
1355 "issue": 12,
1356 "agent": "claude-code"
1357 },
1358 "response": {
1359 "pull": {
1360 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1361 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1362 "number": 14,
1363 "issue": 12,
1364 "title": "Greeting should name the caller",
1365 "body": null,
1366 "agent": "claude-code",
1367 "runtime": "external",
1368 "status": "draft",
1369 "fork": {
1370 "namespace": "pulls",
1371 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1372 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1373 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1374 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1375 "head_commit": null,
1376 "merge_base": null,
1377 "merged_by": null,
1378 "merged_at": null,
1379 "superseded_by": null,
1380 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1381 "files": [],
1382 "assignees": [],
1383 "reviewers": [],
1384 "author": {
1385 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1386 "username": "syntaqx",
1387 "kind": "user",
1388 "verified": false,
1389 "workspaces": []
1390 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1391 "created_at": "2026-10-01T18:20:02.117Z",
1392 "updated_at": "2026-10-01T18:20:02.117Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1393 },
1394 "git": {
1395 "remote": "https://g1t.sh/pulls/pr_01m43smh3vexsr5pmp60qwv0vs.git",
1396 "username": "syntaqx",
1397 "password": "your g1t access token"
1398 }
1399 },
1400 "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."
1401 },
1402 "get_pull_request": {
1403 "response": {
1404 "pull": {
1405 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1406 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1407 "number": 14,
1408 "issue": 12,
1409 "title": "Greeting should name the caller",
1410 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1411 "agent": "claude-code",
1412 "runtime": "external",
1413 "status": "open",
1414 "fork": {
1415 "namespace": "pulls",
1416 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1417 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1418 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1419 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1420 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1421 "merge_base": null,
1422 "merged_by": null,
1423 "merged_at": null,
1424 "superseded_by": null,
1425 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1426 "files": [
1427 {
1428 "path": "src/main.rs",
1429 "additions": 6,
1430 "deletions": 2
1431 }
1432 ],
1433 "assignees": [],
1434 "reviewers": [
1435 "ana"
1436 ],
1437 "author": {
1438 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1439 "username": "syntaqx",
1440 "kind": "user",
1441 "verified": false,
1442 "workspaces": []
1443 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1444 "created_at": "2026-10-01T18:20:02.117Z",
1445 "updated_at": "2026-10-01T18:35:44.902Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1446 },
1447 "issue": {
1448 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1449 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1450 "number": 12,
1451 "title": "Greeting should name the caller",
1452 "body": "Take a name from the first argument; fall back to world.",
1453 "labels": [
1454 "feature"
1455 ],
1456 "checks": [
1457 "cargo test"
1458 ],
1459 "state": "open",
1460 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1461 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1462 "author": {
1463 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1464 "username": "syntaqx",
1465 "kind": "user",
1466 "verified": false,
1467 "workspaces": []
1468 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1469 "created_at": "2026-10-01T18:04:11.482Z",
1470 "updated_at": "2026-10-01T18:20:02.117Z",
1471 "closed_at": null,
1472 "pull_count": 1,
1473 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1474 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1475 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1476 "queued": false,
1477 "agent": "claude-code"
1478 },
1479 "comments": [
1480 {
1481 "id": "cmt_01m43st6d0f4h8k2n6r0v4z8c2",
1482 "kind": "event",
1483 "author": {
1484 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1485 "username": "syntaqx",
1486 "kind": "user",
1487 "verified": false,
1488 "workspaces": []
1489 },
1490 "body": "marked this ready for review",
1491 "path": null,
1492 "line": null,
1493 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1494 "created_at": "2026-10-01T18:33:10.420Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1495 }
1496 ],
1497 "checks": {
1498 "id": "chk_01m43sw8e2g6j0m4q8t2x6a0c4",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1499 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
Merge branch 'worktree-agent-ab2e39e11a6493412'1500 "status": "passed",
1501 "results": [
1502 {
1503 "command": "cargo test",
1504 "passed": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1505 "exit_code": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1506 "output": "test result: ok. 3 passed; 0 failed",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1507 "duration_ms": 18234
Merge branch 'worktree-agent-ab2e39e11a6493412'1508 }
1509 ],
1510 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1511 "created_at": "2026-10-01T18:33:11.002Z",
1512 "finished_at": "2026-10-01T18:35:44.902Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1513 },
1514 "overlaps": [],
1515 "behind": false,
1516 "review_pending": false,
1517 "lifecycle": null,
1518 "landing": false,
1519 "stalled": null,
1520 "messages": [
1521 {
1522 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1523 "author": "syntaqx",
1524 "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 API1525 "created_at": "2026-10-01T18:25:00.310Z",
1526 "delivered_at": "2026-10-01T18:25:31.007Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1527 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1528 "from_number": null,
1529 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1530 "answer": null,
1531 "declined": false
1532 }
1533 ],
1534 "statuses": []
1535 },
Agents and memory, checks and conflicts, profiles, slug renames, custom domains1536 "notes": "| Field | |\n| --- | --- |\n| `pull.files` | The files it changes, with lines added and removed. |\n| `checks` | The latest run of the acceptance checks against its head, with each command's output. |\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 the g1t agent 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| `statuses` | Commit statuses reported for its head, such as workflow runs. |\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 the g1t agent do it. |\n| `earlierChecks` | Earlier runs of the acceptance checks, newest first, without their output. |\n\nChecks are started by g1t, not through the API. They run when a pull request becomes ready for review and again when its head moves."
Merge branch 'worktree-agent-ab2e39e11a6493412'1537 },
1538 "get_pull_request_changes": {
1539 "response": {
1540 "base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1541 "head": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1542 "files": [
1543 {
1544 "path": "src/main.rs",
1545 "status": "modified",
1546 "additions": 1,
1547 "deletions": 1,
1548 "binary": false,
1549 "hunks": [
1550 {
1551 "lines": [
1552 {
1553 "kind": "context",
1554 "old": 3,
1555 "new": 3,
1556 "text": "fn main() {"
1557 },
1558 {
1559 "kind": "delete",
1560 "old": 4,
1561 "new": null,
1562 "text": " println!(\"Hello, world!\");"
1563 },
1564 {
1565 "kind": "add",
1566 "old": null,
1567 "new": 4,
1568 "text": " println!(\"Hello, {}!\", std::env::args().nth(1).unwrap_or(\"world\".into()));"
1569 },
1570 {
1571 "kind": "context",
1572 "old": 5,
1573 "new": 5,
1574 "text": "}"
1575 }
1576 ]
1577 }
1578 ]
1579 }
1580 ],
1581 "truncated": false
1582 },
1583 "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."
1584 },
1585 "mark_pull_request_ready": {
1586 "request": {
1587 "summary": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\"."
1588 },
1589 "response": {
1590 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1591 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1592 "number": 14,
1593 "issue": 12,
1594 "title": "Greeting should name the caller",
1595 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1596 "agent": "claude-code",
1597 "runtime": "external",
1598 "status": "open",
1599 "fork": {
1600 "namespace": "pulls",
1601 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1602 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1603 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1604 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1605 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1606 "merge_base": null,
1607 "merged_by": null,
1608 "merged_at": null,
1609 "superseded_by": null,
1610 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1611 "files": [
1612 {
1613 "path": "src/main.rs",
1614 "additions": 6,
1615 "deletions": 2
1616 }
1617 ],
1618 "assignees": [],
1619 "reviewers": [],
1620 "author": {
1621 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1622 "username": "syntaqx",
1623 "kind": "user",
1624 "verified": false,
1625 "workspaces": []
1626 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1627 "created_at": "2026-10-01T18:20:02.117Z",
1628 "updated_at": "2026-10-01T18:33:10.398Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1629 }
1630 },
1631 "review_pull_request": {
1632 "request": {
1633 "verdict": "request_changes",
1634 "body": "Trim the name before using it."
1635 },
1636 "response": {
1637 "id": "cmt_01m43sx9f3h7k1n5r9v3z7d1g5",
1638 "kind": "comment",
1639 "author": {
1640 "id": "usr_01kz9d3f7h1k5n9r3v7z1c5g9b",
1641 "username": "ana",
1642 "kind": "user",
1643 "verified": true,
1644 "workspaces": [
1645 {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look1646 "slug": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'1647 "role": "member"
1648 }
1649 ]
1650 },
1651 "body": "Trim the name before using it.",
1652 "path": null,
1653 "line": null,
1654 "verdict": "request_changes",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1655 "created_at": "2026-10-01T18:40:05.019Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1656 }
1657 },
1658 "merge_pull_request": {
1659 "request": {
1660 "keep_issue_open": false
1661 },
1662 "response": {
1663 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1664 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1665 "number": 14,
1666 "issue": 12,
1667 "title": "Greeting should name the caller",
1668 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1669 "agent": "claude-code",
1670 "runtime": "external",
1671 "status": "merged",
1672 "fork": {
1673 "namespace": "pulls",
1674 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1675 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1676 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1677 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1678 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1679 "merge_base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1680 "merged_by": "syntaqx",
1681 "merged_at": "2026-10-01T18:52:17.093Z",
1682 "superseded_by": null,
1683 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1684 "files": [
1685 {
1686 "path": "src/main.rs",
1687 "additions": 6,
1688 "deletions": 2
1689 }
1690 ],
1691 "assignees": [],
1692 "reviewers": [
1693 "ana"
1694 ],
1695 "author": {
1696 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1697 "username": "syntaqx",
1698 "kind": "user",
1699 "verified": false,
1700 "workspaces": []
1701 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1702 "created_at": "2026-10-01T18:20:02.117Z",
1703 "updated_at": "2026-10-01T18:52:17.093Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1704 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1705 "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'1706 },
1707 "close_pull_request": {
1708 "response": {
1709 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1710 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1711 "number": 14,
1712 "issue": 12,
1713 "title": "Greeting should name the caller",
1714 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1715 "agent": "claude-code",
1716 "runtime": "external",
1717 "status": "closed",
1718 "fork": {
1719 "namespace": "pulls",
1720 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1721 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1722 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1723 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1724 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1725 "merge_base": null,
1726 "merged_by": null,
1727 "merged_at": null,
1728 "superseded_by": null,
1729 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1730 "files": [
1731 {
1732 "path": "src/main.rs",
1733 "additions": 6,
1734 "deletions": 2
1735 }
1736 ],
1737 "assignees": [],
1738 "reviewers": [],
1739 "author": {
1740 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1741 "username": "syntaqx",
1742 "kind": "user",
1743 "verified": false,
1744 "workspaces": []
1745 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1746 "created_at": "2026-10-01T18:20:02.117Z",
1747 "updated_at": "2026-10-01T19:02:48.760Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1748 }
1749 },
1750 "get_merge_queue": {
1751 "response": {
1752 "enabled": true,
1753 "active": [
1754 {
1755 "id": "qen_01m43rn0qsft1tpap1awkewzbb",
1756 "number": 14,
1757 "title": "Greeting should name the caller",
1758 "agent": "claude-code",
1759 "state": "testing",
1760 "ahead": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1761 "base_commit": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1762 "combined_commit": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1763 "error": null,
1764 "results": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1765 "enqueued_by": "syntaqx",
1766 "created_at": "2026-10-04T15:31:20.441Z",
1767 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'1768 }
1769 ],
1770 "recent": [
1771 {
1772 "id": "qen_01m43khqjmeb5a1magayrnk63z",
1773 "number": 11,
1774 "title": "Fix trailing newline in greeting",
1775 "agent": "g1t-agent",
1776 "state": "landed",
1777 "ahead": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1778 "base_commit": "4b1d7e9c2a5f8e3d6c0b9a7e5d3c1b8a6f4e2d0c",
1779 "combined_commit": "c3e8a1f6d4b2097e5c3a1f8d6b4e2c0a9f7d5b3e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1780 "error": null,
1781 "results": [
1782 {
1783 "command": "cargo test",
1784 "passed": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1785 "exit_code": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1786 "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 API1787 "duration_ms": 48211
Merge branch 'worktree-agent-ab2e39e11a6493412'1788 }
1789 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1790 "enqueued_by": "g1t",
1791 "created_at": "2026-10-04T14:02:09.876Z",
1792 "finished_at": "2026-10-04T14:09:55.102Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1793 }
1794 ]
1795 },
1796 "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."
1797 },
1798 "message_agent": {
1799 "request": {
1800 "body": "Keep \"world\" as the default when no name is given."
1801 },
1802 "response": {
1803 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1804 "author": "syntaqx",
1805 "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 API1806 "created_at": "2026-10-01T18:25:00.310Z",
1807 "delivered_at": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1808 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1809 "from_number": null,
1810 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1811 "answer": null,
1812 "declined": false
1813 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1814 "notes": "The response is the message. `delivered_at` is set once the agent has read it."
Merge branch 'worktree-agent-ab2e39e11a6493412'1815 },
1816 "answer_message": {
1817 "params": {
1818 "id": "msg_01m43t66tde8hs2vpxhh3v8tqw"
1819 },
1820 "request": {
1821 "body": "No. greet() keeps its name; only greet_named() is added."
1822 },
1823 "response": {
1824 "id": "msg_01m43t66tde8hs2vpxhh3v8tqw",
1825 "author": "g1t-agent",
1826 "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 API1827 "created_at": "2026-10-01T18:58:12.301Z",
1828 "delivered_at": "2026-10-01T18:58:40.117Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1829 "kind": "question",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1830 "from_number": 16,
1831 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1832 "answer": "No. greet() keeps its name; only greet_named() is added.",
1833 "declined": false
1834 },
1835 "notes": "The response is the question or handoff that was answered, with `answer` and `declined` filled in."
1836 },
1837 "take_messages": {
1838 "response": [
1839 {
1840 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1841 "author": "syntaqx",
1842 "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 API1843 "created_at": "2026-10-01T18:25:00.310Z",
1844 "delivered_at": "2026-10-01T18:25:31.007Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1845 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1846 "from_number": null,
1847 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1848 "answer": null,
1849 "declined": false
1850 }
1851 ],
1852 "notes": "Only a g1t agent's token can take messages. They come oldest first, and each is marked delivered."
1853 },
1854 "read_session": {
1855 "query": {
1856 "after": 0
1857 },
1858 "response": [
1859 {
1860 "seq": 1,
1861 "kind": "prompt",
1862 "text": "Make the greeting name the caller (issue #12).",
1863 "tool": null,
1864 "commit": null,
1865 "at": "2026-10-01T18:21:00.004Z"
1866 },
1867 {
1868 "seq": 2,
1869 "kind": "tool_call",
1870 "text": "cargo test",
1871 "tool": "bash",
1872 "commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1873 "at": "2026-10-01T18:30:12.660Z"
1874 }
1875 ]
1876 },
1877 "record_session": {
1878 "request": {
1879 "entries": [
1880 {
1881 "kind": "message",
1882 "text": "Reading src/main.rs."
1883 },
1884 {
1885 "kind": "tool_call",
1886 "text": "cargo test",
1887 "tool": "bash"
1888 }
1889 ]
1890 },
1891 "response": {
1892 "count": 2
1893 },
1894 "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/)."
1895 },
1896 "list_workflows": {
1897 "response": [
1898 {
1899 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
1900 "path": ".g1t/workflows/ci.yml",
1901 "name": "CI",
1902 "events": [
1903 "push",
1904 "pull_request",
1905 "workflow_dispatch"
1906 ],
1907 "state": "active",
1908 "error": null,
1909 "notes": [
1910 {
1911 "severity": "unsupported",
1912 "job": "test",
1913 "message": "`services` containers (such as a database) are not started on g1t yet."
1914 }
1915 ],
1916 "dispatch": {
1917 "debug": {
1918 "description": "Verbose logs",
1919 "type": "boolean",
1920 "default": false
1921 }
1922 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1923 "last_run": {
Merge branch 'worktree-agent-ab2e39e11a6493412'1924 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1925 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'1926 "path": ".g1t/workflows/ci.yml",
1927 "name": "CI",
1928 "title": "Greeting should name the caller",
1929 "number": 12,
1930 "attempt": 1,
1931 "event": "push",
1932 "ref": "refs/heads/main",
1933 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1934 "pull": null,
1935 "status": "completed",
1936 "conclusion": "success",
1937 "error": null,
1938 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1939 "created_at": "2026-10-04T15:42:07.318Z",
1940 "started_at": "2026-10-04T15:42:09.020Z",
1941 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1942 }
1943 },
1944 {
1945 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
1946 "path": ".g1t/workflows/nightly.yml",
1947 "name": "Nightly",
1948 "events": [
1949 "schedule"
1950 ],
1951 "state": "disabled",
1952 "error": null,
1953 "notes": [],
1954 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1955 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'1956 }
1957 ],
1958 "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/)."
1959 },
1960 "list_workflow_runs": {
1961 "query": {
1962 "workflow": "ci.yml",
1963 "branch": "main",
1964 "per_page": 20
1965 },
1966 "response": [
1967 {
1968 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1969 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'1970 "path": ".g1t/workflows/ci.yml",
1971 "name": "CI",
1972 "title": "Greeting should name the caller",
1973 "number": 12,
1974 "attempt": 1,
1975 "event": "push",
1976 "ref": "refs/heads/main",
1977 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1978 "pull": null,
1979 "status": "completed",
1980 "conclusion": "success",
1981 "error": null,
1982 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1983 "created_at": "2026-10-04T15:42:07.318Z",
1984 "started_at": "2026-10-04T15:42:09.020Z",
1985 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1986 }
1987 ],
1988 "notes": "A run's `status` is `queued`, `pending` (waiting for its concurrency group), `in_progress` or `completed`; `conclusion` is set once it completes."
1989 },
1990 "list_runs_of_workflow": {
1991 "params": {
1992 "workflow": "ci.yml"
1993 },
1994 "query": {
1995 "branch": "main",
1996 "per_page": 20
1997 },
1998 "response": [
1999 {
2000 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2001 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2002 "path": ".g1t/workflows/ci.yml",
2003 "name": "CI",
2004 "title": "Greeting should name the caller",
2005 "number": 12,
2006 "attempt": 1,
2007 "event": "push",
2008 "ref": "refs/heads/main",
2009 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2010 "pull": null,
2011 "status": "completed",
2012 "conclusion": "success",
2013 "error": null,
2014 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2015 "created_at": "2026-10-04T15:42:07.318Z",
2016 "started_at": "2026-10-04T15:42:09.020Z",
2017 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2018 }
2019 ]
2020 },
2021 "get_workflow_run": {
2022 "params": {
2023 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2024 },
2025 "response": {
2026 "run": {
2027 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2028 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2029 "path": ".g1t/workflows/ci.yml",
2030 "name": "CI",
2031 "title": "Greeting should name the caller",
2032 "number": 12,
2033 "attempt": 1,
2034 "event": "push",
2035 "ref": "refs/heads/main",
2036 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2037 "pull": null,
2038 "status": "completed",
2039 "conclusion": "failure",
2040 "error": null,
2041 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2042 "created_at": "2026-10-04T15:42:07.318Z",
2043 "started_at": "2026-10-04T15:42:09.020Z",
2044 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2045 },
2046 "jobs": [
2047 {
2048 "id": "job_01kpx7b3d0e4f8g2h6j0k4m8ns",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2049 "run_id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Merge branch 'worktree-agent-ab2e39e11a6493412'2050 "key": "test",
2051 "name": "test",
2052 "needs": [],
2053 "status": "completed",
2054 "conclusion": "failure",
2055 "steps": [
2056 {
2057 "number": 1,
2058 "name": "Run actions/checkout@v4",
2059 "status": "completed",
2060 "conclusion": "success",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2061 "started_at": "2026-10-04T15:42:10.101Z",
2062 "finished_at": "2026-10-04T15:42:12.433Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2063 },
2064 {
2065 "number": 2,
2066 "name": "Run cargo test",
2067 "status": "completed",
2068 "conclusion": "failure",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2069 "started_at": "2026-10-04T15:42:12.440Z",
2070 "finished_at": "2026-10-04T15:44:30.902Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2071 }
2072 ],
2073 "annotations": [
2074 {
2075 "level": "error",
2076 "message": "assertion failed: greeting names the caller",
2077 "title": "greet",
2078 "file": "src/main.rs",
2079 "line": 41
2080 }
2081 ],
2082 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2083 "started_at": "2026-10-04T15:42:09.020Z",
2084 "finished_at": "2026-10-04T15:44:31.002Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2085 },
2086 {
2087 "id": "job_01kpx7b3d0e4f8g2h6j0k4m8nt",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2088 "run_id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Merge branch 'worktree-agent-ab2e39e11a6493412'2089 "key": "deploy",
2090 "name": "deploy",
2091 "needs": [
2092 "test"
2093 ],
2094 "status": "completed",
2095 "conclusion": "skipped",
2096 "steps": [],
2097 "annotations": [],
2098 "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 API2099 "started_at": null,
2100 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2101 }
2102 ],
2103 "notes": [
2104 {
2105 "severity": "unsupported",
2106 "job": "test",
2107 "message": "`services` containers (such as a database) are not started on g1t yet."
2108 }
2109 ]
2110 }
2111 },
2112 "get_job_logs": {
2113 "params": {
2114 "job": "job_01kpx7b3d0e4f8g2h6j0k4m8ns"
2115 },
2116 "query": {
2117 "after": 0
2118 },
2119 "response": {
2120 "chunks": [
2121 {
2122 "seq": 1,
2123 "step": 0,
2124 "text": "Preparing the sandbox\n"
2125 },
2126 {
2127 "seq": 2,
2128 "step": 2,
2129 "text": "> cargo test\ntest greet ... FAILED\n"
2130 }
2131 ],
2132 "done": true
2133 },
2134 "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`."
2135 },
2136 "dispatch_workflow": {
2137 "params": {
2138 "workflow": "ci.yml"
2139 },
2140 "request": {
2141 "ref": "main",
2142 "inputs": {
2143 "debug": true
2144 }
2145 },
2146 "response": {
2147 "id": "run_01kpx8d4e7f0g3h6j9k2m5n8pq",
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": "CI run by syntaqx",
2152 "number": 13,
2153 "attempt": 1,
2154 "event": "workflow_dispatch",
2155 "ref": "refs/heads/main",
2156 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2157 "pull": null,
2158 "status": "queued",
2159 "conclusion": null,
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-04T16:30:00.512Z",
2163 "started_at": null,
2164 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2165 }
2166 },
2167 "cancel_workflow_run": {
2168 "params": {
2169 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2170 },
2171 "response": {
2172 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2173 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2174 "path": ".g1t/workflows/ci.yml",
2175 "name": "CI",
2176 "title": "Greeting should name the caller",
2177 "number": 12,
2178 "attempt": 1,
2179 "event": "push",
2180 "ref": "refs/heads/main",
2181 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2182 "pull": null,
2183 "status": "completed",
2184 "conclusion": "cancelled",
2185 "error": null,
2186 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2187 "created_at": "2026-10-04T15:42:07.318Z",
2188 "started_at": "2026-10-04T15:42:09.020Z",
2189 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2190 }
2191 },
2192 "rerun_workflow_run": {
2193 "params": {
2194 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2195 },
2196 "request": {
2197 "failed_only": true
2198 },
2199 "response": {
2200 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2201 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2202 "path": ".g1t/workflows/ci.yml",
2203 "name": "CI",
2204 "title": "Greeting should name the caller",
2205 "number": 12,
2206 "attempt": 2,
2207 "event": "push",
2208 "ref": "refs/heads/main",
2209 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2210 "pull": null,
2211 "status": "queued",
2212 "conclusion": null,
2213 "error": null,
2214 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2215 "created_at": "2026-10-04T15:42:07.318Z",
2216 "started_at": null,
2217 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2218 },
2219 "notes": "The run keeps its id; `attempt` goes up by one."
2220 },
2221 "rerun_failed_jobs": {
2222 "params": {
2223 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2224 },
2225 "response": {
2226 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2227 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2228 "path": ".g1t/workflows/ci.yml",
2229 "name": "CI",
2230 "title": "Greeting should name the caller",
2231 "number": 12,
2232 "attempt": 2,
2233 "event": "push",
2234 "ref": "refs/heads/main",
2235 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2236 "pull": null,
2237 "status": "queued",
2238 "conclusion": null,
2239 "error": null,
2240 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2241 "created_at": "2026-10-04T15:42:07.318Z",
2242 "started_at": null,
2243 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2244 }
2245 },
2246 "update_workflow": {
2247 "params": {
2248 "workflow": "nightly.yml"
2249 },
2250 "request": {
2251 "enabled": false
2252 },
2253 "response": {
2254 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2255 "path": ".g1t/workflows/nightly.yml",
2256 "name": "Nightly",
2257 "events": [
2258 "schedule"
2259 ],
2260 "state": "disabled",
2261 "error": null,
2262 "notes": [],
2263 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2264 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2265 }
2266 },
2267 "enable_workflow": {
2268 "params": {
2269 "workflow": "nightly.yml"
2270 },
2271 "response": {
2272 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2273 "path": ".g1t/workflows/nightly.yml",
2274 "name": "Nightly",
2275 "events": [
2276 "schedule"
2277 ],
2278 "state": "active",
2279 "error": null,
2280 "notes": [],
2281 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2282 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2283 }
2284 },
2285 "disable_workflow": {
2286 "params": {
2287 "workflow": "nightly.yml"
2288 },
2289 "response": {
2290 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2291 "path": ".g1t/workflows/nightly.yml",
2292 "name": "Nightly",
2293 "events": [
2294 "schedule"
2295 ],
2296 "state": "disabled",
2297 "error": null,
2298 "notes": [],
2299 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2300 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2301 }
2302 },
2303 "list_actions_secrets": {
2304 "response": [
2305 {
2306 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ab",
2307 "name": "NPM_TOKEN",
2308 "kind": "secret",
2309 "value": null,
2310 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2311 "updated_at": "2026-10-01T09:12:44.020Z",
2312 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2313 "workflows"
2314 ],
2315 "environments": [],
API reference examples use projects2316 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2317 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2318 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2319 },
2320 {
2321 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2322 "name": "STRIPE_KEY",
2323 "kind": "secret",
2324 "value": null,
API reference examples use projects2325 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2326 "updated_at": "2026-10-04T15:42:07.318Z",
2327 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2328 "workflows",
2329 "deployments"
2330 ],
2331 "environments": [
2332 "production"
2333 ],
API reference examples use projects2334 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2335 "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 API2336 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2337 }
2338 ],
2339 "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."
2340 },
2341 "list_actions_secrets_for_workspace": {
2342 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2343 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2344 },
2345 "response": [
2346 {
2347 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ab",
2348 "name": "NPM_TOKEN",
2349 "kind": "secret",
2350 "value": null,
2351 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2352 "updated_at": "2026-10-04T15:42:07.318Z",
2353 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2354 "workflows"
2355 ],
2356 "environments": [],
API reference examples use projects2357 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2358 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2359 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2360 }
2361 ],
2362 "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."
2363 },
2364 "set_actions_secret": {
2365 "params": {
2366 "setting": "STRIPE_KEY"
2367 },
2368 "request": {
2369 "value": "sk_live_…",
2370 "available_to": [
2371 "workflows",
2372 "deployments"
2373 ],
2374 "environments": [
2375 "production"
2376 ]
2377 },
2378 "response": {
2379 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2380 "name": "STRIPE_KEY",
2381 "kind": "secret",
2382 "value": null,
API reference examples use projects2383 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2384 "updated_at": "2026-10-04T15:42:07.318Z",
2385 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2386 "workflows",
2387 "deployments"
2388 ],
2389 "environments": [
2390 "production"
2391 ],
API reference examples use projects2392 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2393 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2394 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2395 },
2396 "notes": "Keys are uppercased. See [secrets and variables](/guides/secrets-and-variables/)."
2397 },
2398 "set_actions_secret_for_workspace": {
2399 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2400 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2401 "setting": "NPM_TOKEN"
2402 },
2403 "request": {
2404 "value": "npm_…",
API reference examples use projects2405 "projects": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2406 "hello"
2407 ]
2408 },
2409 "response": {
2410 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2411 "name": "NPM_TOKEN",
2412 "kind": "secret",
2413 "value": null,
2414 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2415 "updated_at": "2026-10-04T15:42:07.318Z",
2416 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2417 "workflows"
2418 ],
2419 "environments": [],
API reference examples use projects2420 "projects": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2421 "hello"
2422 ],
2423 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2424 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2425 }
2426 },
2427 "delete_actions_secret": {
2428 "params": {
2429 "setting": "STRIPE_KEY"
2430 },
2431 "response": true
2432 },
2433 "delete_actions_secret_for_workspace": {
2434 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2435 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2436 "setting": "NPM_TOKEN"
2437 },
2438 "response": true
2439 },
2440 "list_actions_variables": {
2441 "response": [
2442 {
2443 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2444 "name": "NODE_VERSION",
2445 "kind": "variable",
2446 "value": "20",
API reference examples use projects2447 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2448 "updated_at": "2026-10-04T15:42:07.318Z",
2449 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2450 "workflows",
2451 "deployments"
2452 ],
2453 "environments": [],
API reference examples use projects2454 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2455 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2456 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2457 }
2458 ],
2459 "notes": "A repository's list includes the workspace's rows that reach it, with `scope` set to `workspace`. Empty `environments` means every environment."
2460 },
2461 "list_actions_variables_for_workspace": {
2462 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2463 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2464 },
2465 "response": [
2466 {
2467 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2468 "name": "NODE_VERSION",
2469 "kind": "variable",
2470 "value": "20",
2471 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2472 "updated_at": "2026-10-04T15:42:07.318Z",
2473 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2474 "workflows",
2475 "deployments"
2476 ],
2477 "environments": [],
API reference examples use projects2478 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2479 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2480 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2481 }
2482 ]
2483 },
2484 "set_actions_variable": {
2485 "request": {
2486 "setting": "NODE_VERSION",
2487 "value": "20"
2488 },
2489 "response": {
2490 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2491 "name": "NODE_VERSION",
2492 "kind": "variable",
2493 "value": "20",
API reference examples use projects2494 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2495 "updated_at": "2026-10-04T15:42:07.318Z",
2496 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2497 "workflows",
2498 "deployments"
2499 ],
2500 "environments": [],
API reference examples use projects2501 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2502 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2503 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2504 },
2505 "notes": "GitHub's clients send the key as `name`; that is accepted too."
2506 },
2507 "set_actions_variable_for_workspace": {
2508 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2509 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2510 },
2511 "request": {
2512 "setting": "NODE_VERSION",
2513 "value": "20"
2514 },
2515 "response": {
2516 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2517 "name": "NODE_VERSION",
2518 "kind": "variable",
2519 "value": "20",
2520 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2521 "updated_at": "2026-10-04T15:42:07.318Z",
2522 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2523 "workflows",
2524 "deployments"
2525 ],
2526 "environments": [],
API reference examples use projects2527 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2528 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2529 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2530 }
2531 },
2532 "update_actions_variable": {
2533 "params": {
2534 "setting": "NODE_VERSION"
2535 },
2536 "request": {
2537 "value": "22"
2538 },
2539 "response": {
2540 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2541 "name": "NODE_VERSION",
2542 "kind": "variable",
2543 "value": "22",
API reference examples use projects2544 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2545 "updated_at": "2026-10-04T15:42:07.318Z",
2546 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2547 "workflows",
2548 "deployments"
2549 ],
2550 "environments": [],
API reference examples use projects2551 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2552 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2553 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2554 }
2555 },
2556 "update_actions_variable_for_workspace": {
2557 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2558 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2559 "setting": "NODE_VERSION"
2560 },
2561 "request": {
2562 "value": "22"
2563 },
2564 "response": {
2565 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2566 "name": "NODE_VERSION",
2567 "kind": "variable",
2568 "value": "22",
2569 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2570 "updated_at": "2026-10-04T15:42:07.318Z",
2571 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2572 "workflows",
2573 "deployments"
2574 ],
2575 "environments": [],
API reference examples use projects2576 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2577 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2578 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2579 }
2580 },
2581 "delete_actions_variable": {
2582 "params": {
2583 "setting": "NODE_VERSION"
2584 },
2585 "response": true
2586 },
2587 "delete_actions_variable_for_workspace": {
2588 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2589 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2590 "setting": "NODE_VERSION"
2591 },
2592 "response": true
2593 },
2594 "list_webhooks": {
2595 "response": [
2596 {
2597 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2598 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2599 "workspace": "flagon-io",
2600 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'2601 "url": "https://hooks.example.com/g1t",
2602 "events": [
2603 "git.push",
2604 "pull.merged"
2605 ],
2606 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2607 "secret_hint": "…9c2e",
2608 "created_by": "syntaqx",
2609 "created_at": "2026-10-04T15:42:07.318Z",
2610 "last_status": "delivered",
2611 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2612 }
2613 ]
2614 },
2615 "list_webhooks_for_workspace": {
2616 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2617 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2618 },
2619 "response": [
2620 {
2621 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2622 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2623 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2624 "repo": null,
2625 "url": "https://hooks.example.com/g1t",
2626 "events": [
2627 "git.push",
2628 "pull.merged"
2629 ],
2630 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2631 "secret_hint": "…9c2e",
2632 "created_by": "syntaqx",
2633 "created_at": "2026-10-04T15:42:07.318Z",
2634 "last_status": "delivered",
2635 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2636 }
2637 ]
2638 },
2639 "create_webhook": {
2640 "request": {
2641 "url": "https://hooks.example.com/g1t",
2642 "events": [
2643 "git.push",
2644 "pull.merged"
2645 ]
2646 },
2647 "response": {
2648 "hook": {
2649 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2650 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2651 "workspace": "flagon-io",
2652 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'2653 "url": "https://hooks.example.com/g1t",
2654 "events": [
2655 "git.push",
2656 "pull.merged"
2657 ],
2658 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2659 "secret_hint": "…9c2e",
2660 "created_by": "syntaqx",
2661 "created_at": "2026-10-04T15:42:07.318Z",
2662 "last_status": "delivered",
2663 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2664 },
API reference: no example reads as a real secret2665 "secret": "whsec_…"
Merge branch 'worktree-agent-ab2e39e11a6493412'2666 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2667 "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'2668 },
2669 "create_webhook_for_workspace": {
2670 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2671 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2672 },
2673 "request": {
2674 "url": "https://hooks.example.com/g1t"
2675 },
2676 "response": {
2677 "hook": {
2678 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2679 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2680 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2681 "repo": null,
2682 "url": "https://hooks.example.com/g1t",
2683 "events": [
2684 "*"
2685 ],
2686 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2687 "secret_hint": "…9c2e",
2688 "created_by": "syntaqx",
2689 "created_at": "2026-10-04T15:42:07.318Z",
2690 "last_status": "delivered",
2691 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2692 },
API reference: no example reads as a real secret2693 "secret": "whsec_…"
Merge branch 'worktree-agent-ab2e39e11a6493412'2694 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2695 "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'2696 },
2697 "update_webhook": {
2698 "params": {
2699 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
2700 },
2701 "request": {
2702 "active": false
2703 },
2704 "response": {
2705 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2706 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2707 "workspace": "flagon-io",
2708 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'2709 "url": "https://hooks.example.com/g1t",
2710 "events": [
2711 "git.push",
2712 "pull.merged"
2713 ],
2714 "active": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2715 "secret_hint": "…9c2e",
2716 "created_by": "syntaqx",
2717 "created_at": "2026-10-04T15:42:07.318Z",
2718 "last_status": "delivered",
2719 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2720 }
2721 },
2722 "update_webhook_for_workspace": {
2723 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2724 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2725 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
2726 },
2727 "request": {
2728 "active": false
2729 },
2730 "response": {
2731 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2732 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2733 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2734 "repo": null,
2735 "url": "https://hooks.example.com/g1t",
2736 "events": [
2737 "git.push",
2738 "pull.merged"
2739 ],
2740 "active": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2741 "secret_hint": "…9c2e",
2742 "created_by": "syntaqx",
2743 "created_at": "2026-10-04T15:42:07.318Z",
2744 "last_status": "delivered",
2745 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2746 }
2747 },
2748 "delete_webhook": {
2749 "params": {
2750 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
2751 },
2752 "response": true
2753 },
2754 "delete_webhook_for_workspace": {
2755 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2756 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2757 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
2758 },
2759 "response": true
2760 },
2761 "ping_webhook": {
2762 "params": {
2763 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
2764 },
2765 "response": {
2766 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2767 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2768 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'2769 "event": "ping",
2770 "status": "delivered",
2771 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2772 "response_status": 200,
2773 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'2774 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2775 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'2776 "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 API2777 "created_at": "2026-10-04T16:01:12.440Z",
2778 "delivered_at": "2026-10-04T16:01:12.631Z",
2779 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2780 },
2781 "notes": "`payload` is the JSON that was sent, as a string."
2782 },
2783 "ping_webhook_for_workspace": {
2784 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2785 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2786 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
2787 },
2788 "response": {
2789 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2790 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2791 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'2792 "event": "ping",
2793 "status": "delivered",
2794 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2795 "response_status": 200,
2796 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'2797 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2798 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'2799 "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 API2800 "created_at": "2026-10-04T16:01:12.440Z",
2801 "delivered_at": "2026-10-04T16:01:12.631Z",
2802 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2803 }
2804 },
2805 "list_webhook_deliveries": {
2806 "params": {
2807 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
2808 },
2809 "response": [
2810 {
2811 "id": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2812 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2813 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'2814 "event": "ping",
2815 "status": "pending",
2816 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2817 "response_status": 503,
2818 "response_body": "Service Unavailable",
Merge branch 'worktree-agent-ab2e39e11a6493412'2819 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2820 "duration_ms": 212,
Merge branch 'worktree-agent-ab2e39e11a6493412'2821 "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 API2822 "created_at": "2026-10-04T16:20:03.100Z",
2823 "delivered_at": null,
2824 "next_attempt_at": "2026-10-04T16:21:03.312Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2825 },
2826 {
2827 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2828 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2829 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'2830 "event": "ping",
2831 "status": "delivered",
2832 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2833 "response_status": 200,
2834 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'2835 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2836 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'2837 "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 API2838 "created_at": "2026-10-04T16:01:12.440Z",
2839 "delivered_at": "2026-10-04T16:01:12.631Z",
2840 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2841 }
2842 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2843 "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'2844 },
2845 "list_webhook_deliveries_for_workspace": {
2846 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2847 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2848 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
2849 },
2850 "response": [
2851 {
2852 "id": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2853 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2854 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'2855 "event": "ping",
2856 "status": "pending",
2857 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2858 "response_status": 503,
2859 "response_body": "Service Unavailable",
Merge branch 'worktree-agent-ab2e39e11a6493412'2860 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2861 "duration_ms": 212,
Merge branch 'worktree-agent-ab2e39e11a6493412'2862 "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 API2863 "created_at": "2026-10-04T16:20:03.100Z",
2864 "delivered_at": null,
2865 "next_attempt_at": "2026-10-04T16:21:03.312Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2866 },
2867 {
2868 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2869 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2870 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'2871 "event": "ping",
2872 "status": "delivered",
2873 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2874 "response_status": 200,
2875 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'2876 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2877 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'2878 "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 API2879 "created_at": "2026-10-04T16:01:12.440Z",
2880 "delivered_at": "2026-10-04T16:01:12.631Z",
2881 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2882 }
2883 ]
2884 },
2885 "redeliver_webhook": {
2886 "params": {
2887 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2888 "delivery": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz"
2889 },
2890 "response": {
2891 "id": "dlv_01kpx6c8d1e2f3g4h5j6k7m8np",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2892 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2893 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'2894 "event": "ping",
2895 "status": "delivered",
2896 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2897 "response_status": 200,
2898 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'2899 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2900 "duration_ms": 171,
Merge branch 'worktree-agent-ab2e39e11a6493412'2901 "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 API2902 "created_at": "2026-10-04T16:25:40.007Z",
2903 "delivered_at": "2026-10-04T16:25:40.178Z",
2904 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2905 },
2906 "notes": "The response is the new delivery."
2907 },
2908 "redeliver_webhook_for_workspace": {
2909 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2910 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2911 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2912 "delivery": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz"
2913 },
2914 "response": {
2915 "id": "dlv_01kpx6c8d1e2f3g4h5j6k7m8np",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2916 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2917 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'2918 "event": "ping",
2919 "status": "delivered",
2920 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2921 "response_status": 200,
2922 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'2923 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2924 "duration_ms": 171,
Merge branch 'worktree-agent-ab2e39e11a6493412'2925 "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 API2926 "created_at": "2026-10-04T16:25:40.007Z",
2927 "delivered_at": "2026-10-04T16:25:40.178Z",
2928 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2929 }
2930 },
2931 "list_integrations": {
2932 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2933 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2934 },
2935 "response": [
2936 {
2937 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2938 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2939 "provider": "anthropic",
2940 "kind": "models",
2941 "name": "Anthropic",
2942 "config": {
2943 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2944 "write_back": true
Merge branch 'worktree-agent-ab2e39e11a6493412'2945 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2946 "secret_hint": "…3f9a",
2947 "webhook_url": null,
2948 "created_by": "syntaqx",
2949 "created_at": "2026-10-04T15:42:07.318Z",
2950 "last_used_at": "2026-10-04T15:42:08.102Z",
2951 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'2952 "models": [
2953 "claude-haiku-4-5",
2954 "claude-sonnet-4-5"
2955 ]
2956 },
2957 {
2958 "id": "con_01kpx4n8r3g9s0v5w7x1z2a3bc",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2959 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2960 "provider": "jira",
2961 "kind": "tracker",
2962 "name": "Jira",
2963 "config": {
2964 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2965 "write_back": true,
Merge branch 'worktree-agent-ab2e39e11a6493412'2966 "site": "https://acme.atlassian.net",
2967 "email": "syntaqx@example.com",
2968 "keys": [
2969 "TECH"
2970 ]
2971 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2972 "secret_hint": "…x7Qe",
2973 "webhook_url": null,
2974 "created_by": "syntaqx",
2975 "created_at": "2026-10-04T15:42:07.318Z",
2976 "last_used_at": null,
2977 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'2978 "models": []
2979 }
2980 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2981 "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'2982 },
2983 "connect_integration": {
2984 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2985 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2986 },
2987 "request": {
2988 "provider": "webhook",
2989 "config": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2990 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'2991 "label": "bug"
2992 }
2993 },
2994 "response": {
2995 "connection": {
2996 "id": "con_01kpx4n8r3g9s0v5w7x1z2a3bd",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2997 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2998 "provider": "webhook",
2999 "kind": "alerts",
3000 "name": "Webhook",
3001 "config": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3002 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3003 "label": "bug",
3004 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3005 "write_back": true
Merge branch 'worktree-agent-ab2e39e11a6493412'3006 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3007 "secret_hint": null,
3008 "webhook_url": "https://api.g1t.sh/hooks/con_01kpx4n8r3g9s0v5w7x1z2a3bd",
3009 "created_by": "syntaqx",
3010 "created_at": "2026-10-04T15:42:07.318Z",
3011 "last_used_at": null,
3012 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3013 "models": []
3014 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3015 "signing_secret": "g1ts_9f2c4a7e1b0d3c6f8a2e5b7d9c1f4a6e8b0d2c4f6a8e1b3d"
Merge branch 'worktree-agent-ab2e39e11a6493412'3016 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3017 "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'3018 },
3019 "disconnect_integration": {
3020 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3021 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3022 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab"
3023 },
3024 "response": true
3025 },
3026 "test_integration": {
3027 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3028 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3029 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab"
3030 },
3031 "response": {
3032 "ok": true,
3033 "message": "Anthropic accepted the key and offers 9 models."
3034 },
3035 "notes": "Credentials that do not work still answer `200`, with `ok` false and `message` saying what went wrong."
3036 },
3037 "get_model_routes": {
3038 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3039 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3040 },
3041 "response": [
3042 {
3043 "task": "default",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3044 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Merge branch 'worktree-agent-ab2e39e11a6493412'3045 "model": "claude-sonnet-4-5"
3046 },
3047 {
3048 "task": "review",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3049 "connection_id": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3050 "model": null
3051 }
3052 ]
3053 },
3054 "set_model_routes": {
3055 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3056 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3057 },
3058 "request": {
3059 "routes": [
3060 {
3061 "task": "default",
3062 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
3063 "model": "claude-sonnet-4-5"
3064 },
3065 {
3066 "task": "review",
3067 "connection_id": null
3068 }
3069 ]
3070 },
3071 "response": [
3072 {
3073 "task": "default",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3074 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Merge branch 'worktree-agent-ab2e39e11a6493412'3075 "model": "claude-sonnet-4-5"
3076 },
3077 {
3078 "task": "review",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3079 "connection_id": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3080 "model": null
3081 }
3082 ],
3083 "notes": "The response is the routes as saved, ordered by task."
3084 },
3085 "get_context": {
3086 "query": {
3087 "reference": "TECH-1234"
3088 },
3089 "response": {
3090 "provider": "jira",
3091 "key": "TECH-1234",
3092 "title": "Checkout fails for EU cards",
3093 "url": "https://acme.atlassian.net/browse/TECH-1234",
3094 "status": "In Progress",
3095 "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 API3096 "fetched_at": "2026-10-04T15:42:07.318Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3097 }
3098 },
3099 "import_issue": {
3100 "request": {
3101 "reference": "TECH-1234"
3102 },
3103 "response": {
3104 "number": 42,
3105 "item": {
3106 "provider": "jira",
3107 "key": "TECH-1234",
3108 "title": "Checkout fails for EU cards",
3109 "url": "https://acme.atlassian.net/browse/TECH-1234",
3110 "status": "In Progress",
3111 "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 API3112 "fetched_at": "2026-10-04T15:42:07.318Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3113 },
3114 "created": true
3115 },
3116 "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 domains3117 },
3118 "remember": {
3119 "request": {
3120 "text": "The tests need TZ=UTC or the date tests fail.",
3121 "scope": "project",
3122 "kind": "gotcha",
3123 "from_number": 14
3124 },
3125 "response": {
3126 "id": "mem_01m43v8q2w3e4r5t6y7u8i9o0p",
3127 "scope": "project",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3128 "workspace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3129 "repo": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3130 "namespace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3131 "name": "hello"
3132 },
3133 "text": "The tests need TZ=UTC or the date tests fail.",
3134 "kind": "gotcha",
3135 "source": {
3136 "kind": "run",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3137 "run_id": "arn_01m43v2c1p9k8d7e6f5a4b3c2d",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3138 "repo": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3139 "namespace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3140 "name": "hello"
3141 },
3142 "number": 14
3143 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3144 "created_by": "g1t-agent",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3145 "pinned": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3146 "created_at": "2026-10-01T18:40:12.000Z",
3147 "updated_at": "2026-10-01T18:40:12.000Z",
3148 "last_used_at": null
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3149 },
3150 "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."
3151 },
3152 "recall": {
3153 "query": {
3154 "q": "pnpm"
3155 },
3156 "response": {
3157 "project": [],
3158 "workspace": [
3159 {
3160 "id": "mem_01m43t0a1s2d3f4g5h6j7k8l9z",
3161 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3162 "workspace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3163 "repo": null,
3164 "text": "We use pnpm everywhere, never npm or yarn.",
3165 "kind": "convention",
3166 "source": {
3167 "kind": "person",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3168 "run_id": null,
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3169 "repo": null,
3170 "number": null
3171 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3172 "created_by": "syntaqx",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3173 "pinned": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3174 "created_at": "2026-10-01T18:40:12.000Z",
3175 "updated_at": "2026-10-01T18:40:12.000Z",
3176 "last_used_at": null
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3177 }
3178 ]
3179 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3180 "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 API3181 },
Search across all of g1t, Explore, and a command palette3182 "search": {
3183 "query": {
3184 "q": "parse_query language:rust repo:acme/web",
3185 "type": "code"
3186 },
3187 "response": {
3188 "query": "parse_query repo:acme/web language:rust",
3189 "type": "code",
3190 "counts": {
3191 "repositories": 0,
3192 "code": 2,
3193 "issues": 0,
3194 "pulls": 0,
3195 "people": 0
3196 },
3197 "page": 1,
3198 "per_page": 20,
3199 "more": false,
3200 "hits": [
3201 {
3202 "kind": "code",
3203 "title": "src/search/query.rs",
3204 "url": "/acme/web/blob/main/src/search/query.rs#L42",
3205 "repo": "acme/web",
3206 "private": false,
3207 "description": null,
3208 "snippet": [],
3209 "lines": [
3210 {
3211 "number": 41,
3212 "parts": [
3213 {
3214 "text": "/// Reads a query typed into the search box.",
3215 "highlight": false
3216 }
3217 ]
3218 },
3219 {
3220 "number": 42,
3221 "parts": [
3222 {
3223 "text": "pub fn ",
3224 "highlight": false
3225 },
3226 {
3227 "text": "parse_query",
3228 "highlight": true
3229 },
3230 {
3231 "text": "(text: &str) -> Query {",
3232 "highlight": false
3233 }
3234 ]
3235 },
3236 {
3237 "number": 43,
3238 "parts": [
3239 {
3240 "text": " let mut query = Query::default();",
3241 "highlight": false
3242 }
3243 ]
3244 }
3245 ],
3246 "path": "src/search/query.rs",
3247 "language": "rust",
3248 "ref": "main",
3249 "number": null,
3250 "state": null,
3251 "author": null,
3252 "labels": [],
3253 "topics": [],
3254 "slug": null,
3255 "avatar": null,
3256 "updated_at": null
3257 }
3258 ],
3259 "notes": []
3260 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3261 "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."
Search across all of g1t, Explore, and a command palette3262 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3263 "search_context": {
3264 "params": {
3265 "workspace": "acme"
3266 },
3267 "query": {
3268 "q": "how do we run the web tests",
3269 "project": "web"
3270 },
3271 "response": {
3272 "query": "how do we run the web tests",
3273 "mode": "semantic",
3274 "hits": [
3275 {
3276 "kind": "memory",
3277 "id": "mem_01m4a0c2b7k3f9d1e5g8h2j6k4",
3278 "title": "Gotcha",
3279 "snippet": "The date tests fail unless TZ=UTC.",
3280 "project": "web",
3281 "url": "/acme/web/memory",
3282 "score": 0.82,
3283 "source": "AGENTS.md",
3284 "by": "g1t",
3285 "updated_at": "2026-10-04T21:10:02.000Z"
3286 },
3287 {
3288 "kind": "doc",
3289 "id": "ent_5f0c2a9e41d7b3c86a1e2f40:2",
3290 "title": "Web (README.md)",
3291 "snippet": "## Testing Run npm test. The end-to-end tests need the api running locally…",
3292 "project": "web",
3293 "url": "/acme/web/blob/main/README.md",
3294 "score": 0.77,
3295 "source": "README.md",
3296 "by": null,
3297 "updated_at": "2026-10-04T20:58:41.000Z"
3298 },
3299 {
3300 "kind": "project",
3301 "id": "ent_9b1d6f0a2c3e4b5d6e7f8a9b",
3302 "title": "web",
3303 "snippet": "The storefront. Written in TypeScript. Packages: @acme/web. Uses api. Owned by ana.",
3304 "project": "web",
3305 "url": "/acme/web",
3306 "score": 0.71,
3307 "source": "catalog",
3308 "by": null,
3309 "updated_at": "2026-10-04T20:58:41.000Z"
3310 }
3311 ]
3312 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3313 "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 API3314 },
3315 "get_entity": {
3316 "params": {
3317 "workspace": "acme",
3318 "kind": "project",
3319 "id": "web"
3320 },
3321 "response": {
3322 "entity": {
3323 "id": "ent_9b1d6f0a2c3e4b5d6e7f8a9b",
3324 "workspace": "acme",
3325 "kind": "project",
3326 "key": "web",
3327 "name": "web",
3328 "summary": "The storefront. Written in TypeScript. Packages: @acme/web. Uses api. Owned by ana.",
3329 "project": "web",
3330 "private": true,
3331 "data": {
3332 "repo": "acme/web",
3333 "root_dir": "",
3334 "default_branch": "main",
3335 "languages": [
3336 "TypeScript"
3337 ],
3338 "owners": [
3339 "ana"
3340 ],
3341 "tests": true,
3342 "test_commands": [
3343 "npm test"
3344 ],
3345 "production_url": "https://web--acme.g1t.page"
3346 },
3347 "source": "scan",
3348 "ref": "/acme/web",
3349 "updated_at": "2026-10-04T20:58:41.000Z"
3350 },
3351 "relations": [
3352 {
3353 "kind": "depends_on",
3354 "direction": "out",
3355 "entity": {
3356 "id": "ent_0a7c3e5b9d1f2a4c6e8b0d2f",
3357 "workspace": "acme",
3358 "kind": "project",
3359 "key": "api",
3360 "name": "api",
3361 "summary": "The public API. Written in Rust.",
3362 "project": "api",
3363 "private": true,
3364 "data": {},
3365 "source": "scan",
3366 "ref": "/acme/api",
3367 "updated_at": "2026-10-04T20:57:12.000Z"
3368 }
3369 },
3370 {
3371 "kind": "owned_by",
3372 "direction": "out",
3373 "entity": {
3374 "id": "ent_3c5e7a9b1d2f4a6c8e0b2d4f",
3375 "workspace": "acme",
3376 "kind": "owner",
3377 "key": "ana",
3378 "name": "ana",
3379 "summary": null,
3380 "project": null,
3381 "private": false,
3382 "data": {},
3383 "source": "scan",
3384 "ref": "/u/ana",
3385 "updated_at": "2026-10-04T20:58:41.000Z"
3386 }
3387 }
3388 ]
3389 },
3390 "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 look3391 },
3392 "list_collaborators": {
3393 "response": {
3394 "repo": "flagon-io/hello",
3395 "base_permission": "write",
3396 "people": [
3397 {
3398 "username": "syntaqx",
3399 "name": "Chase Pierce",
3400 "avatar": null,
3401 "role": "admin",
3402 "source": "owner",
3403 "direct": null,
3404 "workspace_role": "owner"
3405 },
3406 {
3407 "username": "linus",
3408 "name": null,
3409 "avatar": null,
3410 "role": "maintain",
3411 "source": "direct",
3412 "direct": "maintain",
3413 "workspace_role": "member"
3414 },
3415 {
3416 "username": "grace",
3417 "name": "Grace Hopper",
3418 "avatar": null,
3419 "role": "write",
3420 "source": "base",
3421 "direct": null,
3422 "workspace_role": "member"
3423 },
3424 {
3425 "username": "ada",
3426 "name": "Ada Lovelace",
3427 "avatar": null,
3428 "role": "triage",
3429 "source": "direct",
3430 "direct": "triage",
3431 "workspace_role": null
3432 }
3433 ],
3434 "invitations": [
3435 {
3436 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
3437 "repo": "flagon-io/hello",
3438 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3439 "invitee": "alan",
3440 "email": null,
3441 "role": "write",
3442 "invited_by": "syntaqx",
3443 "inviter_avatar": null,
3444 "status": "pending",
3445 "created_at": "2026-10-05T17:00:00.000Z",
3446 "expires_at": "2026-10-12T17:00:00.000Z"
3447 },
3448 {
3449 "id": "rin_01kp3d7e8f9g0h1j2k3m4n5p6q",
3450 "repo": "flagon-io/hello",
3451 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3452 "invitee": null,
3453 "email": "joan@example.com",
3454 "role": "read",
3455 "invited_by": "syntaqx",
3456 "inviter_avatar": null,
3457 "status": "pending",
3458 "created_at": "2026-10-05T17:00:00.000Z",
3459 "expires_at": "2026-10-12T17:00:00.000Z"
3460 }
3461 ],
3462 "viewer_role": "admin",
3463 "can_manage": true
3464 },
3465 "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/)."
3466 },
3467 "add_collaborator": {
3468 "request": {
3469 "invitee": "ada",
3470 "role": "triage"
3471 },
3472 "response": {
3473 "result": "invited",
3474 "invitation": {
3475 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
3476 "repo": "flagon-io/hello",
3477 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3478 "invitee": "ada",
3479 "email": null,
3480 "role": "triage",
3481 "invited_by": "syntaqx",
3482 "inviter_avatar": null,
3483 "status": "pending",
3484 "created_at": "2026-10-05T17:00:00.000Z",
3485 "expires_at": "2026-10-12T17:00:00.000Z"
3486 }
3487 },
3488 "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/)."
3489 },
3490 "update_collaborator": {
3491 "params": {
3492 "owner": "flagon-io",
3493 "name": "hello",
3494 "username": "ada"
3495 },
3496 "request": {
3497 "role": "write"
3498 },
3499 "response": {
3500 "username": "ada",
3501 "name": "Ada Lovelace",
3502 "avatar": null,
3503 "role": "write",
3504 "source": "direct",
3505 "direct": "write",
3506 "workspace_role": null
3507 },
3508 "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/)."
3509 },
3510 "remove_collaborator": {
3511 "params": {
3512 "owner": "flagon-io",
3513 "name": "hello",
3514 "username": "ada"
3515 },
3516 "response": true,
3517 "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/)."
3518 },
3519 "get_collaborator_permission": {
3520 "params": {
3521 "owner": "flagon-io",
3522 "name": "hello",
3523 "username": "ada"
3524 },
3525 "response": {
3526 "username": "ada",
3527 "role": "triage",
3528 "source": "direct",
3529 "capabilities": [
3530 "read",
3531 "participate",
3532 "triage"
3533 ]
3534 },
3535 "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/)."
3536 },
3537 "list_repo_invitations": {
3538 "response": [
3539 {
3540 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
3541 "repo": "flagon-io/hello",
3542 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3543 "invitee": "alan",
3544 "email": null,
3545 "role": "write",
3546 "invited_by": "syntaqx",
3547 "inviter_avatar": null,
3548 "status": "pending",
3549 "created_at": "2026-10-05T17:00:00.000Z",
3550 "expires_at": "2026-10-12T17:00:00.000Z"
3551 },
3552 {
3553 "id": "rin_01kp3d7e8f9g0h1j2k3m4n5p6q",
3554 "repo": "flagon-io/hello",
3555 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3556 "invitee": null,
3557 "email": "joan@example.com",
3558 "role": "read",
3559 "invited_by": "syntaqx",
3560 "inviter_avatar": null,
3561 "status": "pending",
3562 "created_at": "2026-10-05T17:00:00.000Z",
3563 "expires_at": "2026-10-12T17:00:00.000Z"
3564 }
3565 ],
3566 "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/)."
3567 },
3568 "revoke_repo_invitation": {
3569 "params": {
3570 "owner": "flagon-io",
3571 "name": "hello",
3572 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p"
3573 },
3574 "response": {
3575 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
3576 "repo": "flagon-io/hello",
3577 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3578 "invitee": "alan",
3579 "email": null,
3580 "role": "write",
3581 "invited_by": "syntaqx",
3582 "inviter_avatar": null,
3583 "status": "revoked",
3584 "created_at": "2026-10-05T17:00:00.000Z",
3585 "expires_at": "2026-10-12T17:00:00.000Z"
3586 },
3587 "notes": "`404` when there is no pending invitation with that id on this repository."
3588 },
3589 "list_my_repo_invitations": {
3590 "response": [
3591 {
3592 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
3593 "repo": "flagon-io/hello",
3594 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3595 "invitee": "ada",
3596 "email": null,
3597 "role": "triage",
3598 "invited_by": "syntaqx",
3599 "inviter_avatar": null,
3600 "status": "pending",
3601 "created_at": "2026-10-05T17:00:00.000Z",
3602 "expires_at": "2026-10-12T17:00:00.000Z"
3603 }
3604 ],
3605 "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."
3606 },
3607 "accept_repo_invitation": {
3608 "params": {
3609 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r"
3610 },
3611 "response": {
3612 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
3613 "repo": "flagon-io/hello",
3614 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3615 "invitee": "ada",
3616 "email": null,
3617 "role": "triage",
3618 "invited_by": "syntaqx",
3619 "inviter_avatar": null,
3620 "status": "accepted",
3621 "created_at": "2026-10-05T17:00:00.000Z",
3622 "expires_at": "2026-10-12T17:00:00.000Z"
3623 },
3624 "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/)."
3625 },
3626 "decline_repo_invitation": {
3627 "params": {
3628 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r"
3629 },
3630 "response": {
3631 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
3632 "repo": "flagon-io/hello",
3633 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3634 "invitee": "ada",
3635 "email": null,
3636 "role": "triage",
3637 "invited_by": "syntaqx",
3638 "inviter_avatar": null,
3639 "status": "declined",
3640 "created_at": "2026-10-05T17:00:00.000Z",
3641 "expires_at": "2026-10-12T17:00:00.000Z"
3642 },
3643 "notes": "`404` when you have no pending invitation with that id."
3644 },
3645 "set_base_permission": {
3646 "params": {
3647 "workspace": "flagon-io"
3648 },
3649 "request": {
3650 "base_permission": "read"
3651 },
3652 "response": {
3653 "workspace": "flagon-io",
3654 "base_permission": "read"
3655 },
3656 "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/)."
3657 },
3658 "list_outside_collaborators": {
3659 "params": {
3660 "workspace": "flagon-io"
3661 },
3662 "response": [
3663 {
3664 "username": "ada",
3665 "name": "Ada Lovelace",
3666 "avatar": null,
3667 "repos": [
3668 {
3669 "repo": "flagon-io/docs",
3670 "role": "write"
3671 },
3672 {
3673 "repo": "flagon-io/hello",
3674 "role": "triage"
3675 }
3676 ]
3677 }
3678 ],
3679 "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/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'3680 }
3681}

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