g1t/apps/api/src/reference.json

4,207 lines122,976 bytesCodeBlame

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

Merge branch 'worktree-agent-ab2e39e11a6493412'1{
2 "device_code": {
3 "request": {
4 "client_name": "Claude Code"
5 },
6 "response": {
7 "device_code": "Gm3k…",
8 "user_code": "WDJB-MJHT",
9 "verification_uri": "https://g1t.sh/device",
10 "verification_uri_complete": "https://g1t.sh/device?code=WDJB-MJHT",
11 "expires_in": 900,
12 "interval": 5
13 }
14 },
15 "device_token": {
16 "request": {
17 "device_code": "Gm3k…"
18 },
19 "response": {
20 "status": "approved",
21 "token": "g1t_…",
22 "username": "syntaqx",
23 "verified": true
24 }
25 },
26 "whoami": {
27 "response": {
28 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
29 "username": "syntaqx",
30 "kind": "user",
31 "verified": true,
32 "workspaces": [
33 {
34 "slug": "acme",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look35 "role": "member",
36 "base_permission": "write"
Merge branch 'worktree-agent-ab2e39e11a6493412'37 },
38 {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look39 "slug": "flagon-io",
40 "role": "owner",
41 "base_permission": "write"
Merge branch 'worktree-agent-ab2e39e11a6493412'42 }
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step43 ],
44 "token": {
45 "token_id": "tok_01kkntd3p2v8x6ym5r0c1q7a9e",
46 "scopes": ["repo:read", "issues:read", "issues:write", "pull_requests:read", "pull_requests:write"]
47 }
Merge branch 'worktree-agent-ab2e39e11a6493412'48 },
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step49 "notes": "`token` is what the access token you called with may do: its `scopes` (left out for full access) and `legacy` when it was made before tokens had scopes. A token reaches every workspace and repository whoever it acts as can; its scopes say what it may do there. See [Scopes](/guides/authentication/#scopes). `kind` is `user`, `workspace` for a [workspace access token](/guides/workspaces/#workspace-access-tokens), or `agent` for the token a g1t agent works with. For a workspace token, `username` is the workspace's slug and `workspaces` holds only that workspace. Each workspace carries its `base_permission`: what a member gets on each of its repositories (owners have Admin). Roles given on single repositories are in `grants`, each with `repo_id`, `workspace` and `role`; it is left out when there are none. See [Access and roles](/guides/access-and-roles/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'50 },
51 "create_workspace": {
52 "request": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look53 "slug": "acme-labs",
54 "name": "Acme Labs"
Merge branch 'worktree-agent-ab2e39e11a6493412'55 },
56 "response": {
57 "id": "wsp_01m43teqa9em6bje0bhvdj4jkb",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look58 "slug": "acme-labs",
59 "name": "Acme Labs",
Merge branch 'worktree-agent-ab2e39e11a6493412'60 "description": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API61 "created_at": "2026-10-04T16:02:51.337Z",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look62 "member_count": 1,
63 "base_permission": "write"
64 },
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily65 "notes": "`base_permission` is what every member gets on each of its repositories: `write` until an owner changes it with `PATCH /workspaces/{workspace}` or `PUT /workspaces/{workspace}/base_permission`. See [Access and roles](/guides/access-and-roles/)."
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look66 },
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily67 "update_workspace": {
68 "params": {
69 "workspace": "acme-labs"
70 },
71 "request": {
72 "name": "Acme Labs",
73 "description": "Rockets, and the software that flies them."
74 },
75 "response": {
76 "id": "wsp_01m43teqa9em6bje0bhvdj4jkb",
77 "slug": "acme-labs",
78 "name": "Acme Labs",
79 "description": "Rockets, and the software that flies them.",
80 "created_at": "2026-10-04T16:02:51.337Z",
81 "member_count": 3,
82 "base_permission": "write"
83 },
84 "notes": "Only the fields given change. `name` is the display name; the slug, the first part of the workspace's addresses, stays as it is. `base_permission` needs the `access:admin` scope as well as `workspace:admin`; [`set_base_permission`](/reference/api/access/set-base-permission/) sets it alone. Refused with `403` for anyone but an owner signed in as a person. Recorded in the [audit log](/guides/audit-log/). See [Workspaces](/guides/workspaces/)."
85 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look86 "delete_workspace": {
87 "request": {
88 "confirm": "acme-labs"
89 },
90 "response": true,
91 "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)."
92 },
93 "list_emails": {
94 "response": {
95 "emails": [
96 {
97 "email": "ada@example.com",
98 "verified": true,
99 "primary": true,
100 "backup": false,
101 "created_at": "2026-09-01T10:00:00.000Z",
102 "verified_at": "2026-09-01T10:02:11.000Z"
103 },
104 {
105 "email": "ada@acme.com",
106 "verified": true,
107 "primary": false,
108 "backup": true,
109 "created_at": "2026-10-02T09:30:00.000Z",
110 "verified_at": "2026-10-02T09:31:40.000Z"
111 },
112 {
113 "email": "ada.l@example.org",
114 "verified": false,
115 "primary": false,
116 "backup": false,
117 "created_at": "2026-10-05T14:12:03.000Z",
118 "verified_at": null
119 }
120 ],
121 "private_email": true,
122 "block_private_pushes": false,
123 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
124 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
125 "limit": 10
126 },
127 "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)."
128 },
129 "add_email": {
130 "request": {
131 "email": "ada.l@example.org",
132 "password": "…"
133 },
134 "response": {
135 "emails": [
136 {
137 "email": "ada@example.com",
138 "verified": true,
139 "primary": true,
140 "backup": false,
141 "created_at": "2026-09-01T10:00:00.000Z",
142 "verified_at": "2026-09-01T10:02:11.000Z"
143 },
144 {
145 "email": "ada@acme.com",
146 "verified": true,
147 "primary": false,
148 "backup": true,
149 "created_at": "2026-10-02T09:30:00.000Z",
150 "verified_at": "2026-10-02T09:31:40.000Z"
151 },
152 {
153 "email": "ada.l@example.org",
154 "verified": false,
155 "primary": false,
156 "backup": false,
157 "created_at": "2026-10-05T14:12:03.000Z",
158 "verified_at": null
159 }
160 ],
161 "private_email": true,
162 "block_private_pushes": false,
163 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
164 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
165 "limit": 10
166 },
167 "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."
168 },
169 "remove_email": {
170 "request": {
171 "password": "…"
172 },
173 "response": {
174 "emails": [
175 {
176 "email": "ada@example.com",
177 "verified": true,
178 "primary": true,
179 "backup": false,
180 "created_at": "2026-09-01T10:00:00.000Z",
181 "verified_at": "2026-09-01T10:02:11.000Z"
182 },
183 {
184 "email": "ada@acme.com",
185 "verified": true,
186 "primary": false,
187 "backup": true,
188 "created_at": "2026-10-02T09:30:00.000Z",
189 "verified_at": "2026-10-02T09:31:40.000Z"
190 },
191 {
192 "email": "ada.l@example.org",
193 "verified": false,
194 "primary": false,
195 "backup": false,
196 "created_at": "2026-10-05T14:12:03.000Z",
197 "verified_at": null
198 }
199 ],
200 "private_email": true,
201 "block_private_pushes": false,
202 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
203 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
204 "limit": 10
205 },
206 "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."
207 },
208 "update_email_settings": {
209 "request": {
210 "primary": "ada@acme.com",
211 "password": "…"
212 },
213 "response": {
214 "emails": [
215 {
216 "email": "ada@example.com",
217 "verified": true,
218 "primary": true,
219 "backup": false,
220 "created_at": "2026-09-01T10:00:00.000Z",
221 "verified_at": "2026-09-01T10:02:11.000Z"
222 },
223 {
224 "email": "ada@acme.com",
225 "verified": true,
226 "primary": false,
227 "backup": true,
228 "created_at": "2026-10-02T09:30:00.000Z",
229 "verified_at": "2026-10-02T09:31:40.000Z"
230 },
231 {
232 "email": "ada.l@example.org",
233 "verified": false,
234 "primary": false,
235 "backup": false,
236 "created_at": "2026-10-05T14:12:03.000Z",
237 "verified_at": null
238 }
239 ],
240 "private_email": true,
241 "block_private_pushes": false,
242 "noreply": "6c1d0efg+ada@users.noreply.g1t.sh",
243 "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh",
244 "limit": 10
245 },
246 "notes": "Only the fields given change. `primary` and `backup` need `password`; `private_email` and `block_private_pushes` do not."
247 },
248 "list_invites": {
249 "response": {
250 "mode": "invite",
251 "allowance": {
252 "limit": 5,
253 "used": 2,
254 "remaining": 3
255 },
256 "workspaces": [
257 {
258 "slug": "acme-labs",
259 "allowance": {
260 "limit": 20,
261 "used": 4,
262 "remaining": 16
263 }
264 }
265 ],
266 "invites": [
267 {
268 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
269 "code": "g1t-k7m2-q9xd-4hpw-…",
270 "hint": "g1t-k7m2",
271 "email": "ada@example.com",
272 "kind": "account",
273 "workspace": null,
274 "status": "pending",
275 "charged_to": "user",
276 "invited_by": "syntaqx",
277 "redeemed_by": null,
278 "created_at": "2026-10-05T17:00:00.000Z",
279 "expires_at": "2026-11-04T17:00:00.000Z",
280 "redeemed_at": null,
281 "revoked_at": null
282 },
283 {
284 "id": "inv_01kp1v3c4d5e6f7g8h9j0k1m2n",
285 "code": null,
286 "hint": "g1t-p3rt",
287 "email": null,
288 "kind": "account",
289 "workspace": null,
290 "status": "redeemed",
291 "charged_to": "user",
292 "invited_by": "syntaqx",
293 "redeemed_by": "grace",
294 "created_at": "2026-10-02T09:12:40.000Z",
295 "expires_at": "2026-11-01T09:12:40.000Z",
296 "redeemed_at": "2026-10-02T11:30:05.000Z",
297 "revoked_at": null
298 }
299 ]
300 },
301 "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)."
302 },
303 "create_invite": {
304 "request": {
305 "email": "ada@example.com"
306 },
307 "response": {
308 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
309 "code": "g1t-k7m2-q9xd-4hpw-…",
310 "hint": "g1t-k7m2",
311 "email": "ada@example.com",
312 "kind": "account",
313 "workspace": null,
314 "status": "pending",
315 "charged_to": "user",
316 "invited_by": "syntaqx",
317 "redeemed_by": null,
318 "created_at": "2026-10-05T17:00:00.000Z",
319 "expires_at": "2026-11-04T17:00:00.000Z",
320 "redeemed_at": null,
321 "revoked_at": null
322 },
323 "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>`."
324 },
325 "revoke_invite": {
326 "response": {
327 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
328 "code": null,
329 "hint": "g1t-k7m2",
330 "email": "ada@example.com",
331 "kind": "account",
332 "workspace": null,
333 "status": "revoked",
334 "charged_to": "user",
335 "invited_by": "syntaqx",
336 "redeemed_by": null,
337 "created_at": "2026-10-05T17:00:00.000Z",
338 "expires_at": "2026-11-04T17:00:00.000Z",
339 "redeemed_at": null,
340 "revoked_at": "2026-10-06T08:00:00.000Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'341 }
342 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look343 "list_workspace_invites": {
344 "response": [
345 {
346 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
347 "code": "g1t-k7m2-q9xd-4hpw-…",
348 "hint": "g1t-k7m2",
349 "email": "ada@example.com",
350 "kind": "account",
351 "workspace": "acme-labs",
352 "status": "pending",
353 "charged_to": "workspace",
354 "invited_by": "syntaqx",
355 "redeemed_by": null,
356 "created_at": "2026-10-05T17:00:00.000Z",
357 "expires_at": "2026-11-04T17:00:00.000Z",
358 "redeemed_at": null,
359 "revoked_at": null
360 },
361 {
362 "id": "inv_01kp1z9y8x7w6v5t4s3r2q1p0n",
363 "code": "g1t-k7m2-q9xd-4hpw-…",
364 "hint": "g1t-w2vb",
365 "email": "linus@example.com",
366 "kind": "workspace",
367 "workspace": "acme-labs",
368 "status": "pending",
369 "charged_to": "none",
370 "invited_by": "syntaqx",
371 "redeemed_by": null,
372 "created_at": "2026-10-05T17:00:00.000Z",
373 "expires_at": "2026-11-04T17:00:00.000Z",
374 "redeemed_at": null,
375 "revoked_at": null
376 }
377 ]
378 },
379 "invite_member": {
380 "request": {
381 "email": "ada@example.com"
382 },
383 "response": {
384 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
385 "code": "g1t-k7m2-q9xd-4hpw-…",
386 "hint": "g1t-k7m2",
387 "email": "ada@example.com",
388 "kind": "account",
389 "workspace": "acme-labs",
390 "status": "pending",
391 "charged_to": "workspace",
392 "invited_by": "syntaqx",
393 "redeemed_by": null,
394 "created_at": "2026-10-05T17:00:00.000Z",
395 "expires_at": "2026-11-04T17:00:00.000Z",
396 "redeemed_at": null,
397 "revoked_at": null
398 },
399 "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."
400 },
401 "revoke_workspace_invite": {
402 "response": {
403 "id": "inv_01kp2x7m8n9q0r1s2t3v4w5x6y",
404 "code": null,
405 "hint": "g1t-k7m2",
406 "email": "ada@example.com",
407 "kind": "account",
408 "workspace": "acme-labs",
409 "status": "revoked",
410 "charged_to": "workspace",
411 "invited_by": "syntaqx",
412 "redeemed_by": null,
413 "created_at": "2026-10-05T17:00:00.000Z",
414 "expires_at": "2026-11-04T17:00:00.000Z",
415 "redeemed_at": null,
416 "revoked_at": "2026-10-06T08:00:00.000Z"
417 }
418 },
Merge branch 'worktree-agent-ab2e39e11a6493412'419 "list_repos": {
420 "query": {
421 "q": "hello"
422 },
423 "response": [
424 {
425 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look426 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'427 "name": "hello",
428 "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 API429 "is_private": false,
430 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
431 "default_branch": "main",
432 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'433 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look434 "created_at": "2026-09-28T14:11:52.640Z",
435 "website": "https://hello.g1t.page",
436 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'437 }
438 ],
439 "notes": "Returns at most 50 repositories, newest first. Forks made for pull requests are left out."
440 },
441 "create_repo": {
442 "request": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look443 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'444 "name": "hello-cli",
445 "description": "Command-line client for hello.",
446 "private": false
447 },
448 "response": {
449 "id": "rep_01m43tk1jhehztx23drs87f5fc",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look450 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'451 "name": "hello-cli",
452 "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 API453 "is_private": false,
454 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
455 "default_branch": "main",
456 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'457 "protected": false,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look458 "created_at": "2026-10-04T16:05:12.913Z",
459 "website": "https://hello.g1t.page",
460 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'461 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API462 "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'463 },
464 "get_repo": {
465 "response": {
466 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look467 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'468 "name": "hello",
469 "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 API470 "is_private": false,
471 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
472 "default_branch": "main",
473 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'474 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look475 "created_at": "2026-09-28T14:11:52.640Z",
476 "website": "https://hello.g1t.page",
477 "archived_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'478 }
479 },
480 "update_repo": {
481 "request": {
482 "description": "Says hello, politely.",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look483 "website": "hello.g1t.page",
484 "default_branch": "trunk",
Merge branch 'worktree-agent-ab2e39e11a6493412'485 "protected": true
486 },
487 "response": {
488 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look489 "namespace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'490 "name": "hello",
491 "description": "Says hello, politely.",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API492 "is_private": false,
493 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look494 "default_branch": "trunk",
495 "fork_of": null,
496 "protected": true,
497 "created_at": "2026-09-28T14:11:52.640Z",
498 "topics": [
499 "http",
500 "example"
501 ],
502 "website": "https://hello.g1t.page",
503 "archived_at": null
504 },
505 "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/)."
506 },
507 "transfer_repo": {
508 "request": {
509 "to": "flagon-io"
510 },
511 "response": {
512 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
513 "namespace": "flagon-io",
514 "name": "hello",
515 "description": "A tiny service that says hello.",
516 "is_private": false,
517 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API518 "default_branch": "main",
519 "fork_of": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'520 "protected": true,
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look521 "created_at": "2026-09-28T14:11:52.640Z",
522 "website": "https://hello.g1t.page",
523 "archived_at": null
524 },
525 "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'526 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look527 "rename_repo": {
528 "request": {
529 "name": "greeter"
530 },
531 "response": {
532 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
533 "namespace": "flagon-io",
534 "name": "greeter",
535 "description": "A tiny service that says hello.",
536 "is_private": false,
537 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
538 "default_branch": "main",
539 "fork_of": null,
540 "protected": true,
541 "created_at": "2026-09-28T14:11:52.640Z",
542 "topics": [
543 "http",
544 "example"
545 ],
546 "website": "https://hello.g1t.page",
547 "archived_at": null
548 },
549 "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)."
550 },
551 "rename_branch": {
552 "params": {
553 "owner": "flagon-io",
554 "name": "hello",
555 "branch": "feature/login"
556 },
557 "request": {
558 "new_name": "feature/sign-in"
559 },
560 "response": {
561 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
562 "namespace": "flagon-io",
563 "name": "hello",
564 "description": "A tiny service that says hello.",
565 "is_private": false,
566 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
567 "default_branch": "main",
568 "fork_of": null,
569 "protected": true,
570 "created_at": "2026-09-28T14:11:52.640Z",
571 "topics": [
572 "http",
573 "example"
574 ],
575 "website": "https://hello.g1t.page",
576 "archived_at": null
577 },
578 "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)."
579 },
580 "set_repo_visibility": {
581 "request": {
582 "private": true,
583 "confirm": "flagon-io/hello"
584 },
585 "response": {
586 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
587 "namespace": "flagon-io",
588 "name": "hello",
589 "description": "A tiny service that says hello.",
590 "is_private": true,
591 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
592 "default_branch": "main",
593 "fork_of": null,
594 "protected": true,
595 "created_at": "2026-09-28T14:11:52.640Z",
596 "topics": [
597 "http",
598 "example"
599 ],
600 "website": "https://hello.g1t.page",
601 "archived_at": null
602 },
603 "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)."
604 },
605 "archive_repo": {
606 "response": {
607 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
608 "namespace": "flagon-io",
609 "name": "hello",
610 "description": "A tiny service that says hello.",
611 "is_private": false,
612 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
613 "default_branch": "main",
614 "fork_of": null,
615 "protected": true,
616 "created_at": "2026-09-28T14:11:52.640Z",
617 "topics": [
618 "http",
619 "example"
620 ],
621 "website": "https://hello.g1t.page",
622 "archived_at": "2026-10-05T09:30:00.000Z"
623 },
624 "notes": "The repository, with `archived_at` set. Needs the Admin role (`403` otherwise). See [Archive a repository](/guides/managing-repositories/#archive-a-repository)."
625 },
626 "unarchive_repo": {
627 "response": {
628 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
629 "namespace": "flagon-io",
630 "name": "hello",
631 "description": "A tiny service that says hello.",
632 "is_private": false,
633 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
634 "default_branch": "main",
635 "fork_of": null,
636 "protected": true,
637 "created_at": "2026-09-28T14:11:52.640Z",
638 "topics": [
639 "http",
640 "example"
641 ],
642 "website": "https://hello.g1t.page",
643 "archived_at": null
644 },
645 "notes": "The repository, with `archived_at` null. Needs the Admin role (`403` otherwise)."
646 },
647 "delete_repo": {
648 "request": {
649 "confirm": "flagon-io/hello"
650 },
651 "response": {
652 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
653 "namespace": "flagon-io",
654 "name": "hello",
655 "description": "A tiny service that says hello.",
656 "is_private": false,
657 "deleted_at": "2026-10-05T09:30:00.000Z",
658 "deleted_by": "syntaqx",
659 "purge_after": "2026-11-04T09:30:00.000Z"
660 },
661 "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)."
662 },
663 "list_deleted_repos": {
664 "params": {
665 "workspace": "flagon-io"
666 },
667 "response": [
668 {
669 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
670 "namespace": "flagon-io",
671 "name": "hello",
672 "description": "A tiny service that says hello.",
673 "is_private": false,
674 "deleted_at": "2026-10-05T09:30:00.000Z",
675 "deleted_by": "syntaqx",
676 "purge_after": "2026-11-04T09:30:00.000Z"
677 }
678 ],
679 "notes": "Newest first. Empty for anyone who is not an owner of the workspace."
680 },
681 "restore_repo": {
682 "response": {
683 "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
684 "namespace": "flagon-io",
685 "name": "hello",
686 "description": "A tiny service that says hello.",
687 "is_private": false,
688 "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p",
689 "default_branch": "main",
690 "fork_of": null,
691 "protected": true,
692 "created_at": "2026-09-28T14:11:52.640Z",
693 "topics": [
694 "http",
695 "example"
696 ],
697 "website": "https://hello.g1t.page",
698 "archived_at": null
699 },
700 "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)."
701 },
702 "purge_repo": {
703 "request": {
704 "confirm": "flagon-io/hello"
705 },
706 "response": true,
707 "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."
708 },
Merge branch 'worktree-agent-ab2e39e11a6493412'709 "get_repo_settings": {
710 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API711 "auto_merge": false,
Fast pages, required checks on the branch, self-hosted runners, honest incidents712 "required_checks": [
713 "CI"
714 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API715 "require_up_to_date": false,
716 "required_approvals": 0,
717 "count_agent_approvals": true,
718 "allow_ignoring_checks": true,
719 "agent_review": true,
720 "max_revisions": 2,
721 "merge_queue": false,
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step722 "hold_low_confidence": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API723 "updated_by": null,
724 "updated_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'725 }
726 },
727 "update_repo_settings": {
728 "request": {
Fast pages, required checks on the branch, self-hosted runners, honest incidents729 "required_checks": [
730 "CI",
731 "g1t / deploy"
732 ],
Merge branch 'worktree-agent-ab2e39e11a6493412'733 "required_approvals": 1,
734 "count_agent_approvals": false,
735 "merge_queue": true
736 },
737 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API738 "auto_merge": false,
Fast pages, required checks on the branch, self-hosted runners, honest incidents739 "required_checks": [
740 "CI",
741 "g1t / deploy"
742 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API743 "require_up_to_date": false,
744 "required_approvals": 1,
745 "count_agent_approvals": false,
746 "allow_ignoring_checks": true,
747 "agent_review": true,
748 "max_revisions": 2,
749 "merge_queue": true,
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step750 "hold_low_confidence": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API751 "updated_by": "syntaqx",
752 "updated_at": "2026-10-04T16:20:37.508Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'753 },
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily754 "notes": "`required_checks` replaces the whole list: at most 20 names, each a workflow's name or another status's context, as [`list_check_names`](/reference/api/repositories/list-check-names/) gives them. A pull request merges only once each passes on its head; one nothing has reported holds it too. With the merge queue on, each must also pass on the queued state, so the workflows behind them need `merge_group` in their `on:`. `required_approvals` is at most 6 and `max_revisions` at most 5. See [what a repository can ask for](/guides/g1t-agents/#what-a-repository-can-ask-for). `hold_low_confidence` is on unless turned off: see [confidence](/guides/g1t-agents/#how-sure-the-agent-is)."
Merge branch 'worktree-agent-ab2e39e11a6493412'755 },
Fast pages, required checks on the branch, self-hosted runners, honest incidents756 "list_check_names": {
757 "response": [
758 {
759 "name": "CI",
760 "events": [
761 "pull_request",
762 "merge_group",
763 "push"
764 ],
765 "last_seen": "2026-10-06T09:14:02.118Z"
766 },
767 {
768 "name": "g1t / deploy",
769 "events": [],
770 "last_seen": "2026-10-06T08:51:40.006Z"
771 }
772 ],
773 "notes": "The names reported on the repository's commits in the last 30 days, most recent first. A workflow reports a check named after it (`CI`), for each event it ran for; another tool, such as a deployment, reports its own name (`g1t / deploy`). Empty until something has reported on a commit: add a workflow in `.g1t/workflows` first."
774 },
Merge branch 'worktree-agent-ab2e39e11a6493412'775 "list_events": {
776 "query": {
777 "before": "evt_01m43t2a6c9e3g7j1m5q9t3x7b"
778 },
779 "response": [
780 {
781 "id": "evt_01m43smh3ve52vkcna207vqctf",
782 "type": "pull.opened",
783 "source": "work",
784 "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 API785 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'786 "actor": "usr_01kkntcg1eeb98j62xjm7eh09p",
787 "data": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API788 "pull_id": "pr_01m43smh3vexsr5pmp60qwv0vs",
789 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'790 "number": 14,
791 "issue": 12,
792 "agent": "claude-code"
793 }
794 },
795 {
796 "id": "evt_01m43shrzpf2vt5rxbb02z0xjt",
797 "type": "issue.opened",
798 "source": "work",
799 "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 API800 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'801 "actor": "usr_01kkntcg1eeb98j62xjm7eh09p",
802 "data": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API803 "issue_id": "iss_01m43shrzpfe49x74ga7sj1c6v",
804 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'805 "number": 12,
806 "title": "Greeting should name the caller"
807 }
808 }
809 ],
810 "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`."
811 },
812 "list_issues": {
813 "query": {
814 "state": "open",
815 "label": "feature"
816 },
817 "response": [
818 {
819 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API820 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'821 "number": 12,
822 "title": "Greeting should name the caller",
823 "body": "Take a name from the first argument; fall back to world.",
824 "labels": [
825 "feature"
826 ],
827 "state": "open",
828 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API829 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'830 "author": {
831 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
832 "username": "syntaqx",
833 "kind": "user",
834 "verified": false,
835 "workspaces": []
836 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API837 "created_at": "2026-10-01T18:04:11.482Z",
838 "updated_at": "2026-10-01T18:04:11.482Z",
839 "closed_at": null,
840 "pull_count": 1,
841 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'842 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API843 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'844 "queued": false,
845 "agent": "claude-code"
846 }
847 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API848 "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'849 },
850 "create_issue": {
851 "request": {
852 "title": "Greeting should name the caller",
853 "body": "Take a name from the first argument; fall back to world.",
854 "labels": [
855 "feature"
856 ]
857 },
858 "response": {
859 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API860 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'861 "number": 12,
862 "title": "Greeting should name the caller",
863 "body": "Take a name from the first argument; fall back to world.",
864 "labels": [
865 "feature"
866 ],
867 "state": "open",
868 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API869 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'870 "author": {
871 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
872 "username": "syntaqx",
873 "kind": "user",
874 "verified": false,
875 "workspaces": []
876 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API877 "created_at": "2026-10-01T18:04:11.482Z",
878 "updated_at": "2026-10-01T18:04:11.482Z",
879 "closed_at": null,
880 "pull_count": 0,
881 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'882 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API883 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'884 "queued": false,
885 "agent": null
886 },
887 "notes": "Labels are lowercased. A label not used before is created."
888 },
889 "get_issue": {
890 "response": {
891 "issue": {
892 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API893 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'894 "number": 12,
895 "title": "Greeting should name the caller",
896 "body": "Take a name from the first argument; fall back to world.",
897 "labels": [
898 "feature"
899 ],
900 "state": "closed",
901 "reason": "completed",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API902 "resolved_by": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'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:04:11.482Z",
911 "updated_at": "2026-10-01T18:52:17.093Z",
912 "closed_at": "2026-10-01T18:52:17.093Z",
913 "pull_count": 2,
914 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'915 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API916 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'917 "queued": false,
918 "agent": null
919 },
920 "pulls": [
921 {
922 "id": "pr_01m43sjq8tcz5rbm2a7k4d9e6w",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API923 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'924 "number": 13,
925 "issue": 12,
926 "title": "Greeting should name the caller",
927 "body": null,
928 "agent": "claude-code",
929 "runtime": "external",
930 "status": "closed",
931 "fork": {
932 "namespace": "pulls",
933 "name": "pr_01m43sjq8tcz5rbm2a7k4d9e6w"
934 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API935 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'936 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API937 "head_commit": null,
938 "merge_base": null,
939 "merged_by": null,
940 "merged_at": null,
941 "superseded_by": 14,
942 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'943 "files": [],
944 "assignees": [],
945 "reviewers": [],
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:20:02.117Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'955 },
956 {
957 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API958 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'959 "number": 14,
960 "issue": 12,
961 "title": "Greeting should name the caller",
962 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
963 "agent": "claude-code",
964 "runtime": "external",
965 "status": "merged",
966 "fork": {
967 "namespace": "pulls",
968 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
969 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API970 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'971 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API972 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
973 "merge_base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
974 "merged_by": "syntaqx",
975 "merged_at": "2026-10-01T18:52:17.093Z",
976 "superseded_by": null,
977 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'978 "files": [
979 {
980 "path": "src/main.rs",
981 "additions": 6,
982 "deletions": 2
983 }
984 ],
985 "assignees": [],
986 "reviewers": [
987 "ana"
988 ],
989 "author": {
990 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
991 "username": "syntaqx",
992 "kind": "user",
993 "verified": false,
994 "workspaces": []
995 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API996 "created_at": "2026-10-01T18:20:02.117Z",
997 "updated_at": "2026-10-01T18:52:17.093Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'998 }
999 ],
1000 "comments": [
1001 {
1002 "id": "cmt_01m43sr2b7d5f0j6k3n8p1q4v9",
1003 "kind": "event",
1004 "author": {
1005 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1006 "username": "syntaqx",
1007 "kind": "user",
1008 "verified": false,
1009 "workspaces": []
1010 },
1011 "body": "opened #14 for this",
1012 "path": null,
1013 "line": null,
1014 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1015 "created_at": "2026-10-01T18:20:02.141Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1016 }
1017 ]
1018 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1019 "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'1020 },
1021 "update_issue": {
1022 "request": {
1023 "labels": [
1024 "feature",
1025 "good first issue"
1026 ],
1027 "assignees": [
1028 "syntaqx"
1029 ]
1030 },
1031 "response": {
1032 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1033 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1034 "number": 12,
1035 "title": "Greeting should name the caller",
1036 "body": "Take a name from the first argument; fall back to world.",
1037 "labels": [
1038 "feature",
1039 "good first issue"
1040 ],
1041 "state": "open",
1042 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1043 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1044 "author": {
1045 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1046 "username": "syntaqx",
1047 "kind": "user",
1048 "verified": false,
1049 "workspaces": []
1050 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1051 "created_at": "2026-10-01T18:04:11.482Z",
1052 "updated_at": "2026-10-01T18:09:47.305Z",
1053 "closed_at": null,
1054 "pull_count": 0,
1055 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1056 "assignees": [
1057 "syntaqx"
1058 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1059 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1060 "queued": false,
1061 "agent": null
1062 }
1063 },
1064 "close_issue": {
1065 "request": {
1066 "reason": "not_planned"
1067 },
1068 "response": {
1069 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1070 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1071 "number": 12,
1072 "title": "Greeting should name the caller",
1073 "body": "Take a name from the first argument; fall back to world.",
1074 "labels": [
1075 "feature"
1076 ],
1077 "state": "closed",
1078 "reason": "not_planned",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1079 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1080 "author": {
1081 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1082 "username": "syntaqx",
1083 "kind": "user",
1084 "verified": false,
1085 "workspaces": []
1086 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1087 "created_at": "2026-10-01T18:04:11.482Z",
1088 "updated_at": "2026-10-01T19:30:00.214Z",
1089 "closed_at": "2026-10-01T19:30:00.214Z",
1090 "pull_count": 0,
1091 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1092 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1093 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1094 "queued": false,
1095 "agent": null
1096 }
1097 },
1098 "reopen_issue": {
1099 "response": {
1100 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
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": 12,
1103 "title": "Greeting should name the caller",
1104 "body": "Take a name from the first argument; fall back to world.",
1105 "labels": [
1106 "feature"
1107 ],
1108 "state": "open",
1109 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1110 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1111 "author": {
1112 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1113 "username": "syntaqx",
1114 "kind": "user",
1115 "verified": false,
1116 "workspaces": []
1117 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1118 "created_at": "2026-10-01T18:04:11.482Z",
1119 "updated_at": "2026-10-01T19:41:52.830Z",
1120 "closed_at": null,
1121 "pull_count": 0,
1122 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1123 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1124 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1125 "queued": false,
1126 "agent": null
1127 }
1128 },
1129 "assign_issue": {
1130 "request": {
1131 "instructions": "Keep the change to src/main.rs."
1132 },
1133 "response": {
1134 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1135 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1136 "number": 14,
1137 "issue": 12,
1138 "title": "Greeting should name the caller",
1139 "body": null,
1140 "agent": "g1t-agent",
1141 "runtime": "hosted",
1142 "status": "draft",
1143 "fork": {
1144 "namespace": "pulls",
1145 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1146 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1147 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1148 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1149 "head_commit": null,
1150 "merge_base": null,
1151 "merged_by": null,
1152 "merged_at": null,
1153 "superseded_by": null,
1154 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1155 "files": [],
1156 "assignees": [],
1157 "reviewers": [],
1158 "author": {
1159 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1160 "username": "syntaqx",
1161 "kind": "user",
1162 "verified": false,
1163 "workspaces": []
1164 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1165 "created_at": "2026-10-01T18:20:02.117Z",
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1166 "updated_at": "2026-10-01T18:20:02.117Z",
1167 "confidence": null
Merge branch 'worktree-agent-ab2e39e11a6493412'1168 },
1169 "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."
1170 },
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1171 "delegate": {
1172 "request": {
1173 "title": "Retry webhooks with exponential backoff",
Fast pages, required checks on the branch, self-hosted runners, honest incidents1174 "body": "Deliveries that fail are dropped today. Retry them with exponential backoff, up to six times, then mark the delivery failed.\n\n## Definition of done\n\n- A delivery that fails is retried after 1, 2, 4, 8, 16 and 32 seconds.\n- After the sixth failure it is marked failed and shows on the webhook's page."
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1175 },
1176 "response": {
1177 "issue": {
1178 "id": "iss_01m4a2c8v1t7k3q9x5n0r2w6yd",
1179 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
1180 "number": 41,
1181 "title": "Retry webhooks with exponential backoff",
1182 "body": "Deliveries that fail are dropped today. Retry them with exponential backoff, up to six times, then mark the delivery failed.",
1183 "labels": [],
1184 "state": "open",
1185 "reason": null,
1186 "resolved_by": null,
1187 "author": {
1188 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1189 "username": "syntaqx",
1190 "kind": "user",
1191 "verified": false,
1192 "workspaces": []
1193 },
1194 "created_at": "2026-10-05T14:02:11.204Z",
1195 "updated_at": "2026-10-05T14:02:11.204Z",
1196 "closed_at": null,
1197 "pull_count": 1,
1198 "comment_count": 0,
1199 "assignees": [],
1200 "blocked_by": [],
1201 "queued": false,
1202 "agent": "g1t-agent"
1203 },
1204 "pull": {
1205 "id": "pr_01m4a2c9b6e0h4m8q2t6x0a4d8",
1206 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
1207 "number": 42,
1208 "issue": 41,
1209 "title": "Retry webhooks with exponential backoff",
1210 "body": null,
1211 "agent": "g1t-agent",
1212 "runtime": "hosted",
1213 "status": "draft",
1214 "fork": {
1215 "namespace": "pulls",
1216 "name": "pr_01m4a2c9b6e0h4m8q2t6x0a4d8"
1217 },
1218 "fork_repo_id": "rep_01m4a2c9d2g6k0n4r8v2z6c0f4",
1219 "branch": null,
1220 "head_commit": null,
1221 "merge_base": null,
1222 "merged_by": null,
1223 "merged_at": null,
1224 "superseded_by": null,
1225 "check_status": null,
1226 "files": [],
1227 "assignees": [],
1228 "reviewers": [],
1229 "author": {
1230 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1231 "username": "syntaqx",
1232 "kind": "user",
1233 "verified": false,
1234 "workspaces": []
1235 },
1236 "created_at": "2026-10-05T14:02:12.880Z",
1237 "updated_at": "2026-10-05T14:02:12.880Z",
1238 "confidence": null
1239 },
1240 "agent": {
1241 "status": "started",
1242 "code": null,
1243 "message": null,
1244 "fix_url": null
1245 }
1246 },
1247 "notes": "The issue is opened whatever becomes of the agent. When the workspace's plan does not let it start, `pull` is null and `agent` says why and where to fix it, for example `{ \"status\": \"not_started\", \"code\": \"not_paid\", \"message\": \"Agents need a paid workspace. Start the $20 plan or try it with $5 of free usage after a card check: /acme/-/billing\", \"fix_url\": \"https://g1t.sh/acme/-/billing\" }`. With every agent slot busy, `status` is `queued` and it starts by itself when one frees up. See [putting an agent on something](/guides/g1t-agents/#put-an-agent-on-it-in-one-step)."
1248 },
Merge branch 'worktree-agent-ab2e39e11a6493412'1249 "add_comment": {
1250 "request": {
1251 "body": "Should an empty name fall back to \"world\"?"
1252 },
1253 "response": {
1254 "id": "cmt_01m43sv4c8e2g6j0m4q8t2x6a1",
1255 "kind": "comment",
1256 "author": {
1257 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1258 "username": "syntaqx",
1259 "kind": "user",
1260 "verified": true,
1261 "workspaces": [
1262 {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look1263 "slug": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'1264 "role": "owner"
1265 }
1266 ]
1267 },
1268 "body": "Should an empty name fall back to \"world\"?",
1269 "path": null,
1270 "line": null,
1271 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1272 "created_at": "2026-10-01T18:12:30.551Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1273 }
1274 },
1275 "list_labels": {
1276 "response": [
1277 "bug",
1278 "feature",
1279 "docs",
1280 "chore",
1281 "question",
1282 "good first issue"
1283 ],
1284 "notes": "The five default labels come first, then the others used on the repository's issues, alphabetically."
1285 },
1286 "plan_work": {
1287 "request": {
1288 "brief": "Greet people by name, from the command line and the web page."
1289 },
1290 "response": {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1291 "plan_id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
Merge branch 'worktree-agent-ab2e39e11a6493412'1292 }
1293 },
1294 "get_plan": {
1295 "params": {
1296 "plan": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
1297 },
1298 "response": {
1299 "id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1300 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1301 "brief": "Greet people by name, from the command line and the web page.",
1302 "status": "ready",
1303 "summary": "Name parsing first, then the two places that print the greeting.",
1304 "issues": [
1305 {
1306 "title": "Greeting should name the caller",
1307 "body": "Accept an optional name in `greet()` and use it.",
1308 "labels": [
1309 "feature"
1310 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1311 "done": [
1312 "`greet` prints \"Hello, ana!\" when given \"ana\", and \"Hello, world!\" with no argument."
Merge branch 'worktree-agent-ab2e39e11a6493412'1313 ],
1314 "files": [
1315 "src/greet.rs"
1316 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1317 "depends_on": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1318 "number": null
1319 },
1320 {
1321 "title": "Show the caller's name on the web page",
1322 "body": "Read `?name=` and pass it to `greet()`.",
1323 "labels": [
1324 "feature"
1325 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1326 "done": [
1327 "The page at / shows the name given in ?name=, escaped."
Merge branch 'worktree-agent-ab2e39e11a6493412'1328 ],
1329 "files": [
1330 "src/web.rs"
1331 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1332 "depends_on": [
Merge branch 'worktree-agent-ab2e39e11a6493412'1333 1
1334 ],
1335 "number": null
1336 }
1337 ],
1338 "error": null,
1339 "author": {
1340 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1341 "username": "syntaqx",
1342 "kind": "user",
1343 "verified": false,
1344 "workspaces": []
1345 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1346 "created_at": "2026-10-01T17:58:40.006Z",
1347 "finished_at": "2026-10-01T18:01:12.774Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1348 "progress": [],
1349 "exchanges": []
1350 },
1351 "notes": "A plan still `planning` after 20 minutes is reported as `failed`. `progress` follows each issue once the plan is applied."
1352 },
1353 "apply_plan": {
1354 "params": {
1355 "plan": "pln_01m43s9c4e8g2j6m0q4t8x2b6d"
1356 },
1357 "request": {
1358 "assign": true
1359 },
1360 "response": {
1361 "id": "pln_01m43s9c4e8g2j6m0q4t8x2b6d",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1362 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1363 "brief": "Greet people by name, from the command line and the web page.",
1364 "status": "applied",
1365 "summary": "Name parsing first, then the two places that print the greeting.",
1366 "issues": [
1367 {
1368 "title": "Greeting should name the caller",
1369 "body": "Accept an optional name in `greet()` and use it.",
1370 "labels": [
1371 "feature"
1372 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1373 "done": [
1374 "`greet` prints \"Hello, ana!\" when given \"ana\", and \"Hello, world!\" with no argument."
Merge branch 'worktree-agent-ab2e39e11a6493412'1375 ],
1376 "files": [
1377 "src/greet.rs"
1378 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1379 "depends_on": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1380 "number": 12
1381 },
1382 {
1383 "title": "Show the caller's name on the web page",
1384 "body": "Read `?name=` and pass it to `greet()`.",
1385 "labels": [
1386 "feature"
1387 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1388 "done": [
1389 "The page at / shows the name given in ?name=, escaped."
Merge branch 'worktree-agent-ab2e39e11a6493412'1390 ],
1391 "files": [
1392 "src/web.rs"
1393 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1394 "depends_on": [
Merge branch 'worktree-agent-ab2e39e11a6493412'1395 1
1396 ],
1397 "number": 13
1398 }
1399 ],
1400 "error": null,
1401 "author": {
1402 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1403 "username": "syntaqx",
1404 "kind": "user",
1405 "verified": false,
1406 "workspaces": []
1407 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1408 "created_at": "2026-10-01T17:58:40.006Z",
1409 "finished_at": "2026-10-01T18:01:12.774Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1410 "progress": [],
1411 "exchanges": []
1412 },
1413 "notes": "Each opened issue's `number` is filled in. Issues left out with `keep` stay `null`."
1414 },
1415 "list_pull_requests": {
1416 "query": {
1417 "state": "open"
1418 },
1419 "response": [
1420 {
1421 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1422 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1423 "number": 14,
1424 "issue": 12,
1425 "title": "Greeting should name the caller",
1426 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1427 "agent": "claude-code",
1428 "runtime": "external",
1429 "status": "open",
1430 "fork": {
1431 "namespace": "pulls",
1432 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1433 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1434 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1435 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1436 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1437 "merge_base": null,
1438 "merged_by": null,
1439 "merged_at": null,
1440 "superseded_by": null,
1441 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1442 "files": [
1443 {
1444 "path": "src/main.rs",
1445 "additions": 6,
1446 "deletions": 2
1447 }
1448 ],
1449 "assignees": [],
1450 "reviewers": [
1451 "ana"
1452 ],
1453 "author": {
1454 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1455 "username": "syntaqx",
1456 "kind": "user",
1457 "verified": false,
1458 "workspaces": []
1459 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1460 "created_at": "2026-10-01T18:20:02.117Z",
1461 "updated_at": "2026-10-01T18:35:44.902Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1462 }
1463 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1464 "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'1465 },
1466 "create_pull_request": {
1467 "request": {
1468 "issue": 12,
1469 "agent": "claude-code"
1470 },
1471 "response": {
1472 "pull": {
1473 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1474 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1475 "number": 14,
1476 "issue": 12,
1477 "title": "Greeting should name the caller",
1478 "body": null,
1479 "agent": "claude-code",
1480 "runtime": "external",
1481 "status": "draft",
1482 "fork": {
1483 "namespace": "pulls",
1484 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1485 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1486 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1487 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1488 "head_commit": null,
1489 "merge_base": null,
1490 "merged_by": null,
1491 "merged_at": null,
1492 "superseded_by": null,
1493 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1494 "files": [],
1495 "assignees": [],
1496 "reviewers": [],
1497 "author": {
1498 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1499 "username": "syntaqx",
1500 "kind": "user",
1501 "verified": false,
1502 "workspaces": []
1503 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1504 "created_at": "2026-10-01T18:20:02.117Z",
1505 "updated_at": "2026-10-01T18:20:02.117Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1506 },
1507 "git": {
1508 "remote": "https://g1t.sh/pulls/pr_01m43smh3vexsr5pmp60qwv0vs.git",
1509 "username": "syntaqx",
1510 "password": "your g1t access token"
1511 }
1512 },
1513 "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."
1514 },
1515 "get_pull_request": {
1516 "response": {
1517 "pull": {
1518 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1519 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1520 "number": 14,
1521 "issue": 12,
1522 "title": "Greeting should name the caller",
1523 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1524 "agent": "claude-code",
1525 "runtime": "external",
1526 "status": "open",
1527 "fork": {
1528 "namespace": "pulls",
1529 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1530 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1531 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1532 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1533 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1534 "merge_base": null,
1535 "merged_by": null,
1536 "merged_at": null,
1537 "superseded_by": null,
1538 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1539 "files": [
1540 {
1541 "path": "src/main.rs",
1542 "additions": 6,
1543 "deletions": 2
1544 }
1545 ],
1546 "assignees": [],
1547 "reviewers": [
1548 "ana"
1549 ],
1550 "author": {
1551 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1552 "username": "syntaqx",
1553 "kind": "user",
1554 "verified": false,
1555 "workspaces": []
1556 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1557 "created_at": "2026-10-01T18:20:02.117Z",
Thirteen MCP tools and classic token scopes; agents rate their confidence and can be put on an issue in one step1558 "updated_at": "2026-10-01T18:35:44.902Z",
1559 "confidence": null
Merge branch 'worktree-agent-ab2e39e11a6493412'1560 },
1561 "issue": {
1562 "id": "iss_01m43shrzpfe49x74ga7sj1c6v",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1563 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1564 "number": 12,
1565 "title": "Greeting should name the caller",
1566 "body": "Take a name from the first argument; fall back to world.",
1567 "labels": [
1568 "feature"
1569 ],
1570 "state": "open",
1571 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1572 "resolved_by": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1573 "author": {
1574 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1575 "username": "syntaqx",
1576 "kind": "user",
1577 "verified": false,
1578 "workspaces": []
1579 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1580 "created_at": "2026-10-01T18:04:11.482Z",
1581 "updated_at": "2026-10-01T18:20:02.117Z",
1582 "closed_at": null,
1583 "pull_count": 1,
1584 "comment_count": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1585 "assignees": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1586 "blocked_by": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'1587 "queued": false,
1588 "agent": "claude-code"
1589 },
1590 "comments": [
1591 {
1592 "id": "cmt_01m43st6d0f4h8k2n6r0v4z8c2",
1593 "kind": "event",
1594 "author": {
1595 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1596 "username": "syntaqx",
1597 "kind": "user",
1598 "verified": false,
1599 "workspaces": []
1600 },
1601 "body": "marked this ready for review",
1602 "path": null,
1603 "line": null,
1604 "verdict": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1605 "created_at": "2026-10-01T18:33:10.420Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1606 }
1607 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1608 "checks": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1609 "overlaps": [],
1610 "behind": false,
1611 "review_pending": false,
1612 "lifecycle": null,
1613 "landing": false,
1614 "stalled": null,
1615 "messages": [
1616 {
1617 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1618 "author": "syntaqx",
1619 "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 API1620 "created_at": "2026-10-01T18:25:00.310Z",
1621 "delivered_at": "2026-10-01T18:25:31.007Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1622 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1623 "from_number": null,
1624 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1625 "answer": null,
1626 "declined": false
1627 }
1628 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents1629 "statuses": [
1630 {
1631 "context": "CI / pull_request",
1632 "state": "success",
1633 "description": "CI passed",
1634 "target_url": "https://g1t.sh/syntaqx/hello/actions/runs/run_01m43sw8e2g6j0m4q8t2x6a0c4",
1635 "updated_at": "2026-10-01T18:35:44.902Z"
1636 }
1637 ],
1638 "required_checks": [
1639 {
1640 "name": "CI",
1641 "state": "success",
1642 "description": "CI passed",
1643 "target_url": "https://g1t.sh/syntaqx/hello/actions/runs/run_01m43sw8e2g6j0m4q8t2x6a0c4"
1644 }
1645 ]
Merge branch 'worktree-agent-ab2e39e11a6493412'1646 },
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily1647 "notes": "| Field | |\n| --- | --- |\n| `pull.files` | The files it changes, with lines added and removed. |\n| `statuses` | Its checks: what each workflow run (or another tool, such as a deployment) reported on its head, as `pending`, `success`, `failure` or `error`, with a link to the run. |\n| `required_checks` | Each check the default branch requires (see [`update_repo_settings`](/reference/api/repositories/update-repo-settings/)), as it stands on the head: `success`, `failure`, `pending`, or `expected` when nothing has reported it yet. It merges only once all are `success`. |\n| `checks` | Set when the merge queue took it out, with why in `error`. Older pull requests may show a run of commands from their issue here, from before checks were workflows. |\n| `overlaps` | Other pull requests in progress that change the same files. |\n| `behind` | Whether the default branch has moved since it was made. |\n| `landing` | Whether it is being brought up to date to land. |\n| `lifecycle` | For a pull request 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\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| `earlier_checks` | Earlier records like `checks`, newest first. |\n\nChecks are the repository's workflows: they run on `pull_request` events when it is opened, marked ready and pushed to. Read why one failed with [`get_workflow_run`](/reference/api/actions/get-workflow-run/) and [`get_job_logs`](/reference/api/actions/get-job-logs/)."
Merge branch 'worktree-agent-ab2e39e11a6493412'1648 },
1649 "get_pull_request_changes": {
1650 "response": {
1651 "base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1652 "head": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1653 "files": [
1654 {
1655 "path": "src/main.rs",
1656 "status": "modified",
1657 "additions": 1,
1658 "deletions": 1,
1659 "binary": false,
1660 "hunks": [
1661 {
1662 "lines": [
1663 {
1664 "kind": "context",
1665 "old": 3,
1666 "new": 3,
1667 "text": "fn main() {"
1668 },
1669 {
1670 "kind": "delete",
1671 "old": 4,
1672 "new": null,
1673 "text": " println!(\"Hello, world!\");"
1674 },
1675 {
1676 "kind": "add",
1677 "old": null,
1678 "new": 4,
1679 "text": " println!(\"Hello, {}!\", std::env::args().nth(1).unwrap_or(\"world\".into()));"
1680 },
1681 {
1682 "kind": "context",
1683 "old": 5,
1684 "new": 5,
1685 "text": "}"
1686 }
1687 ]
1688 }
1689 ]
1690 }
1691 ],
1692 "truncated": false
1693 },
1694 "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."
1695 },
1696 "mark_pull_request_ready": {
1697 "request": {
1698 "summary": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\"."
1699 },
1700 "response": {
1701 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1702 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1703 "number": 14,
1704 "issue": 12,
1705 "title": "Greeting should name the caller",
1706 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1707 "agent": "claude-code",
1708 "runtime": "external",
1709 "status": "open",
1710 "fork": {
1711 "namespace": "pulls",
1712 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1713 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1714 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1715 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1716 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1717 "merge_base": null,
1718 "merged_by": null,
1719 "merged_at": null,
1720 "superseded_by": null,
1721 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1722 "files": [
1723 {
1724 "path": "src/main.rs",
1725 "additions": 6,
1726 "deletions": 2
1727 }
1728 ],
1729 "assignees": [],
1730 "reviewers": [],
1731 "author": {
1732 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1733 "username": "syntaqx",
1734 "kind": "user",
1735 "verified": false,
1736 "workspaces": []
1737 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1738 "created_at": "2026-10-01T18:20:02.117Z",
1739 "updated_at": "2026-10-01T18:33:10.398Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1740 }
1741 },
1742 "review_pull_request": {
1743 "request": {
1744 "verdict": "request_changes",
1745 "body": "Trim the name before using it."
1746 },
1747 "response": {
1748 "id": "cmt_01m43sx9f3h7k1n5r9v3z7d1g5",
1749 "kind": "comment",
1750 "author": {
1751 "id": "usr_01kz9d3f7h1k5n9r3v7z1c5g9b",
1752 "username": "ana",
1753 "kind": "user",
1754 "verified": true,
1755 "workspaces": [
1756 {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look1757 "slug": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'1758 "role": "member"
1759 }
1760 ]
1761 },
1762 "body": "Trim the name before using it.",
1763 "path": null,
1764 "line": null,
1765 "verdict": "request_changes",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1766 "created_at": "2026-10-01T18:40:05.019Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1767 }
1768 },
1769 "merge_pull_request": {
1770 "request": {
1771 "keep_issue_open": false
1772 },
1773 "response": {
1774 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1775 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1776 "number": 14,
1777 "issue": 12,
1778 "title": "Greeting should name the caller",
1779 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1780 "agent": "claude-code",
1781 "runtime": "external",
1782 "status": "merged",
1783 "fork": {
1784 "namespace": "pulls",
1785 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1786 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1787 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1788 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1789 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1790 "merge_base": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1791 "merged_by": "syntaqx",
1792 "merged_at": "2026-10-01T18:52:17.093Z",
1793 "superseded_by": null,
1794 "check_status": "passed",
Merge branch 'worktree-agent-ab2e39e11a6493412'1795 "files": [
1796 {
1797 "path": "src/main.rs",
1798 "additions": 6,
1799 "deletions": 2
1800 }
1801 ],
1802 "assignees": [],
1803 "reviewers": [
1804 "ana"
1805 ],
1806 "author": {
1807 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1808 "username": "syntaqx",
1809 "kind": "user",
1810 "verified": false,
1811 "workspaces": []
1812 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1813 "created_at": "2026-10-01T18:20:02.117Z",
1814 "updated_at": "2026-10-01T18:52:17.093Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1815 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1816 "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'1817 },
1818 "close_pull_request": {
1819 "response": {
1820 "id": "pr_01m43smh3vexsr5pmp60qwv0vs",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1821 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
Merge branch 'worktree-agent-ab2e39e11a6493412'1822 "number": 14,
1823 "issue": 12,
1824 "title": "Greeting should name the caller",
1825 "body": "Reads a name from the first argument. `hello ana` prints \"Hello, ana!\".",
1826 "agent": "claude-code",
1827 "runtime": "external",
1828 "status": "closed",
1829 "fork": {
1830 "namespace": "pulls",
1831 "name": "pr_01m43smh3vexsr5pmp60qwv0vs"
1832 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1833 "fork_repo_id": "rep_01m43smh5xd7aw2kq9tv0b4c8e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1834 "branch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1835 "head_commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1836 "merge_base": null,
1837 "merged_by": null,
1838 "merged_at": null,
1839 "superseded_by": null,
1840 "check_status": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1841 "files": [
1842 {
1843 "path": "src/main.rs",
1844 "additions": 6,
1845 "deletions": 2
1846 }
1847 ],
1848 "assignees": [],
1849 "reviewers": [],
1850 "author": {
1851 "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
1852 "username": "syntaqx",
1853 "kind": "user",
1854 "verified": false,
1855 "workspaces": []
1856 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1857 "created_at": "2026-10-01T18:20:02.117Z",
1858 "updated_at": "2026-10-01T19:02:48.760Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1859 }
1860 },
1861 "get_merge_queue": {
1862 "response": {
1863 "enabled": true,
1864 "active": [
1865 {
1866 "id": "qen_01m43rn0qsft1tpap1awkewzbb",
1867 "number": 14,
1868 "title": "Greeting should name the caller",
1869 "agent": "claude-code",
1870 "state": "testing",
1871 "ahead": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1872 "base_commit": "3a7e9c1b5d2f4a6c8e0b2d4f6a8c0e2b4d6f8a1c",
1873 "combined_commit": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1874 "error": null,
1875 "results": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1876 "enqueued_by": "syntaqx",
1877 "created_at": "2026-10-04T15:31:20.441Z",
1878 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'1879 }
1880 ],
1881 "recent": [
1882 {
1883 "id": "qen_01m43khqjmeb5a1magayrnk63z",
1884 "number": 11,
1885 "title": "Fix trailing newline in greeting",
1886 "agent": "g1t-agent",
1887 "state": "landed",
1888 "ahead": [],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1889 "base_commit": "4b1d7e9c2a5f8e3d6c0b9a7e5d3c1b8a6f4e2d0c",
1890 "combined_commit": "c3e8a1f6d4b2097e5c3a1f8d6b4e2c0a9f7d5b3e",
Merge branch 'worktree-agent-ab2e39e11a6493412'1891 "error": null,
1892 "results": [
1893 {
1894 "command": "cargo test",
1895 "passed": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1896 "exit_code": 0,
Merge branch 'worktree-agent-ab2e39e11a6493412'1897 "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 API1898 "duration_ms": 48211
Merge branch 'worktree-agent-ab2e39e11a6493412'1899 }
1900 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1901 "enqueued_by": "g1t",
1902 "created_at": "2026-10-04T14:02:09.876Z",
1903 "finished_at": "2026-10-04T14:09:55.102Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'1904 }
1905 ]
1906 },
1907 "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."
1908 },
1909 "message_agent": {
1910 "request": {
1911 "body": "Keep \"world\" as the default when no name is given."
1912 },
1913 "response": {
1914 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1915 "author": "syntaqx",
1916 "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 API1917 "created_at": "2026-10-01T18:25:00.310Z",
1918 "delivered_at": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'1919 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1920 "from_number": null,
1921 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1922 "answer": null,
1923 "declined": false
1924 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1925 "notes": "The response is the message. `delivered_at` is set once the agent has read it."
Merge branch 'worktree-agent-ab2e39e11a6493412'1926 },
1927 "answer_message": {
1928 "params": {
1929 "id": "msg_01m43t66tde8hs2vpxhh3v8tqw"
1930 },
1931 "request": {
1932 "body": "No. greet() keeps its name; only greet_named() is added."
1933 },
1934 "response": {
1935 "id": "msg_01m43t66tde8hs2vpxhh3v8tqw",
1936 "author": "g1t-agent",
1937 "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 API1938 "created_at": "2026-10-01T18:58:12.301Z",
1939 "delivered_at": "2026-10-01T18:58:40.117Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1940 "kind": "question",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1941 "from_number": 16,
1942 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1943 "answer": "No. greet() keeps its name; only greet_named() is added.",
1944 "declined": false
1945 },
1946 "notes": "The response is the question or handoff that was answered, with `answer` and `declined` filled in."
1947 },
1948 "take_messages": {
1949 "response": [
1950 {
1951 "id": "msg_01m43tx5egeh4t3f9zcnjenqvz",
1952 "author": "syntaqx",
1953 "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 API1954 "created_at": "2026-10-01T18:25:00.310Z",
1955 "delivered_at": "2026-10-01T18:25:31.007Z",
Merge branch 'worktree-agent-ab2e39e11a6493412'1956 "kind": "message",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API1957 "from_number": null,
1958 "to_number": 14,
Merge branch 'worktree-agent-ab2e39e11a6493412'1959 "answer": null,
1960 "declined": false
1961 }
1962 ],
1963 "notes": "Only a g1t agent's token can take messages. They come oldest first, and each is marked delivered."
1964 },
1965 "read_session": {
1966 "query": {
1967 "after": 0
1968 },
1969 "response": [
1970 {
1971 "seq": 1,
1972 "kind": "prompt",
1973 "text": "Make the greeting name the caller (issue #12).",
1974 "tool": null,
1975 "commit": null,
1976 "at": "2026-10-01T18:21:00.004Z"
1977 },
1978 {
1979 "seq": 2,
1980 "kind": "tool_call",
1981 "text": "cargo test",
1982 "tool": "bash",
1983 "commit": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
1984 "at": "2026-10-01T18:30:12.660Z"
1985 }
1986 ]
1987 },
1988 "record_session": {
1989 "request": {
1990 "entries": [
1991 {
1992 "kind": "message",
1993 "text": "Reading src/main.rs."
1994 },
1995 {
1996 "kind": "tool_call",
1997 "text": "cargo test",
1998 "tool": "bash"
1999 }
2000 ]
2001 },
2002 "response": {
2003 "count": 2
2004 },
2005 "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/)."
2006 },
2007 "list_workflows": {
2008 "response": [
2009 {
2010 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
2011 "path": ".g1t/workflows/ci.yml",
2012 "name": "CI",
2013 "events": [
2014 "push",
2015 "pull_request",
2016 "workflow_dispatch"
2017 ],
2018 "state": "active",
2019 "error": null,
2020 "notes": [
2021 {
2022 "severity": "unsupported",
2023 "job": "test",
2024 "message": "`services` containers (such as a database) are not started on g1t yet."
2025 }
2026 ],
2027 "dispatch": {
2028 "debug": {
2029 "description": "Verbose logs",
2030 "type": "boolean",
2031 "default": false
2032 }
2033 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2034 "last_run": {
Merge branch 'worktree-agent-ab2e39e11a6493412'2035 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2036 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2037 "path": ".g1t/workflows/ci.yml",
2038 "name": "CI",
2039 "title": "Greeting should name the caller",
2040 "number": 12,
2041 "attempt": 1,
2042 "event": "push",
2043 "ref": "refs/heads/main",
2044 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2045 "pull": null,
2046 "status": "completed",
2047 "conclusion": "success",
2048 "error": null,
2049 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2050 "created_at": "2026-10-04T15:42:07.318Z",
2051 "started_at": "2026-10-04T15:42:09.020Z",
2052 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2053 }
2054 },
2055 {
2056 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2057 "path": ".g1t/workflows/nightly.yml",
2058 "name": "Nightly",
2059 "events": [
2060 "schedule"
2061 ],
2062 "state": "disabled",
2063 "error": null,
2064 "notes": [],
2065 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2066 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2067 }
2068 ],
2069 "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/)."
2070 },
2071 "list_workflow_runs": {
2072 "query": {
2073 "workflow": "ci.yml",
2074 "branch": "main",
2075 "per_page": 20
2076 },
2077 "response": [
2078 {
2079 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2080 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2081 "path": ".g1t/workflows/ci.yml",
2082 "name": "CI",
2083 "title": "Greeting should name the caller",
2084 "number": 12,
2085 "attempt": 1,
2086 "event": "push",
2087 "ref": "refs/heads/main",
2088 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2089 "pull": null,
2090 "status": "completed",
2091 "conclusion": "success",
2092 "error": null,
2093 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2094 "created_at": "2026-10-04T15:42:07.318Z",
2095 "started_at": "2026-10-04T15:42:09.020Z",
2096 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2097 }
2098 ],
2099 "notes": "A run's `status` is `queued`, `pending` (waiting for its concurrency group), `in_progress` or `completed`; `conclusion` is set once it completes."
2100 },
2101 "list_runs_of_workflow": {
2102 "params": {
2103 "workflow": "ci.yml"
2104 },
2105 "query": {
2106 "branch": "main",
2107 "per_page": 20
2108 },
2109 "response": [
2110 {
2111 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2112 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2113 "path": ".g1t/workflows/ci.yml",
2114 "name": "CI",
2115 "title": "Greeting should name the caller",
2116 "number": 12,
2117 "attempt": 1,
2118 "event": "push",
2119 "ref": "refs/heads/main",
2120 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2121 "pull": null,
2122 "status": "completed",
2123 "conclusion": "success",
2124 "error": null,
2125 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2126 "created_at": "2026-10-04T15:42:07.318Z",
2127 "started_at": "2026-10-04T15:42:09.020Z",
2128 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2129 }
2130 ]
2131 },
2132 "get_workflow_run": {
2133 "params": {
2134 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2135 },
2136 "response": {
2137 "run": {
2138 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2139 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2140 "path": ".g1t/workflows/ci.yml",
2141 "name": "CI",
2142 "title": "Greeting should name the caller",
2143 "number": 12,
2144 "attempt": 1,
2145 "event": "push",
2146 "ref": "refs/heads/main",
2147 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2148 "pull": null,
2149 "status": "completed",
2150 "conclusion": "failure",
2151 "error": null,
2152 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2153 "created_at": "2026-10-04T15:42:07.318Z",
2154 "started_at": "2026-10-04T15:42:09.020Z",
2155 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2156 },
2157 "jobs": [
2158 {
2159 "id": "job_01kpx7b3d0e4f8g2h6j0k4m8ns",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2160 "run_id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Merge branch 'worktree-agent-ab2e39e11a6493412'2161 "key": "test",
2162 "name": "test",
2163 "needs": [],
2164 "status": "completed",
2165 "conclusion": "failure",
2166 "steps": [
2167 {
2168 "number": 1,
2169 "name": "Run actions/checkout@v4",
2170 "status": "completed",
2171 "conclusion": "success",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2172 "started_at": "2026-10-04T15:42:10.101Z",
2173 "finished_at": "2026-10-04T15:42:12.433Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2174 },
2175 {
2176 "number": 2,
2177 "name": "Run cargo test",
2178 "status": "completed",
2179 "conclusion": "failure",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2180 "started_at": "2026-10-04T15:42:12.440Z",
2181 "finished_at": "2026-10-04T15:44:30.902Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2182 }
2183 ],
2184 "annotations": [
2185 {
2186 "level": "error",
2187 "message": "assertion failed: greeting names the caller",
2188 "title": "greet",
2189 "file": "src/main.rs",
2190 "line": 41
2191 }
2192 ],
2193 "reason": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2194 "started_at": "2026-10-04T15:42:09.020Z",
2195 "finished_at": "2026-10-04T15:44:31.002Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2196 },
2197 {
2198 "id": "job_01kpx7b3d0e4f8g2h6j0k4m8nt",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2199 "run_id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Merge branch 'worktree-agent-ab2e39e11a6493412'2200 "key": "deploy",
2201 "name": "deploy",
2202 "needs": [
2203 "test"
2204 ],
2205 "status": "completed",
2206 "conclusion": "skipped",
2207 "steps": [],
2208 "annotations": [],
2209 "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 API2210 "started_at": null,
2211 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2212 }
2213 ],
2214 "notes": [
2215 {
2216 "severity": "unsupported",
2217 "job": "test",
2218 "message": "`services` containers (such as a database) are not started on g1t yet."
2219 }
2220 ]
2221 }
2222 },
2223 "get_job_logs": {
2224 "params": {
2225 "job": "job_01kpx7b3d0e4f8g2h6j0k4m8ns"
2226 },
2227 "query": {
2228 "after": 0
2229 },
2230 "response": {
2231 "chunks": [
2232 {
2233 "seq": 1,
2234 "step": 0,
2235 "text": "Preparing the sandbox\n"
2236 },
2237 {
2238 "seq": 2,
2239 "step": 2,
2240 "text": "> cargo test\ntest greet ... FAILED\n"
2241 }
2242 ],
2243 "done": true
2244 },
2245 "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`."
2246 },
2247 "dispatch_workflow": {
2248 "params": {
2249 "workflow": "ci.yml"
2250 },
2251 "request": {
2252 "ref": "main",
2253 "inputs": {
2254 "debug": true
2255 }
2256 },
2257 "response": {
2258 "id": "run_01kpx8d4e7f0g3h6j9k2m5n8pq",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2259 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2260 "path": ".g1t/workflows/ci.yml",
2261 "name": "CI",
2262 "title": "CI run by syntaqx",
2263 "number": 13,
2264 "attempt": 1,
2265 "event": "workflow_dispatch",
2266 "ref": "refs/heads/main",
2267 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2268 "pull": null,
2269 "status": "queued",
2270 "conclusion": null,
2271 "error": null,
2272 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2273 "created_at": "2026-10-04T16:30:00.512Z",
2274 "started_at": null,
2275 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2276 }
2277 },
2278 "cancel_workflow_run": {
2279 "params": {
2280 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2281 },
2282 "response": {
2283 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2284 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2285 "path": ".g1t/workflows/ci.yml",
2286 "name": "CI",
2287 "title": "Greeting should name the caller",
2288 "number": 12,
2289 "attempt": 1,
2290 "event": "push",
2291 "ref": "refs/heads/main",
2292 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2293 "pull": null,
2294 "status": "completed",
2295 "conclusion": "cancelled",
2296 "error": null,
2297 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2298 "created_at": "2026-10-04T15:42:07.318Z",
2299 "started_at": "2026-10-04T15:42:09.020Z",
2300 "finished_at": "2026-10-04T15:44:31.877Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'2301 }
2302 },
2303 "rerun_workflow_run": {
2304 "params": {
2305 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2306 },
2307 "request": {
2308 "failed_only": true
2309 },
2310 "response": {
2311 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2312 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2313 "path": ".g1t/workflows/ci.yml",
2314 "name": "CI",
2315 "title": "Greeting should name the caller",
2316 "number": 12,
2317 "attempt": 2,
2318 "event": "push",
2319 "ref": "refs/heads/main",
2320 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2321 "pull": null,
2322 "status": "queued",
2323 "conclusion": null,
2324 "error": null,
2325 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2326 "created_at": "2026-10-04T15:42:07.318Z",
2327 "started_at": null,
2328 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2329 },
2330 "notes": "The run keeps its id; `attempt` goes up by one."
2331 },
2332 "rerun_failed_jobs": {
2333 "params": {
2334 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr"
2335 },
2336 "response": {
2337 "id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2338 "workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
Merge branch 'worktree-agent-ab2e39e11a6493412'2339 "path": ".g1t/workflows/ci.yml",
2340 "name": "CI",
2341 "title": "Greeting should name the caller",
2342 "number": 12,
2343 "attempt": 2,
2344 "event": "push",
2345 "ref": "refs/heads/main",
2346 "sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
2347 "pull": null,
2348 "status": "queued",
2349 "conclusion": null,
2350 "error": null,
2351 "actor": "syntaqx",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2352 "created_at": "2026-10-04T15:42:07.318Z",
2353 "started_at": null,
2354 "finished_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2355 }
2356 },
2357 "update_workflow": {
2358 "params": {
2359 "workflow": "nightly.yml"
2360 },
2361 "request": {
2362 "enabled": false
2363 },
2364 "response": {
2365 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2366 "path": ".g1t/workflows/nightly.yml",
2367 "name": "Nightly",
2368 "events": [
2369 "schedule"
2370 ],
2371 "state": "disabled",
2372 "error": null,
2373 "notes": [],
2374 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2375 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2376 }
2377 },
2378 "enable_workflow": {
2379 "params": {
2380 "workflow": "nightly.yml"
2381 },
2382 "response": {
2383 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2384 "path": ".g1t/workflows/nightly.yml",
2385 "name": "Nightly",
2386 "events": [
2387 "schedule"
2388 ],
2389 "state": "active",
2390 "error": null,
2391 "notes": [],
2392 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2393 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2394 }
2395 },
2396 "disable_workflow": {
2397 "params": {
2398 "workflow": "nightly.yml"
2399 },
2400 "response": {
2401 "id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9nq",
2402 "path": ".g1t/workflows/nightly.yml",
2403 "name": "Nightly",
2404 "events": [
2405 "schedule"
2406 ],
2407 "state": "disabled",
2408 "error": null,
2409 "notes": [],
2410 "dispatch": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2411 "last_run": null
Merge branch 'worktree-agent-ab2e39e11a6493412'2412 }
2413 },
2414 "list_actions_secrets": {
2415 "response": [
2416 {
2417 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ab",
2418 "name": "NPM_TOKEN",
2419 "kind": "secret",
2420 "value": null,
2421 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2422 "updated_at": "2026-10-01T09:12:44.020Z",
2423 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2424 "workflows"
2425 ],
2426 "environments": [],
API reference examples use projects2427 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2428 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2429 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2430 },
2431 {
2432 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2433 "name": "STRIPE_KEY",
2434 "kind": "secret",
2435 "value": null,
API reference examples use projects2436 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2437 "updated_at": "2026-10-04T15:42:07.318Z",
2438 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2439 "workflows",
2440 "deployments"
2441 ],
2442 "environments": [
2443 "production"
2444 ],
API reference examples use projects2445 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2446 "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 API2447 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2448 }
2449 ],
2450 "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."
2451 },
2452 "list_actions_secrets_for_workspace": {
2453 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2454 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2455 },
2456 "response": [
2457 {
2458 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ab",
2459 "name": "NPM_TOKEN",
2460 "kind": "secret",
2461 "value": null,
2462 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2463 "updated_at": "2026-10-04T15:42:07.318Z",
2464 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2465 "workflows"
2466 ],
2467 "environments": [],
API reference examples use projects2468 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2469 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2470 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2471 }
2472 ],
2473 "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."
2474 },
2475 "set_actions_secret": {
2476 "params": {
2477 "setting": "STRIPE_KEY"
2478 },
2479 "request": {
2480 "value": "sk_live_…",
2481 "available_to": [
2482 "workflows",
2483 "deployments"
2484 ],
2485 "environments": [
2486 "production"
2487 ]
2488 },
2489 "response": {
2490 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2491 "name": "STRIPE_KEY",
2492 "kind": "secret",
2493 "value": null,
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": [
2501 "production"
2502 ],
API reference examples use projects2503 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2504 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2505 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2506 },
2507 "notes": "Keys are uppercased. See [secrets and variables](/guides/secrets-and-variables/)."
2508 },
2509 "set_actions_secret_for_workspace": {
2510 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2511 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2512 "setting": "NPM_TOKEN"
2513 },
2514 "request": {
2515 "value": "npm_…",
API reference examples use projects2516 "projects": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2517 "hello"
2518 ]
2519 },
2520 "response": {
2521 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ac",
2522 "name": "NPM_TOKEN",
2523 "kind": "secret",
2524 "value": null,
2525 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2526 "updated_at": "2026-10-04T15:42:07.318Z",
2527 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2528 "workflows"
2529 ],
2530 "environments": [],
API reference examples use projects2531 "projects": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2532 "hello"
2533 ],
2534 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2535 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2536 }
2537 },
2538 "delete_actions_secret": {
2539 "params": {
2540 "setting": "STRIPE_KEY"
2541 },
2542 "response": true
2543 },
2544 "delete_actions_secret_for_workspace": {
2545 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2546 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2547 "setting": "NPM_TOKEN"
2548 },
2549 "response": true
2550 },
2551 "list_actions_variables": {
2552 "response": [
2553 {
2554 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2555 "name": "NODE_VERSION",
2556 "kind": "variable",
2557 "value": "20",
API reference examples use projects2558 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2559 "updated_at": "2026-10-04T15:42:07.318Z",
2560 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2561 "workflows",
2562 "deployments"
2563 ],
2564 "environments": [],
API reference examples use projects2565 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2566 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2567 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2568 }
2569 ],
2570 "notes": "A repository's list includes the workspace's rows that reach it, with `scope` set to `workspace`. Empty `environments` means every environment."
2571 },
2572 "list_actions_variables_for_workspace": {
2573 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2574 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2575 },
2576 "response": [
2577 {
2578 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2579 "name": "NODE_VERSION",
2580 "kind": "variable",
2581 "value": "20",
2582 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2583 "updated_at": "2026-10-04T15:42:07.318Z",
2584 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2585 "workflows",
2586 "deployments"
2587 ],
2588 "environments": [],
API reference examples use projects2589 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2590 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2591 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2592 }
2593 ]
2594 },
2595 "set_actions_variable": {
2596 "request": {
2597 "setting": "NODE_VERSION",
2598 "value": "20"
2599 },
2600 "response": {
2601 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2602 "name": "NODE_VERSION",
2603 "kind": "variable",
2604 "value": "20",
API reference examples use projects2605 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2606 "updated_at": "2026-10-04T15:42:07.318Z",
2607 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2608 "workflows",
2609 "deployments"
2610 ],
2611 "environments": [],
API reference examples use projects2612 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2613 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2614 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2615 },
2616 "notes": "GitHub's clients send the key as `name`; that is accepted too."
2617 },
2618 "set_actions_variable_for_workspace": {
2619 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2620 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'2621 },
2622 "request": {
2623 "setting": "NODE_VERSION",
2624 "value": "20"
2625 },
2626 "response": {
2627 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2628 "name": "NODE_VERSION",
2629 "kind": "variable",
2630 "value": "20",
2631 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2632 "updated_at": "2026-10-04T15:42:07.318Z",
2633 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2634 "workflows",
2635 "deployments"
2636 ],
2637 "environments": [],
API reference examples use projects2638 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2639 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2640 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2641 }
2642 },
2643 "update_actions_variable": {
2644 "params": {
2645 "setting": "NODE_VERSION"
2646 },
2647 "request": {
2648 "value": "22"
2649 },
2650 "response": {
2651 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2652 "name": "NODE_VERSION",
2653 "kind": "variable",
2654 "value": "22",
API reference examples use projects2655 "scope": "project",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2656 "updated_at": "2026-10-04T15:42:07.318Z",
2657 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2658 "workflows",
2659 "deployments"
2660 ],
2661 "environments": [],
API reference examples use projects2662 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2663 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2664 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2665 }
2666 },
2667 "update_actions_variable_for_workspace": {
2668 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2669 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2670 "setting": "NODE_VERSION"
2671 },
2672 "request": {
2673 "value": "22"
2674 },
2675 "response": {
2676 "id": "set_01kpv9q4r7s0t3v6w9x2y5z8ad",
2677 "name": "NODE_VERSION",
2678 "kind": "variable",
2679 "value": "22",
2680 "scope": "workspace",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2681 "updated_at": "2026-10-04T15:42:07.318Z",
2682 "available_to": [
Merge branch 'worktree-agent-ab2e39e11a6493412'2683 "workflows",
2684 "deployments"
2685 ],
2686 "environments": [],
API reference examples use projects2687 "projects": [],
Merge branch 'worktree-agent-ab2e39e11a6493412'2688 "note": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API2689 "updated_by": "syntaqx"
Merge branch 'worktree-agent-ab2e39e11a6493412'2690 }
2691 },
2692 "delete_actions_variable": {
2693 "params": {
2694 "setting": "NODE_VERSION"
2695 },
2696 "response": true
2697 },
2698 "delete_actions_variable_for_workspace": {
2699 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2700 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'2701 "setting": "NODE_VERSION"
2702 },
2703 "response": true
2704 },
Fast pages, required checks on the branch, self-hosted runners, honest incidents2705 "list_runners": {
2706 "response": [
2707 {
2708 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w8z",
2709 "name": "build-01",
2710 "workspace": "flagon-io",
2711 "repo": null,
2712 "group": "Default",
2713 "labels": [
2714 "self-hosted",
2715 "linux",
2716 "x64",
2717 "gpu"
2718 ],
2719 "os": "linux",
2720 "arch": "x64",
2721 "version": "0.2.0",
2722 "ephemeral": false,
2723 "status": "busy",
2724 "work": {
2725 "kind": "workflow",
2726 "id": "job_01kq2m9b1d4g7j0m3p6s9v2y5b",
2727 "name": "test (linux, 24)",
2728 "repo": "flagon-io/hello",
2729 "run_id": "run_01kq2m9a8c1f4h7k0n3q6t9w2z",
2730 "started_at": "2026-10-06T14:02:11.000Z"
2731 },
2732 "last_seen_at": "2026-10-06T14:05:40.512Z",
2733 "created_at": "2026-10-02T09:30:00.000Z",
2734 "created_by": null
2735 },
2736 {
2737 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w9a",
2738 "name": "mac-mini",
2739 "workspace": "flagon-io",
2740 "repo": null,
2741 "group": "Default",
2742 "labels": [
2743 "self-hosted",
2744 "macos",
2745 "arm64"
2746 ],
2747 "os": "macos",
2748 "arch": "arm64",
2749 "version": "0.2.0",
2750 "ephemeral": false,
2751 "status": "online",
2752 "work": null,
2753 "last_seen_at": "2026-10-06T14:05:40.512Z",
2754 "created_at": "2026-10-02T09:30:00.000Z",
2755 "created_by": null
2756 }
2757 ],
2758 "notes": "A repository's list holds its own runners (`repo` set) and the workspace's that its runner group lets it use. A runner is `offline` when it has not polled for 90 seconds."
2759 },
2760 "list_runners_for_workspace": {
2761 "params": {
2762 "workspace": "flagon-io"
2763 },
2764 "response": [
2765 {
2766 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w8z",
2767 "name": "build-01",
2768 "workspace": "flagon-io",
2769 "repo": null,
2770 "group": "Default",
2771 "labels": [
2772 "self-hosted",
2773 "linux",
2774 "x64",
2775 "gpu"
2776 ],
2777 "os": "linux",
2778 "arch": "x64",
2779 "version": "0.2.0",
2780 "ephemeral": false,
2781 "status": "busy",
2782 "work": {
2783 "kind": "workflow",
2784 "id": "job_01kq2m9b1d4g7j0m3p6s9v2y5b",
2785 "name": "test (linux, 24)",
2786 "repo": "flagon-io/hello",
2787 "run_id": "run_01kq2m9a8c1f4h7k0n3q6t9w2z",
2788 "started_at": "2026-10-06T14:02:11.000Z"
2789 },
2790 "last_seen_at": "2026-10-06T14:05:40.512Z",
2791 "created_at": "2026-10-02T09:30:00.000Z",
2792 "created_by": null
2793 },
2794 {
2795 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w9a",
2796 "name": "mac-mini",
2797 "workspace": "flagon-io",
2798 "repo": null,
2799 "group": "Default",
2800 "labels": [
2801 "self-hosted",
2802 "macos",
2803 "arm64"
2804 ],
2805 "os": "macos",
2806 "arch": "arm64",
2807 "version": "0.2.0",
2808 "ephemeral": false,
2809 "status": "online",
2810 "work": null,
2811 "last_seen_at": "2026-10-06T14:05:40.512Z",
2812 "created_at": "2026-10-02T09:30:00.000Z",
2813 "created_by": null
2814 }
2815 ]
2816 },
2817 "create_runner_registration_token": {
2818 "response": {
2819 "token": "g1trt_…",
2820 "expires_at": "2026-10-06T15:04:00.000Z",
2821 "workspace": "flagon-io",
2822 "repo": "flagon-io/hello",
2823 "group": null,
2824 "url": "https://g1t.sh"
2825 },
2826 "notes": "Pass it to `g1t-runner register --url https://g1t.sh --token …` within the hour. See [self-hosted runners](/guides/self-hosted-runners/)."
2827 },
2828 "create_runner_registration_token_for_workspace": {
2829 "params": {
2830 "workspace": "flagon-io"
2831 },
2832 "request": {
2833 "group": "Default"
2834 },
2835 "response": {
2836 "token": "g1trt_…",
2837 "expires_at": "2026-10-06T15:04:00.000Z",
2838 "workspace": "flagon-io",
2839 "repo": null,
2840 "group": "Default",
2841 "url": "https://g1t.sh"
2842 }
2843 },
2844 "remove_runner": {
2845 "params": {
2846 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w8z"
2847 },
2848 "response": true
2849 },
2850 "remove_runner_for_workspace": {
2851 "params": {
2852 "workspace": "flagon-io",
2853 "id": "rnr_01kq2m8v4c7f0h3k6n9q2t5w8z"
2854 },
2855 "response": true
2856 },
2857 "get_runner_settings": {
2858 "response": {
2859 "agents_on_self_hosted": false,
2860 "agent_labels": [
2861 "self-hosted",
2862 "linux"
2863 ],
2864 "fork_pull_requests": false,
2865 "inherited": true
2866 }
2867 },
2868 "get_runner_settings_for_workspace": {
2869 "params": {
2870 "workspace": "flagon-io"
2871 },
2872 "response": {
2873 "agents_on_self_hosted": true,
2874 "agent_labels": [
2875 "self-hosted",
2876 "linux"
2877 ],
2878 "fork_pull_requests": false,
2879 "inherited": false
2880 }
2881 },
2882 "update_runner_settings": {
2883 "request": {
2884 "inherit": true
2885 },
2886 "response": {
2887 "agents_on_self_hosted": false,
2888 "agent_labels": [
2889 "self-hosted",
2890 "linux"
2891 ],
2892 "fork_pull_requests": false,
2893 "inherited": true
2894 }
2895 },
2896 "update_runner_settings_for_workspace": {
2897 "params": {
2898 "workspace": "flagon-io"
2899 },
2900 "request": {
2901 "agents_on_self_hosted": true,
2902 "agent_labels": [
2903 "linux"
2904 ]
2905 },
2906 "response": {
2907 "agents_on_self_hosted": true,
2908 "agent_labels": [
2909 "self-hosted",
2910 "linux"
2911 ],
2912 "fork_pull_requests": false,
2913 "inherited": false
2914 },
2915 "notes": "Agent work on your runners still uses g1t's model proxy, paid as before, unless the workspace has its own model provider."
2916 },
2917 "list_runner_groups": {
2918 "params": {
2919 "workspace": "flagon-io"
2920 },
2921 "response": [
2922 {
2923 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6y",
2924 "name": "Default",
2925 "default": true,
2926 "repositories": [],
2927 "runners": 2,
2928 "updated_at": "2026-10-02T09:30:00.000Z"
2929 },
2930 {
2931 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z",
2932 "name": "GPU",
2933 "default": false,
2934 "repositories": [
2935 "hello",
2936 "models"
2937 ],
2938 "runners": 1,
2939 "updated_at": "2026-10-05T11:20:00.000Z"
2940 }
2941 ]
2942 },
2943 "create_runner_group": {
2944 "params": {
2945 "workspace": "flagon-io"
2946 },
2947 "request": {
2948 "name": "GPU",
2949 "repositories": [
2950 "hello",
2951 "models"
2952 ]
2953 },
2954 "response": {
2955 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z",
2956 "name": "GPU",
2957 "default": false,
2958 "repositories": [
2959 "hello",
2960 "models"
2961 ],
2962 "runners": 1,
2963 "updated_at": "2026-10-05T11:20:00.000Z"
2964 }
2965 },
2966 "update_runner_group": {
2967 "params": {
2968 "workspace": "flagon-io",
2969 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z"
2970 },
2971 "request": {
2972 "repositories": []
2973 },
2974 "response": {
2975 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z",
2976 "name": "GPU",
2977 "default": false,
2978 "repositories": [],
2979 "runners": 1,
2980 "updated_at": "2026-10-05T11:20:00.000Z"
2981 }
2982 },
2983 "delete_runner_group": {
2984 "params": {
2985 "workspace": "flagon-io",
2986 "id": "rng_01kq2m7r2a5d8g1j4m7p0s3v6z"
2987 },
2988 "response": true
2989 },
Merge branch 'worktree-agent-ab2e39e11a6493412'2990 "list_webhooks": {
2991 "response": [
2992 {
2993 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
2994 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look2995 "workspace": "flagon-io",
2996 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'2997 "url": "https://hooks.example.com/g1t",
2998 "events": [
2999 "git.push",
3000 "pull.merged"
3001 ],
3002 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3003 "secret_hint": "…9c2e",
3004 "created_by": "syntaqx",
3005 "created_at": "2026-10-04T15:42:07.318Z",
3006 "last_status": "delivered",
3007 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3008 }
3009 ]
3010 },
3011 "list_webhooks_for_workspace": {
3012 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3013 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3014 },
3015 "response": [
3016 {
3017 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3018 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3019 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3020 "repo": null,
3021 "url": "https://hooks.example.com/g1t",
3022 "events": [
3023 "git.push",
3024 "pull.merged"
3025 ],
3026 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3027 "secret_hint": "…9c2e",
3028 "created_by": "syntaqx",
3029 "created_at": "2026-10-04T15:42:07.318Z",
3030 "last_status": "delivered",
3031 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3032 }
3033 ]
3034 },
3035 "create_webhook": {
3036 "request": {
3037 "url": "https://hooks.example.com/g1t",
3038 "events": [
3039 "git.push",
3040 "pull.merged"
3041 ]
3042 },
3043 "response": {
3044 "hook": {
3045 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3046 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3047 "workspace": "flagon-io",
3048 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3049 "url": "https://hooks.example.com/g1t",
3050 "events": [
3051 "git.push",
3052 "pull.merged"
3053 ],
3054 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3055 "secret_hint": "…9c2e",
3056 "created_by": "syntaqx",
3057 "created_at": "2026-10-04T15:42:07.318Z",
3058 "last_status": "delivered",
3059 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3060 },
API reference: no example reads as a real secret3061 "secret": "whsec_…"
Merge branch 'worktree-agent-ab2e39e11a6493412'3062 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3063 "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'3064 },
3065 "create_webhook_for_workspace": {
3066 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3067 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3068 },
3069 "request": {
3070 "url": "https://hooks.example.com/g1t"
3071 },
3072 "response": {
3073 "hook": {
3074 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3075 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3076 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3077 "repo": null,
3078 "url": "https://hooks.example.com/g1t",
3079 "events": [
3080 "*"
3081 ],
3082 "active": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3083 "secret_hint": "…9c2e",
3084 "created_by": "syntaqx",
3085 "created_at": "2026-10-04T15:42:07.318Z",
3086 "last_status": "delivered",
3087 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3088 },
API reference: no example reads as a real secret3089 "secret": "whsec_…"
Merge branch 'worktree-agent-ab2e39e11a6493412'3090 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3091 "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'3092 },
3093 "update_webhook": {
3094 "params": {
3095 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3096 },
3097 "request": {
3098 "active": false
3099 },
3100 "response": {
3101 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3102 "scope": "repo",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3103 "workspace": "flagon-io",
3104 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3105 "url": "https://hooks.example.com/g1t",
3106 "events": [
3107 "git.push",
3108 "pull.merged"
3109 ],
3110 "active": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3111 "secret_hint": "…9c2e",
3112 "created_by": "syntaqx",
3113 "created_at": "2026-10-04T15:42:07.318Z",
3114 "last_status": "delivered",
3115 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3116 }
3117 },
3118 "update_webhook_for_workspace": {
3119 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3120 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3121 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3122 },
3123 "request": {
3124 "active": false
3125 },
3126 "response": {
3127 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3128 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3129 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3130 "repo": null,
3131 "url": "https://hooks.example.com/g1t",
3132 "events": [
3133 "git.push",
3134 "pull.merged"
3135 ],
3136 "active": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3137 "secret_hint": "…9c2e",
3138 "created_by": "syntaqx",
3139 "created_at": "2026-10-04T15:42:07.318Z",
3140 "last_status": "delivered",
3141 "last_delivered_at": "2026-10-04T15:42:07.611Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3142 }
3143 },
3144 "delete_webhook": {
3145 "params": {
3146 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3147 },
3148 "response": true
3149 },
3150 "delete_webhook_for_workspace": {
3151 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3152 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3153 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3154 },
3155 "response": true
3156 },
3157 "ping_webhook": {
3158 "params": {
3159 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3160 },
3161 "response": {
3162 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3163 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3164 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3165 "event": "ping",
3166 "status": "delivered",
3167 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3168 "response_status": 200,
3169 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3170 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3171 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'3172 "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 API3173 "created_at": "2026-10-04T16:01:12.440Z",
3174 "delivered_at": "2026-10-04T16:01:12.631Z",
3175 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3176 },
3177 "notes": "`payload` is the JSON that was sent, as a string."
3178 },
3179 "ping_webhook_for_workspace": {
3180 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3181 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3182 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3183 },
3184 "response": {
3185 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3186 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3187 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3188 "event": "ping",
3189 "status": "delivered",
3190 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3191 "response_status": 200,
3192 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3193 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3194 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'3195 "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 API3196 "created_at": "2026-10-04T16:01:12.440Z",
3197 "delivered_at": "2026-10-04T16:01:12.631Z",
3198 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3199 }
3200 },
3201 "list_webhook_deliveries": {
3202 "params": {
3203 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3204 },
3205 "response": [
3206 {
3207 "id": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3208 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3209 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3210 "event": "ping",
3211 "status": "pending",
3212 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3213 "response_status": 503,
3214 "response_body": "Service Unavailable",
Merge branch 'worktree-agent-ab2e39e11a6493412'3215 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3216 "duration_ms": 212,
Merge branch 'worktree-agent-ab2e39e11a6493412'3217 "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 API3218 "created_at": "2026-10-04T16:20:03.100Z",
3219 "delivered_at": null,
3220 "next_attempt_at": "2026-10-04T16:21:03.312Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3221 },
3222 {
3223 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3224 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3225 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3226 "event": "ping",
3227 "status": "delivered",
3228 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3229 "response_status": 200,
3230 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3231 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3232 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'3233 "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 API3234 "created_at": "2026-10-04T16:01:12.440Z",
3235 "delivered_at": "2026-10-04T16:01:12.631Z",
3236 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3237 }
3238 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3239 "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'3240 },
3241 "list_webhook_deliveries_for_workspace": {
3242 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3243 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3244 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd"
3245 },
3246 "response": [
3247 {
3248 "id": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3249 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3250 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3251 "event": "ping",
3252 "status": "pending",
3253 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3254 "response_status": 503,
3255 "response_body": "Service Unavailable",
Merge branch 'worktree-agent-ab2e39e11a6493412'3256 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3257 "duration_ms": 212,
Merge branch 'worktree-agent-ab2e39e11a6493412'3258 "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 API3259 "created_at": "2026-10-04T16:20:03.100Z",
3260 "delivered_at": null,
3261 "next_attempt_at": "2026-10-04T16:21:03.312Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3262 },
3263 {
3264 "id": "dlv_01kpx5p9v2j7k3m8n4p5q6r7st",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3265 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3266 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3267 "event": "ping",
3268 "status": "delivered",
3269 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3270 "response_status": 200,
3271 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3272 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3273 "duration_ms": 184,
Merge branch 'worktree-agent-ab2e39e11a6493412'3274 "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 API3275 "created_at": "2026-10-04T16:01:12.440Z",
3276 "delivered_at": "2026-10-04T16:01:12.631Z",
3277 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3278 }
3279 ]
3280 },
3281 "redeliver_webhook": {
3282 "params": {
3283 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3284 "delivery": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz"
3285 },
3286 "response": {
3287 "id": "dlv_01kpx6c8d1e2f3g4h5j6k7m8np",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3288 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3289 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3290 "event": "ping",
3291 "status": "delivered",
3292 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3293 "response_status": 200,
3294 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3295 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3296 "duration_ms": 171,
Merge branch 'worktree-agent-ab2e39e11a6493412'3297 "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 API3298 "created_at": "2026-10-04T16:25:40.007Z",
3299 "delivered_at": "2026-10-04T16:25:40.178Z",
3300 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3301 },
3302 "notes": "The response is the new delivery."
3303 },
3304 "redeliver_webhook_for_workspace": {
3305 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3306 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3307 "id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3308 "delivery": "dlv_01kpx6a2b3c4d5e6f7g8h9j0kz"
3309 },
3310 "response": {
3311 "id": "dlv_01kpx6c8d1e2f3g4h5j6k7m8np",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3312 "hook_id": "hk_01kpx5p9s4h0t1w6x8y2a3b4cd",
3313 "event_id": "",
Merge branch 'worktree-agent-ab2e39e11a6493412'3314 "event": "ping",
3315 "status": "delivered",
3316 "attempts": 1,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3317 "response_status": 200,
3318 "response_body": "ok",
Merge branch 'worktree-agent-ab2e39e11a6493412'3319 "error": null,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3320 "duration_ms": 171,
Merge branch 'worktree-agent-ab2e39e11a6493412'3321 "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 API3322 "created_at": "2026-10-04T16:25:40.007Z",
3323 "delivered_at": "2026-10-04T16:25:40.178Z",
3324 "next_attempt_at": null
Merge branch 'worktree-agent-ab2e39e11a6493412'3325 }
3326 },
3327 "list_integrations": {
3328 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3329 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3330 },
3331 "response": [
3332 {
3333 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3334 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3335 "provider": "anthropic",
3336 "kind": "models",
3337 "name": "Anthropic",
3338 "config": {
3339 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3340 "write_back": true
Merge branch 'worktree-agent-ab2e39e11a6493412'3341 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3342 "secret_hint": "…3f9a",
3343 "webhook_url": null,
3344 "created_by": "syntaqx",
3345 "created_at": "2026-10-04T15:42:07.318Z",
3346 "last_used_at": "2026-10-04T15:42:08.102Z",
3347 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3348 "models": [
3349 "claude-haiku-4-5",
3350 "claude-sonnet-4-5"
3351 ]
3352 },
3353 {
3354 "id": "con_01kpx4n8r3g9s0v5w7x1z2a3bc",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3355 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3356 "provider": "jira",
3357 "kind": "tracker",
3358 "name": "Jira",
3359 "config": {
3360 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3361 "write_back": true,
Merge branch 'worktree-agent-ab2e39e11a6493412'3362 "site": "https://acme.atlassian.net",
3363 "email": "syntaqx@example.com",
3364 "keys": [
3365 "TECH"
3366 ]
3367 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3368 "secret_hint": "…x7Qe",
3369 "webhook_url": null,
3370 "created_by": "syntaqx",
3371 "created_at": "2026-10-04T15:42:07.318Z",
3372 "last_used_at": null,
3373 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3374 "models": []
3375 }
3376 ],
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3377 "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'3378 },
3379 "connect_integration": {
3380 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3381 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3382 },
3383 "request": {
3384 "provider": "webhook",
3385 "config": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3386 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3387 "label": "bug"
3388 }
3389 },
3390 "response": {
3391 "connection": {
3392 "id": "con_01kpx4n8r3g9s0v5w7x1z2a3bd",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3393 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3394 "provider": "webhook",
3395 "kind": "alerts",
3396 "name": "Webhook",
3397 "config": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3398 "repo": "flagon-io/hello",
Merge branch 'worktree-agent-ab2e39e11a6493412'3399 "label": "bug",
3400 "assign": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3401 "write_back": true
Merge branch 'worktree-agent-ab2e39e11a6493412'3402 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3403 "secret_hint": null,
3404 "webhook_url": "https://api.g1t.sh/hooks/con_01kpx4n8r3g9s0v5w7x1z2a3bd",
3405 "created_by": "syntaqx",
3406 "created_at": "2026-10-04T15:42:07.318Z",
3407 "last_used_at": null,
3408 "last_error": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3409 "models": []
3410 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3411 "signing_secret": "g1ts_9f2c4a7e1b0d3c6f8a2e5b7d9c1f4a6e8b0d2c4f6a8e1b3d"
Merge branch 'worktree-agent-ab2e39e11a6493412'3412 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3413 "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'3414 },
3415 "disconnect_integration": {
3416 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3417 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3418 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab"
3419 },
3420 "response": true
3421 },
3422 "test_integration": {
3423 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3424 "workspace": "flagon-io",
Merge branch 'worktree-agent-ab2e39e11a6493412'3425 "id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab"
3426 },
3427 "response": {
3428 "ok": true,
3429 "message": "Anthropic accepted the key and offers 9 models."
3430 },
3431 "notes": "Credentials that do not work still answer `200`, with `ok` false and `message` saying what went wrong."
3432 },
3433 "get_model_routes": {
3434 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3435 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3436 },
3437 "response": [
3438 {
3439 "task": "default",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3440 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Merge branch 'worktree-agent-ab2e39e11a6493412'3441 "model": "claude-sonnet-4-5"
3442 },
3443 {
3444 "task": "review",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3445 "connection_id": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3446 "model": null
3447 }
3448 ]
3449 },
3450 "set_model_routes": {
3451 "params": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3452 "workspace": "flagon-io"
Merge branch 'worktree-agent-ab2e39e11a6493412'3453 },
3454 "request": {
3455 "routes": [
3456 {
3457 "task": "default",
3458 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
3459 "model": "claude-sonnet-4-5"
3460 },
3461 {
3462 "task": "review",
3463 "connection_id": null
3464 }
3465 ]
3466 },
3467 "response": [
3468 {
3469 "task": "default",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3470 "connection_id": "con_01kpx3m7q2f8r9t4v6w0y1z2ab",
Merge branch 'worktree-agent-ab2e39e11a6493412'3471 "model": "claude-sonnet-4-5"
3472 },
3473 {
3474 "task": "review",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3475 "connection_id": null,
Merge branch 'worktree-agent-ab2e39e11a6493412'3476 "model": null
3477 }
3478 ],
3479 "notes": "The response is the routes as saved, ordered by task."
3480 },
3481 "get_context": {
3482 "query": {
3483 "reference": "TECH-1234"
3484 },
3485 "response": {
3486 "provider": "jira",
3487 "key": "TECH-1234",
3488 "title": "Checkout fails for EU cards",
3489 "url": "https://acme.atlassian.net/browse/TECH-1234",
3490 "status": "In Progress",
3491 "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 API3492 "fetched_at": "2026-10-04T15:42:07.318Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3493 }
3494 },
3495 "import_issue": {
3496 "request": {
3497 "reference": "TECH-1234"
3498 },
3499 "response": {
3500 "number": 42,
3501 "item": {
3502 "provider": "jira",
3503 "key": "TECH-1234",
3504 "title": "Checkout fails for EU cards",
3505 "url": "https://acme.atlassian.net/browse/TECH-1234",
3506 "status": "In Progress",
3507 "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 API3508 "fetched_at": "2026-10-04T15:42:07.318Z"
Merge branch 'worktree-agent-ab2e39e11a6493412'3509 },
3510 "created": true
3511 },
3512 "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 domains3513 },
3514 "remember": {
3515 "request": {
3516 "text": "The tests need TZ=UTC or the date tests fail.",
3517 "scope": "project",
3518 "kind": "gotcha",
3519 "from_number": 14
3520 },
3521 "response": {
3522 "id": "mem_01m43v8q2w3e4r5t6y7u8i9o0p",
3523 "scope": "project",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3524 "workspace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3525 "repo": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3526 "namespace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3527 "name": "hello"
3528 },
3529 "text": "The tests need TZ=UTC or the date tests fail.",
3530 "kind": "gotcha",
3531 "source": {
3532 "kind": "run",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3533 "run_id": "arn_01m43v2c1p9k8d7e6f5a4b3c2d",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3534 "repo": {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3535 "namespace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3536 "name": "hello"
3537 },
3538 "number": 14
3539 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3540 "created_by": "g1t-agent",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3541 "pinned": false,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3542 "created_at": "2026-10-01T18:40:12.000Z",
3543 "updated_at": "2026-10-01T18:40:12.000Z",
3544 "last_used_at": null
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3545 },
3546 "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."
3547 },
3548 "recall": {
3549 "query": {
3550 "q": "pnpm"
3551 },
3552 "response": {
3553 "project": [],
3554 "workspace": [
3555 {
3556 "id": "mem_01m43t0a1s2d3f4g5h6j7k8l9z",
3557 "scope": "workspace",
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3558 "workspace": "flagon-io",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3559 "repo": null,
3560 "text": "We use pnpm everywhere, never npm or yarn.",
3561 "kind": "convention",
3562 "source": {
3563 "kind": "person",
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3564 "run_id": null,
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3565 "repo": null,
3566 "number": null
3567 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3568 "created_by": "syntaqx",
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3569 "pinned": true,
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3570 "created_at": "2026-10-01T18:40:12.000Z",
3571 "updated_at": "2026-10-01T18:40:12.000Z",
3572 "last_used_at": null
Agents and memory, checks and conflicts, profiles, slug renames, custom domains3573 }
3574 ]
3575 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3576 "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 API3577 },
Search across all of g1t, Explore, and a command palette3578 "search": {
3579 "query": {
3580 "q": "parse_query language:rust repo:acme/web",
3581 "type": "code"
3582 },
3583 "response": {
3584 "query": "parse_query repo:acme/web language:rust",
3585 "type": "code",
3586 "counts": {
3587 "repositories": 0,
3588 "code": 2,
3589 "issues": 0,
3590 "pulls": 0,
3591 "people": 0
3592 },
3593 "page": 1,
3594 "per_page": 20,
3595 "more": false,
3596 "hits": [
3597 {
3598 "kind": "code",
3599 "title": "src/search/query.rs",
3600 "url": "/acme/web/blob/main/src/search/query.rs#L42",
3601 "repo": "acme/web",
3602 "private": false,
3603 "description": null,
3604 "snippet": [],
3605 "lines": [
3606 {
3607 "number": 41,
3608 "parts": [
3609 {
3610 "text": "/// Reads a query typed into the search box.",
3611 "highlight": false
3612 }
3613 ]
3614 },
3615 {
3616 "number": 42,
3617 "parts": [
3618 {
3619 "text": "pub fn ",
3620 "highlight": false
3621 },
3622 {
3623 "text": "parse_query",
3624 "highlight": true
3625 },
3626 {
3627 "text": "(text: &str) -> Query {",
3628 "highlight": false
3629 }
3630 ]
3631 },
3632 {
3633 "number": 43,
3634 "parts": [
3635 {
3636 "text": " let mut query = Query::default();",
3637 "highlight": false
3638 }
3639 ]
3640 }
3641 ],
3642 "path": "src/search/query.rs",
3643 "language": "rust",
3644 "ref": "main",
3645 "number": null,
3646 "state": null,
3647 "author": null,
3648 "labels": [],
3649 "topics": [],
3650 "slug": null,
3651 "avatar": null,
3652 "updated_at": null
3653 }
3654 ],
3655 "notes": []
3656 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3657 "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 palette3658 },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API3659 "search_context": {
3660 "params": {
3661 "workspace": "acme"
3662 },
3663 "query": {
3664 "q": "how do we run the web tests",
3665 "project": "web"
3666 },
3667 "response": {
3668 "query": "how do we run the web tests",
3669 "mode": "semantic",
3670 "hits": [
3671 {
3672 "kind": "memory",
3673 "id": "mem_01m4a0c2b7k3f9d1e5g8h2j6k4",
3674 "title": "Gotcha",
3675 "snippet": "The date tests fail unless TZ=UTC.",
3676 "project": "web",
3677 "url": "/acme/web/memory",
3678 "score": 0.82,
3679 "source": "AGENTS.md",
3680 "by": "g1t",
3681 "updated_at": "2026-10-04T21:10:02.000Z"
3682 },
3683 {
3684 "kind": "doc",
3685 "id": "ent_5f0c2a9e41d7b3c86a1e2f40:2",
3686 "title": "Web (README.md)",
3687 "snippet": "## Testing Run npm test. The end-to-end tests need the api running locally…",
3688 "project": "web",
3689 "url": "/acme/web/blob/main/README.md",
3690 "score": 0.77,
3691 "source": "README.md",
3692 "by": null,
3693 "updated_at": "2026-10-04T20:58:41.000Z"
3694 },
3695 {
3696 "kind": "project",
3697 "id": "ent_9b1d6f0a2c3e4b5d6e7f8a9b",
3698 "title": "web",
3699 "snippet": "The storefront. Written in TypeScript. Packages: @acme/web. Uses api. Owned by ana.",
3700 "project": "web",
3701 "url": "/acme/web",
3702 "score": 0.71,
3703 "source": "catalog",
3704 "by": null,
3705 "updated_at": "2026-10-04T20:58:41.000Z"
3706 }
3707 ]
3708 },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look3709 "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 API3710 },
3711 "get_entity": {
3712 "params": {
3713 "workspace": "acme",
3714 "kind": "project",
3715 "id": "web"
3716 },
3717 "response": {
3718 "entity": {
3719 "id": "ent_9b1d6f0a2c3e4b5d6e7f8a9b",
3720 "workspace": "acme",
3721 "kind": "project",
3722 "key": "web",
3723 "name": "web",
3724 "summary": "The storefront. Written in TypeScript. Packages: @acme/web. Uses api. Owned by ana.",
3725 "project": "web",
3726 "private": true,
3727 "data": {
3728 "repo": "acme/web",
3729 "root_dir": "",
3730 "default_branch": "main",
3731 "languages": [
3732 "TypeScript"
3733 ],
3734 "owners": [
3735 "ana"
3736 ],
3737 "tests": true,
3738 "test_commands": [
3739 "npm test"
3740 ],
3741 "production_url": "https://web--acme.g1t.page"
3742 },
3743 "source": "scan",
3744 "ref": "/acme/web",
3745 "updated_at": "2026-10-04T20:58:41.000Z"
3746 },
3747 "relations": [
3748 {
3749 "kind": "depends_on",
3750 "direction": "out",
3751 "entity": {
3752 "id": "ent_0a7c3e5b9d1f2a4c6e8b0d2f",
3753 "workspace": "acme",
3754 "kind": "project",
3755 "key": "api",
3756 "name": "api",
3757 "summary": "The public API. Written in Rust.",
3758 "project": "api",
3759 "private": true,
3760 "data": {},
3761 "source": "scan",
3762 "ref": "/acme/api",
3763 "updated_at": "2026-10-04T20:57:12.000Z"
3764 }
3765 },
3766 {
3767 "kind": "owned_by",
3768 "direction": "out",
3769 "entity": {
3770 "id": "ent_3c5e7a9b1d2f4a6c8e0b2d4f",
3771 "workspace": "acme",
3772 "kind": "owner",
3773 "key": "ana",
3774 "name": "ana",
3775 "summary": null,
3776 "project": null,
3777 "private": false,
3778 "data": {},
3779 "source": "scan",
3780 "ref": "/u/ana",
3781 "updated_at": "2026-10-04T20:58:41.000Z"
3782 }
3783 }
3784 ]
3785 },
3786 "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 look3787 },
3788 "list_collaborators": {
3789 "response": {
3790 "repo": "flagon-io/hello",
3791 "base_permission": "write",
3792 "people": [
3793 {
3794 "username": "syntaqx",
3795 "name": "Chase Pierce",
3796 "avatar": null,
3797 "role": "admin",
3798 "source": "owner",
3799 "direct": null,
3800 "workspace_role": "owner"
3801 },
3802 {
3803 "username": "linus",
3804 "name": null,
3805 "avatar": null,
3806 "role": "maintain",
3807 "source": "direct",
3808 "direct": "maintain",
3809 "workspace_role": "member"
3810 },
3811 {
3812 "username": "grace",
3813 "name": "Grace Hopper",
3814 "avatar": null,
3815 "role": "write",
3816 "source": "base",
3817 "direct": null,
3818 "workspace_role": "member"
3819 },
3820 {
3821 "username": "ada",
3822 "name": "Ada Lovelace",
3823 "avatar": null,
3824 "role": "triage",
3825 "source": "direct",
3826 "direct": "triage",
3827 "workspace_role": null
3828 }
3829 ],
3830 "invitations": [
3831 {
3832 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
3833 "repo": "flagon-io/hello",
3834 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3835 "invitee": "alan",
3836 "email": null,
3837 "role": "write",
3838 "invited_by": "syntaqx",
3839 "inviter_avatar": null,
3840 "status": "pending",
3841 "created_at": "2026-10-05T17:00:00.000Z",
3842 "expires_at": "2026-10-12T17:00:00.000Z"
3843 },
3844 {
3845 "id": "rin_01kp3d7e8f9g0h1j2k3m4n5p6q",
3846 "repo": "flagon-io/hello",
3847 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3848 "invitee": null,
3849 "email": "joan@example.com",
3850 "role": "read",
3851 "invited_by": "syntaqx",
3852 "inviter_avatar": null,
3853 "status": "pending",
3854 "created_at": "2026-10-05T17:00:00.000Z",
3855 "expires_at": "2026-10-12T17:00:00.000Z"
3856 }
3857 ],
3858 "viewer_role": "admin",
3859 "can_manage": true
3860 },
3861 "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/)."
3862 },
3863 "add_collaborator": {
3864 "request": {
3865 "invitee": "ada",
3866 "role": "triage"
3867 },
3868 "response": {
3869 "result": "invited",
3870 "invitation": {
3871 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
3872 "repo": "flagon-io/hello",
3873 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3874 "invitee": "ada",
3875 "email": null,
3876 "role": "triage",
3877 "invited_by": "syntaqx",
3878 "inviter_avatar": null,
3879 "status": "pending",
3880 "created_at": "2026-10-05T17:00:00.000Z",
3881 "expires_at": "2026-10-12T17:00:00.000Z"
3882 }
3883 },
3884 "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/)."
3885 },
3886 "update_collaborator": {
3887 "params": {
3888 "owner": "flagon-io",
3889 "name": "hello",
3890 "username": "ada"
3891 },
3892 "request": {
3893 "role": "write"
3894 },
3895 "response": {
3896 "username": "ada",
3897 "name": "Ada Lovelace",
3898 "avatar": null,
3899 "role": "write",
3900 "source": "direct",
3901 "direct": "write",
3902 "workspace_role": null
3903 },
3904 "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/)."
3905 },
3906 "remove_collaborator": {
3907 "params": {
3908 "owner": "flagon-io",
3909 "name": "hello",
3910 "username": "ada"
3911 },
3912 "response": true,
3913 "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/)."
3914 },
3915 "get_collaborator_permission": {
3916 "params": {
3917 "owner": "flagon-io",
3918 "name": "hello",
3919 "username": "ada"
3920 },
3921 "response": {
3922 "username": "ada",
3923 "role": "triage",
3924 "source": "direct",
3925 "capabilities": [
3926 "read",
3927 "participate",
3928 "triage"
3929 ]
3930 },
3931 "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/)."
3932 },
3933 "list_repo_invitations": {
3934 "response": [
3935 {
3936 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
3937 "repo": "flagon-io/hello",
3938 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3939 "invitee": "alan",
3940 "email": null,
3941 "role": "write",
3942 "invited_by": "syntaqx",
3943 "inviter_avatar": null,
3944 "status": "pending",
3945 "created_at": "2026-10-05T17:00:00.000Z",
3946 "expires_at": "2026-10-12T17:00:00.000Z"
3947 },
3948 {
3949 "id": "rin_01kp3d7e8f9g0h1j2k3m4n5p6q",
3950 "repo": "flagon-io/hello",
3951 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3952 "invitee": null,
3953 "email": "joan@example.com",
3954 "role": "read",
3955 "invited_by": "syntaqx",
3956 "inviter_avatar": null,
3957 "status": "pending",
3958 "created_at": "2026-10-05T17:00:00.000Z",
3959 "expires_at": "2026-10-12T17:00:00.000Z"
3960 }
3961 ],
3962 "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/)."
3963 },
3964 "revoke_repo_invitation": {
3965 "params": {
3966 "owner": "flagon-io",
3967 "name": "hello",
3968 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p"
3969 },
3970 "response": {
3971 "id": "rin_01kp3c4d5e6f7g8h9j0k1m2n3p",
3972 "repo": "flagon-io/hello",
3973 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3974 "invitee": "alan",
3975 "email": null,
3976 "role": "write",
3977 "invited_by": "syntaqx",
3978 "inviter_avatar": null,
3979 "status": "revoked",
3980 "created_at": "2026-10-05T17:00:00.000Z",
3981 "expires_at": "2026-10-12T17:00:00.000Z"
3982 },
3983 "notes": "`404` when there is no pending invitation with that id on this repository."
3984 },
3985 "list_my_repo_invitations": {
3986 "response": [
3987 {
3988 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
3989 "repo": "flagon-io/hello",
3990 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
3991 "invitee": "ada",
3992 "email": null,
3993 "role": "triage",
3994 "invited_by": "syntaqx",
3995 "inviter_avatar": null,
3996 "status": "pending",
3997 "created_at": "2026-10-05T17:00:00.000Z",
3998 "expires_at": "2026-10-12T17:00:00.000Z"
3999 }
4000 ],
4001 "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."
4002 },
4003 "accept_repo_invitation": {
4004 "params": {
4005 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r"
4006 },
4007 "response": {
4008 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
4009 "repo": "flagon-io/hello",
4010 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
4011 "invitee": "ada",
4012 "email": null,
4013 "role": "triage",
4014 "invited_by": "syntaqx",
4015 "inviter_avatar": null,
4016 "status": "accepted",
4017 "created_at": "2026-10-05T17:00:00.000Z",
4018 "expires_at": "2026-10-12T17:00:00.000Z"
4019 },
4020 "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/)."
4021 },
4022 "decline_repo_invitation": {
4023 "params": {
4024 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r"
4025 },
4026 "response": {
4027 "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
4028 "repo": "flagon-io/hello",
4029 "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
4030 "invitee": "ada",
4031 "email": null,
4032 "role": "triage",
4033 "invited_by": "syntaqx",
4034 "inviter_avatar": null,
4035 "status": "declined",
4036 "created_at": "2026-10-05T17:00:00.000Z",
4037 "expires_at": "2026-10-12T17:00:00.000Z"
4038 },
4039 "notes": "`404` when you have no pending invitation with that id."
4040 },
4041 "set_base_permission": {
4042 "params": {
4043 "workspace": "flagon-io"
4044 },
4045 "request": {
4046 "base_permission": "read"
4047 },
4048 "response": {
4049 "workspace": "flagon-io",
4050 "base_permission": "read"
4051 },
4052 "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/)."
4053 },
4054 "list_outside_collaborators": {
4055 "params": {
4056 "workspace": "flagon-io"
4057 },
4058 "response": [
4059 {
4060 "username": "ada",
4061 "name": "Ada Lovelace",
4062 "avatar": null,
4063 "repos": [
4064 {
4065 "repo": "flagon-io/docs",
4066 "role": "write"
4067 },
4068 {
4069 "repo": "flagon-io/hello",
4070 "role": "triage"
4071 }
4072 ]
4073 }
4074 ],
4075 "notes": "By username, each with the repositories they have a role on. Refused with `403` for anyone but an owner. See [Access and roles](/guides/access-and-roles/)."
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily4076 },
4077 "list_security_alerts": {
4078 "params": {
4079 "owner": "flagon-io",
4080 "name": "hello"
4081 },
4082 "query": {
4083 "state": "open"
4084 },
4085 "response": [
4086 {
4087 "kind": "secret",
4088 "id": "sec_01kp4a7b2c3d4e5f6g7h8j9k0m",
4089 "state": "dismissed",
4090 "secret_type": "aws_access_key",
4091 "label": "an AWS access key",
4092 "path": "test/fixtures/aws.env",
4093 "line": 3,
4094 "commit": "9f2c1e04b7d3a8e6f5c2b1a0d9e8f7c6b5a4d3e2",
4095 "preview": "AKIA…MPLE",
4096 "status": "allowed",
4097 "source": "history",
4098 "test_value": "the documented example key",
4099 "found_by": null,
4100 "found_at": "2026-10-01T12:00:00.000Z",
4101 "dismissed_reason": "used_in_tests",
4102 "dismissed_comment": "Only in the test fixtures.",
4103 "dismissed_by": "syntaqx",
4104 "dismissed_at": "2026-10-02T09:15:00.000Z"
4105 },
4106 {
4107 "kind": "dependency",
4108 "id": "vul_01kp4b8c3d4e5f6g7h8j9k0m1n",
4109 "state": "open",
4110 "ecosystem": "npm",
4111 "package": "lodash",
4112 "version": "4.17.20",
4113 "manifest": "package-lock.json",
4114 "advisory": "GHSA-35jh-r3h4-6jhm",
4115 "osv_id": "GHSA-35jh-r3h4-6jhm",
4116 "summary": "Command Injection in lodash",
4117 "severity": "high",
4118 "fixed_version": "4.17.21",
4119 "fixed_at": null,
4120 "update": {
4121 "state": "open",
4122 "target": "4.17.21",
4123 "branch": "g1t/security/lodash-4.17.21",
4124 "pull": 42,
4125 "issue": null,
4126 "error": null,
4127 "updated_at": "2026-10-01T12:20:00.000Z"
4128 },
4129 "found_at": "2026-10-01T12:00:00.000Z",
4130 "dismissed_reason": null,
4131 "dismissed_comment": null,
4132 "dismissed_by": null,
4133 "dismissed_at": null
4134 }
4135 ],
4136 "notes": "Secrets come first, then dependencies. Fields only one kind has are left out of the other: a secret has `secret_type`, `label`, `path`, `line`, `commit`, `preview`, `status` (`open`, `blocked`, `allowed` or `resolved`), `source` (`push` or `history`), `test_value` and `found_by`; a dependency has `ecosystem`, `package`, `version`, `manifest`, `advisory`, `osv_id`, `summary`, `severity`, `fixed_version` (null when no patched version is available), `fixed_at` and `update`, the pull request g1t opens to upgrade it. `dismissed_reason`, `dismissed_comment`, `dismissed_by` and `dismissed_at` are null while an alert is open; a secret fixed by being revoked keeps them. `422` for a `state` or `kind` it does not know, and `404` for anyone without the Write role. See [Security](/guides/security/)."
4137 },
4138 "dismiss_security_alert": {
4139 "params": {
4140 "owner": "flagon-io",
4141 "name": "hello",
4142 "id": "vul_01kp4b8c3d4e5f6g7h8j9k0m1n"
4143 },
4144 "request": {
4145 "reason": "tolerable_risk",
4146 "comment": "Only the build uses it, on trusted input."
4147 },
4148 "response": {
4149 "kind": "dependency",
4150 "id": "vul_01kp4b8c3d4e5f6g7h8j9k0m1n",
4151 "state": "dismissed",
4152 "ecosystem": "npm",
4153 "package": "lodash",
4154 "version": "4.17.20",
4155 "manifest": "package-lock.json",
4156 "advisory": "GHSA-35jh-r3h4-6jhm",
4157 "osv_id": "GHSA-35jh-r3h4-6jhm",
4158 "summary": "Command Injection in lodash",
4159 "severity": "high",
4160 "fixed_version": "4.17.21",
4161 "fixed_at": null,
4162 "update": {
4163 "state": "open",
4164 "target": "4.17.21",
4165 "branch": "g1t/security/lodash-4.17.21",
4166 "pull": 42,
4167 "issue": null,
4168 "error": null,
4169 "updated_at": "2026-10-01T12:20:00.000Z"
4170 },
4171 "found_at": "2026-10-01T12:00:00.000Z",
4172 "dismissed_reason": "tolerable_risk",
4173 "dismissed_comment": "Only the build uses it, on trusted input.",
4174 "dismissed_by": "syntaqx",
4175 "dismissed_at": "2026-10-06T10:00:00.000Z"
4176 },
4177 "notes": "| Kind | Reasons |\n| --- | --- |\n| `secret` | `false_positive`, `used_in_tests`, `revoked`, `wont_fix` |\n| `dependency` | `fix_started`, `no_bandwidth`, `tolerable_risk`, `inaccurate`, `not_used` |\n\nA reason for the other kind of alert, or one not in the table, is refused with `422`. A secret dismissed as `revoked` becomes `fixed`; with any other reason it becomes `dismissed` and pushes that carry it go through. Dismissing a secret needs the Admin role on the repository; a dependency needs the Write role. A token needs `repo:admin` for either, and a g1t agent’s token never dismisses alerts."
4178 },
4179 "reopen_security_alert": {
4180 "params": {
4181 "owner": "flagon-io",
4182 "name": "hello",
4183 "id": "sec_01kp4a7b2c3d4e5f6g7h8j9k0m"
4184 },
4185 "response": {
4186 "kind": "secret",
4187 "id": "sec_01kp4a7b2c3d4e5f6g7h8j9k0m",
4188 "state": "open",
4189 "secret_type": "aws_access_key",
4190 "label": "an AWS access key",
4191 "path": "test/fixtures/aws.env",
4192 "line": 3,
4193 "commit": "9f2c1e04b7d3a8e6f5c2b1a0d9e8f7c6b5a4d3e2",
4194 "preview": "AKIA…MPLE",
4195 "status": "open",
4196 "source": "history",
4197 "test_value": "the documented example key",
4198 "found_by": null,
4199 "found_at": "2026-10-01T12:00:00.000Z",
4200 "dismissed_reason": null,
4201 "dismissed_comment": null,
4202 "dismissed_by": null,
4203 "dismissed_at": null
4204 },
4205 "notes": "The alert is `open` again, and a reopened secret stops pushes that carry it. The same roles as dismissing: Admin for a secret, Write for a dependency."
Merge branch 'worktree-agent-ab2e39e11a6493412'4206 }
4207}

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