@bongos/core 1.21.95 → 1.21.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.bongos-core.json CHANGED
@@ -2,22 +2,22 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.21.95",
6
- "core_contract": "1.21.95",
7
- "source_commit": "1895cbf114f5a8932e751d9208a592dfbbf99ff8",
5
+ "core_version": "1.21.96",
6
+ "core_contract": "1.21.96",
7
+ "source_commit": "7fe8cc68952fc52e5a2f6620ee7f55c89bd72728",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-10-09T08:47:23.210Z",
9
+ "built_at": "2026-10-09T10:00:46.973Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 590,
13
13
  "agent_docs_stubbed": 28,
14
- "functional_verbatim": 3013,
14
+ "functional_verbatim": 3014,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 3632,
20
- "tree_sha256": "82e713c766d3a2684a614b15ca98c09c047238193da0dc6be4ab5f95b9dbb975",
19
+ "file_count": 3633,
20
+ "tree_sha256": "3b6bd78cdd3212bf3c1010e59d8d2c6101c0857f1bb1bee230fb85b7f83e51ee",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -312,12 +312,12 @@
312
312
  {
313
313
  "path": "clients/bongos-client/README.md",
314
314
  "mode": "0000644",
315
- "sha256": "ddef69b1dc2ff76269e9f84955ca554ec70f1f18aeb502e408bf20920f694669"
315
+ "sha256": "3e9f5bc0b7e0ede71e6ad8b88e6770faa836227d029f0d9e7e1ce5d38d94866c"
316
316
  },
317
317
  {
318
318
  "path": "clients/bongos-client/bongos-client.global.js",
319
319
  "mode": "0000644",
320
- "sha256": "35ac01d598a9ba76e928f115f5de99e952128d37de311e3bab548d9a74bfe53a"
320
+ "sha256": "cd0300814bc05a6309264b232aaa6f14ccba9d0b1af5f379f88678c51b50452e"
321
321
  },
322
322
  {
323
323
  "path": "clients/bongos-client/examples/hello-world.mjs",
@@ -327,17 +327,17 @@
327
327
  {
328
328
  "path": "clients/bongos-client/index.cjs",
329
329
  "mode": "0000644",
330
- "sha256": "0793d04a2a43eef50144bc607927c7b3560af4948877926edf24aa3d781e7323"
330
+ "sha256": "714ebd69e4d8ab4d1e155e383150e6d293e45f37caea516acff7d3277d2df933"
331
331
  },
332
332
  {
333
333
  "path": "clients/bongos-client/index.d.ts",
334
334
  "mode": "0000644",
335
- "sha256": "c4708244379cd28709caf48d817266b184ffe18a65f9590bc62c2b1aeb71d824"
335
+ "sha256": "1f25c3084694cef28c60e61b170cfa7d3c99cacd911a17063085c6b83b0b9eae"
336
336
  },
337
337
  {
338
338
  "path": "clients/bongos-client/index.mjs",
339
339
  "mode": "0000644",
340
- "sha256": "e143421ec34b742f29a21690b81ed8fdf2b01a7c87d380fcea43a56dbba42465"
340
+ "sha256": "c8aa4619d61ebd5d3f4c593010bfad32591229de234ffa412443fc1811546926"
341
341
  },
342
342
  {
343
343
  "path": "clients/bongos-client/package.json",
@@ -2317,12 +2317,12 @@
2317
2317
  {
2318
2318
  "path": "docs/api-reference.md",
2319
2319
  "mode": "0000644",
2320
- "sha256": "3b3f6ed65d2c90fa08c7a2000862c7c9ffd8b7625420f377b52d132d9b17d8d3"
2320
+ "sha256": "650244908092826b311d3b87c8943bba0c4d95d2b196698a897de3accbc5f17a"
2321
2321
  },
2322
2322
  {
2323
2323
  "path": "docs/api/openapi.json",
2324
2324
  "mode": "0000644",
2325
- "sha256": "8704ce350de56a1b955a41296cb7fa053128d2b4fc8a76e156a4e8578afef6a3"
2325
+ "sha256": "d4a92b1fd93c0a8b9c7e48f89d79766d5e298a2dae1fe3db588ed6fdaeff3ce1"
2326
2326
  },
2327
2327
  {
2328
2328
  "path": "docs/architecture.md",
@@ -2347,12 +2347,12 @@
2347
2347
  {
2348
2348
  "path": "docs/copy-inventory.md",
2349
2349
  "mode": "0000644",
2350
- "sha256": "d9eb86aa5d3c208883783df0deef2ad776e403fa5896a422d88adc5e11079e6d"
2350
+ "sha256": "99d765694dcd9dfcc5343f41f4202a7e24beeac1b8b48574686b0fde7eca5a4e"
2351
2351
  },
2352
2352
  {
2353
2353
  "path": "docs/copy-registry.json",
2354
2354
  "mode": "0000644",
2355
- "sha256": "d5af39196ca0a235dcb225c0966f2df4d930417c109298f86e03429cdc4d7a91"
2355
+ "sha256": "a0820afa8785e8c5d73f3fc4680939b28b12b51ca44bc67209d390cc6853a6f1"
2356
2356
  },
2357
2357
  {
2358
2358
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2432,7 +2432,7 @@
2432
2432
  {
2433
2433
  "path": "docs/design/project-startup-direction.md",
2434
2434
  "mode": "0000644",
2435
- "sha256": "1fc48632ac7af6d55bc62cf0207affb597956c2243febe1faa0b39e22bdef829"
2435
+ "sha256": "ab970c9b8903537174d7edd6ba3980480373df9c67d88c6fad81714dfe8c185d"
2436
2436
  },
2437
2437
  {
2438
2438
  "path": "docs/design/projects-hub-direction-v2.md",
@@ -2862,7 +2862,7 @@
2862
2862
  {
2863
2863
  "path": "docs/module-api-changelog.md",
2864
2864
  "mode": "0000644",
2865
- "sha256": "4b50f866b73e605791b602d3d0dd212aeebc0b406f1f8579a8f3f4625fb9a8f2"
2865
+ "sha256": "fe148fd74b342e433645b14587ff11c31faf3bccdedd032335d254bbc5afaa5d"
2866
2866
  },
2867
2867
  {
2868
2868
  "path": "docs/modules-contract.md",
@@ -2952,7 +2952,7 @@
2952
2952
  {
2953
2953
  "path": "docs/page-readings.json",
2954
2954
  "mode": "0000644",
2955
- "sha256": "998e448cf903b275a9c44c0f326197963e83929626cce5dc506e980148690b98"
2955
+ "sha256": "6dafc2854956f0628a7a1ad6fe0c47dd4c530e7e3962c3664b8c87b5e9ba96c3"
2956
2956
  },
2957
2957
  {
2958
2958
  "path": "docs/project-context.template.md",
@@ -8267,7 +8267,7 @@
8267
8267
  {
8268
8268
  "path": "modules/provisioning/github-setup.js",
8269
8269
  "mode": "0000644",
8270
- "sha256": "e97ee19b2ba5e607557d0794e528f2e7e19d68cbe6e208ab88af7a9dba92d06b"
8270
+ "sha256": "5bce3df9db40089e773d6cf45ae116ccab50b68ecd385df361a09c6aa6c8fe5c"
8271
8271
  },
8272
8272
  {
8273
8273
  "path": "modules/provisioning/look.js",
@@ -8577,7 +8577,7 @@
8577
8577
  {
8578
8578
  "path": "modules/provisioning/routes/github-setup.js",
8579
8579
  "mode": "0000644",
8580
- "sha256": "652c1aafba1e38ae46b02b54d3e6cfa8c18a0ceadcf8a94ea67d664d773cce85"
8580
+ "sha256": "1551d38419839bc2ad84cb1cbd819419e15d00ead14e3b68e61f65d422dc8629"
8581
8581
  },
8582
8582
  {
8583
8583
  "path": "modules/provisioning/routes/look.js",
@@ -8587,7 +8587,7 @@
8587
8587
  {
8588
8588
  "path": "modules/provisioning/routes/provisioning.js",
8589
8589
  "mode": "0000644",
8590
- "sha256": "a4ab4c1f5c98f5fe85489f0f2f7e23e6897c178b62f2bcc9b2d9e5502fd26458"
8590
+ "sha256": "9e195130cfd5fd1b9ef086f2e33bf1a6a91afe2fcaa234b8e45f0c2bedf198a6"
8591
8591
  },
8592
8592
  {
8593
8593
  "path": "modules/provisioning/routes/render-standup.js",
@@ -9337,7 +9337,7 @@
9337
9337
  {
9338
9338
  "path": "modules/public-landing/public/projects.html",
9339
9339
  "mode": "0000644",
9340
- "sha256": "99b6553bb9756a91713c0842510d0dc8545111d0366fd59237968df21e69bf99"
9340
+ "sha256": "600e34896afe2f555bf8651a3636a07fbf0156ceda1ad2aa84ab2d2d7b161a77"
9341
9341
  },
9342
9342
  {
9343
9343
  "path": "modules/public-landing/public/projects.probes.json",
@@ -10117,12 +10117,12 @@
10117
10117
  {
10118
10118
  "path": "package-lock.json",
10119
10119
  "mode": "0000644",
10120
- "sha256": "8a3f6a8660b0f20118070b8adaad21cbbd3866e6a272720b94c2719fafe53b77"
10120
+ "sha256": "1108a8c0201d8bf012906969b018d65498d9fab8d3d399e9ba86df6388d713b2"
10121
10121
  },
10122
10122
  {
10123
10123
  "path": "package.json",
10124
10124
  "mode": "0000644",
10125
- "sha256": "256622b8d3de980cdb9dc368b115d0259af8e192f43d3757fcbc399ea053b00b"
10125
+ "sha256": "f03398091a4557a6f0347eda8a60d38fa846bb10b9df44fc242ec4b1b0de4ec9"
10126
10126
  },
10127
10127
  {
10128
10128
  "path": "public-docs/index.html",
@@ -10142,7 +10142,7 @@
10142
10142
  {
10143
10143
  "path": "release-notes.json",
10144
10144
  "mode": "0000644",
10145
- "sha256": "f0933c625fe42e498bad837a26383cbd38181bb7dba0f02d33457789fdbac345"
10145
+ "sha256": "eb303846cdf391b5bbf69c5a0d5ab480e804a23e15c324e9b1e63aee43f24555"
10146
10146
  },
10147
10147
  {
10148
10148
  "path": "scripts/cron/style_guide_audit.sh",
@@ -12092,7 +12092,7 @@
12092
12092
  {
12093
12093
  "path": "src/bongos/github-repos.js",
12094
12094
  "mode": "0000644",
12095
- "sha256": "af5600f22a3421c8197e91c77d422e9bca789eb458789924e8d75a00818f314a"
12095
+ "sha256": "c209eae2cd75714bfffd5a0fcd544cc35de5f4693b8794eedc1dcbea44e93740"
12096
12096
  },
12097
12097
  {
12098
12098
  "path": "src/bongos/goal-scope-check.js",
@@ -12302,7 +12302,7 @@
12302
12302
  {
12303
12303
  "path": "src/bongos/routes/github.js",
12304
12304
  "mode": "0000644",
12305
- "sha256": "752056364c7a826bdd4d6da2f14a0ce48284c93621ccdf5bea10bac3bbb2941f"
12305
+ "sha256": "21185f749b018027a291d50db721213142f0b8f550ba5d5c93e8ce7cb3713d36"
12306
12306
  },
12307
12307
  {
12308
12308
  "path": "src/bongos/routes/healthz.js",
@@ -12412,7 +12412,7 @@
12412
12412
  {
12413
12413
  "path": "src/module-api.js",
12414
12414
  "mode": "0000644",
12415
- "sha256": "5cabb78f9a62e76cbe3b084a14f0f4a50c5dc73b9c359cded8b13c64c5158f38"
12415
+ "sha256": "f836e60518d2f8b4e6f54235518d1f4e7bde80d9c226268c8880418fe1008812"
12416
12416
  },
12417
12417
  {
12418
12418
  "path": "src/module-loader/catalog.js",
@@ -14044,6 +14044,11 @@
14044
14044
  "mode": "0000644",
14045
14045
  "sha256": "b04dbcd87504e696367a03db39c0a3c0ae9b647039ab25b354c89884c74d2ba5"
14046
14046
  },
14047
+ {
14048
+ "path": "tests/github_org_account.mjs",
14049
+ "mode": "0000644",
14050
+ "sha256": "0745d0da6a5bd0494fc067756285ffedff62a6fd946aa1508690321d5f52cee2"
14051
+ },
14047
14052
  {
14048
14053
  "path": "tests/github_push_ancestry.mjs",
14049
14054
  "mode": "0000644",
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
5
5
  by hand; it regenerates when the spec changes, so it can never drift from the routes.
6
6
 
7
7
  - API version: **v1** (served at `/api/bongos/v1`)
8
- - 536 operations across 76 resource groups
8
+ - 538 operations across 76 resource groups
9
9
 
10
10
  ## Use it from your project
11
11
 
@@ -411,6 +411,10 @@ function createClient(opts = {}) {
411
411
  postGateApprovalsPrApprove: (args) => request("POST", "/gate-approvals/{pr}/approve", { hasBody: true }, args),
412
412
  },
413
413
  "github": {
414
+ // GET /github/orgs — rank: any-builder — GET /github/orgs
415
+ getGithubOrgs: (args) => request("GET", "/github/orgs", { hasBody: false }, args),
416
+ // GET /github/orgs/{org} — rank: any-builder — GET /github/orgs/:org
417
+ getGithubOrgsOrg: (args) => request("GET", "/github/orgs/{org}", { hasBody: false }, args),
414
418
  // GET /github/repo — rank: any-builder — GET /github/repo
415
419
  getGithubRepo: (args) => request("GET", "/github/repo", { hasBody: false }, args),
416
420
  // POST /github/repo/visibility — rank: any-builder — POST /github/repo/visibility
@@ -410,6 +410,10 @@ function createClient(opts = {}) {
410
410
  postGateApprovalsPrApprove: (args) => request("POST", "/gate-approvals/{pr}/approve", { hasBody: true }, args),
411
411
  },
412
412
  "github": {
413
+ // GET /github/orgs — rank: any-builder — GET /github/orgs
414
+ getGithubOrgs: (args) => request("GET", "/github/orgs", { hasBody: false }, args),
415
+ // GET /github/orgs/{org} — rank: any-builder — GET /github/orgs/:org
416
+ getGithubOrgsOrg: (args) => request("GET", "/github/orgs/{org}", { hasBody: false }, args),
413
417
  // GET /github/repo — rank: any-builder — GET /github/repo
414
418
  getGithubRepo: (args) => request("GET", "/github/repo", { hasBody: false }, args),
415
419
  // POST /github/repo/visibility — rank: any-builder — POST /github/repo/visibility
@@ -65,6 +65,7 @@ export interface GetCoreUpgradesResponse { ok: boolean; running: unknown; limit:
65
65
  export interface GetDiscordChannelsPlanResponse { ok: boolean; guild_id: unknown; op_count: unknown; ops: unknown; warnings: unknown }
66
66
  export interface GetDiscordChannelsSnapshotResponse { ok: boolean; guild_id: unknown; config: unknown; warnings: unknown }
67
67
  export interface GetDoneWhenPendingReviewResponse { criteria: unknown; count: unknown }
68
+ export interface GetGithubOrgsOrgResponse { org: unknown }
68
69
  export interface GetGithubRepoResponse { ok: boolean; repo: unknown; private_deployable: boolean }
69
70
  export interface GetGithubReposResponse { repos: unknown }
70
71
  export interface GetGoalTaskRelevancePendingResponse { flags: unknown; count: unknown }
@@ -133,7 +134,7 @@ export interface GetProjectsFeaturedResponse { projects: unknown; page: PageInfo
133
134
  export interface GetProjectsResponse { projects: unknown }
134
135
  export interface GetProvisioningFleetResponse { instances: unknown; capacity: unknown }
135
136
  export interface GetProvisioningGithubAppResumeResponse { ok: boolean; project: unknown }
136
- export interface GetProvisioningGithubAppStatusResponse { ok: boolean; status: unknown; failure: unknown; ready: unknown; terminal: unknown; domain: unknown; instance_status: unknown; app_slug: unknown; checklist: unknown; install_url: unknown; repo: unknown; verifying: unknown }
137
+ export interface GetProvisioningGithubAppStatusResponse { ok: boolean; status: unknown; failure: unknown; ready: unknown; terminal: unknown; domain: unknown; instance_status: unknown; app_slug: unknown; checklist: unknown; install_url: unknown; repo: unknown; verifying: unknown; app_org: unknown }
137
138
  export interface GetProvisioningHealthResponse { module: unknown; ok: boolean; coreVersion: unknown }
138
139
  export interface GetProvisioningInstancesIdEnvManifestResponse { instance: unknown; env_vars: unknown; environments: unknown; values_held: boolean; note: unknown }
139
140
  export interface GetProvisioningInstancesIdInviteSuggestionsResponse { suggested: unknown; seeking: unknown; reason: unknown; unavailable?: unknown }
@@ -328,7 +329,7 @@ export interface PostFeedbackReceiptResponse { ok: boolean; receipt: unknown; hu
328
329
  export interface PostFoundingPlanRequest { days?: Record<string, unknown>; passes?: number; advisors?: string; government?: string; expected_builders?: number; existing?: boolean }
329
330
  export interface PostGithubRepoVisibilityRequest { repo: string; visibility: "public" | "private" }
330
331
  export interface PostGithubRepoVisibilityResponse { ok: boolean; repo: unknown; private_deployable: boolean }
331
- export interface PostGithubReposRequest { name: string }
332
+ export interface PostGithubReposRequest { name: string; org?: string }
332
333
  export interface PostGithubReposResponse { repo: unknown }
333
334
  export interface PostGoalTaskRelevanceIdDecideRequest { decision: "confirmed_gaming" | "false_positive"; note?: string }
334
335
  export interface PostGoalTaskRelevanceIdDecideResponse { ok: boolean; flag: unknown }
@@ -458,7 +459,7 @@ export interface PostProvisioningInstancesIdDomainRequest { domain: string }
458
459
  export interface PostProvisioningInstancesIdDomainResponse { ok: boolean; changed: boolean; queued: unknown; domain: unknown; message: unknown; replaced?: unknown }
459
460
  export interface PostProvisioningInstancesIdEnvManifestRequest { name: string; description?: string; environments?: unknown[]; required?: boolean }
460
461
  export interface PostProvisioningInstancesIdForceTeardownResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; superseded: unknown; message: unknown }
461
- export interface PostProvisioningInstancesIdGithubAppRequest { account?: string }
462
+ export interface PostProvisioningInstancesIdGithubAppRequest { account?: string; org?: string }
462
463
  export interface PostProvisioningInstancesIdGithubAppResponse { state: unknown; account: unknown; post_url: unknown; personal_url: unknown; org_url: unknown; org_login: unknown; manifest: unknown; redirect_url: unknown; expires_at: unknown }
463
464
  export interface PostProvisioningInstancesIdRenderRequest { key: string; owner_id: string; mode: string; service_id?: string; web_plan?: string; db_plan?: string; region?: string; runtime?: string; build_command?: string; start_command?: string; database?: boolean }
464
465
  export interface PostProvisioningInstancesIdRenderResponse { ok: boolean; queued: boolean; action: unknown; mode: unknown; with_setup: boolean; message: unknown }
@@ -919,6 +920,10 @@ export interface BongosClient {
919
920
  postGateApprovalsPrApprove(args?: RequestArgs): Promise<ApiResponse>;
920
921
  };
921
922
  "github": {
923
+ /** GET /github/orgs — rank: any-builder */
924
+ getGithubOrgs(args?: RequestArgs): Promise<ApiResponse>;
925
+ /** GET /github/orgs/{org} — rank: any-builder */
926
+ getGithubOrgsOrg(args?: RequestArgs): Promise<GetGithubOrgsOrgResponse>;
922
927
  /** GET /github/repo — rank: any-builder */
923
928
  getGithubRepo(args?: RequestArgs): Promise<GetGithubRepoResponse>;
924
929
  /** POST /github/repo/visibility — rank: any-builder */
@@ -407,6 +407,10 @@ export function createClient(opts = {}) {
407
407
  postGateApprovalsPrApprove: (args) => request("POST", "/gate-approvals/{pr}/approve", { hasBody: true }, args),
408
408
  },
409
409
  "github": {
410
+ // GET /github/orgs — rank: any-builder — GET /github/orgs
411
+ getGithubOrgs: (args) => request("GET", "/github/orgs", { hasBody: false }, args),
412
+ // GET /github/orgs/{org} — rank: any-builder — GET /github/orgs/:org
413
+ getGithubOrgsOrg: (args) => request("GET", "/github/orgs/{org}", { hasBody: false }, args),
410
414
  // GET /github/repo — rank: any-builder — GET /github/repo
411
415
  getGithubRepo: (args) => request("GET", "/github/repo", { hasBody: false }, args),
412
416
  // POST /github/repo/visibility — rank: any-builder — POST /github/repo/visibility
@@ -6381,6 +6381,89 @@
6381
6381
  ]
6382
6382
  }
6383
6383
  },
6384
+ "/github/orgs": {
6385
+ "get": {
6386
+ "operationId": "get_github_orgs",
6387
+ "tags": [
6388
+ "github"
6389
+ ],
6390
+ "summary": "GET /github/orgs",
6391
+ "description": "the caller's OWN GitHub organisations (task 1004651), for the project page's \"on an organisation\" choice. Each row says whether the caller can make an app there and, when not, why. `listed` says how much GitHub showed this token (github-repos.listUserOrgs): the page always offers a typed name beside the list.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
6392
+ "x-rank": "any-builder",
6393
+ "x-source": "src/bongos/routes/github.js",
6394
+ "responses": {
6395
+ "200": {
6396
+ "description": "Success."
6397
+ },
6398
+ "400": {
6399
+ "$ref": "#/components/responses/BadRequest"
6400
+ },
6401
+ "401": {
6402
+ "$ref": "#/components/responses/Unauthorized"
6403
+ },
6404
+ "403": {
6405
+ "$ref": "#/components/responses/Forbidden"
6406
+ }
6407
+ },
6408
+ "security": [
6409
+ {
6410
+ "builderSession": []
6411
+ }
6412
+ ]
6413
+ }
6414
+ },
6415
+ "/github/orgs/{org}": {
6416
+ "get": {
6417
+ "operationId": "get_github_orgs_org",
6418
+ "tags": [
6419
+ "github"
6420
+ ],
6421
+ "summary": "GET /github/orgs/:org",
6422
+ "description": "checks ONE organisation name the caller typed, as their own GitHub credential sees it (task 1004651). The name is checked against GitHub's login rules before it reaches a URL.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
6423
+ "x-rank": "any-builder",
6424
+ "x-source": "src/bongos/routes/github.js",
6425
+ "parameters": [
6426
+ {
6427
+ "name": "org",
6428
+ "in": "path",
6429
+ "required": true,
6430
+ "schema": {
6431
+ "type": "string"
6432
+ },
6433
+ "description": "Path parameter `org`."
6434
+ }
6435
+ ],
6436
+ "responses": {
6437
+ "200": {
6438
+ "description": "Success.",
6439
+ "content": {
6440
+ "application/json": {
6441
+ "schema": {
6442
+ "$ref": "#/components/schemas/GetGithubOrgsOrgResponse"
6443
+ }
6444
+ }
6445
+ }
6446
+ },
6447
+ "400": {
6448
+ "$ref": "#/components/responses/BadRequest"
6449
+ },
6450
+ "401": {
6451
+ "$ref": "#/components/responses/Unauthorized"
6452
+ },
6453
+ "403": {
6454
+ "$ref": "#/components/responses/Forbidden"
6455
+ },
6456
+ "404": {
6457
+ "$ref": "#/components/responses/NotFound"
6458
+ }
6459
+ },
6460
+ "security": [
6461
+ {
6462
+ "builderSession": []
6463
+ }
6464
+ ]
6465
+ }
6466
+ },
6384
6467
  "/github/repo": {
6385
6468
  "get": {
6386
6469
  "operationId": "get_github_repo",
@@ -6511,7 +6594,7 @@
6511
6594
  "github"
6512
6595
  ],
6513
6596
  "summary": "POST /github/repos",
6514
- "description": "creates a repo in the caller's OWN account.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
6597
+ "description": "creates a repo in the caller's OWN account, or (task 1004651) under an organisation they name in `org`. GitHub decides whether they may; its refusals come back as 409s with the reason, never as a 403 (the page reads a 403 as \"sign in again\").\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
6515
6598
  "x-rank": "any-builder",
6516
6599
  "x-source": "src/bongos/routes/github.js",
6517
6600
  "requestBody": {
@@ -17371,7 +17454,7 @@
17371
17454
  "provisioning"
17372
17455
  ],
17373
17456
  "summary": "POST /provisioning/instances/:id/github-app",
17374
- "description": "POST /provisioning/instances/:id/github-app — mint a GitHub-App-Manifest onboarding link for the caller's OWN instance (task 2080, ADR 0133). rank: any authenticated builder (own resource). Returns the pre-filled manifest + the GitHub form-POST target (personal + org variants) + a one-time `state`; the browser POSTs the manifest to GitHub, the owner approves, and GitHub redirects back to the public callback below. The web tier only RECORDS the attempt (state token) — the control-plane runner does the token exchange + cred placement (trust boundary intact, ADR 0111 §2). Body: { account? ('personal'|'org') }.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
17457
+ "description": "POST /provisioning/instances/:id/github-app — mint a GitHub-App-Manifest onboarding link for the caller's OWN instance (task 2080, ADR 0133). rank: any authenticated builder (own resource). Returns the pre-filled manifest + the GitHub form-POST target (personal + org variants) + a one-time `state`; the browser POSTs the manifest to GitHub, the owner approves, and GitHub redirects back to the public callback below. The web tier only RECORDS the attempt (state token) — the control-plane runner does the token exchange + cred placement (trust boundary intact, ADR 0111 §2). Body: { account? ('personal'|'org'), org? (a GitHub organisation login) }. A personal or an organisation account (task 1004651): account 'org' makes the app on the organisation the founder chose on the page (`org`), else on the repo's owner. The org name is checked against GitHub's login rules here, never trusted from the page; whether the founder may make an app there is GitHub's to enforce on its own page (this module holds no GitHub token to ask with, ADR 0111 §2). Anything other than account 'org' is the founder's personal account, exactly as before.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
17375
17458
  "x-rank": "any-builder",
17376
17459
  "x-source": "modules/provisioning/routes/provisioning.js",
17377
17460
  "parameters": [
@@ -25946,6 +26029,15 @@
25946
26029
  "count"
25947
26030
  ]
25948
26031
  },
26032
+ "GetGithubOrgsOrgResponse": {
26033
+ "type": "object",
26034
+ "properties": {
26035
+ "org": {}
26036
+ },
26037
+ "required": [
26038
+ "org"
26039
+ ]
26040
+ },
25949
26041
  "GetGithubRepoResponse": {
25950
26042
  "type": "object",
25951
26043
  "properties": {
@@ -26861,7 +26953,8 @@
26861
26953
  "checklist": {},
26862
26954
  "install_url": {},
26863
26955
  "repo": {},
26864
- "verifying": {}
26956
+ "verifying": {},
26957
+ "app_org": {}
26865
26958
  },
26866
26959
  "required": [
26867
26960
  "ok",
@@ -26875,7 +26968,8 @@
26875
26968
  "checklist",
26876
26969
  "install_url",
26877
26970
  "repo",
26878
- "verifying"
26971
+ "verifying",
26972
+ "app_org"
26879
26973
  ]
26880
26974
  },
26881
26975
  "GetProvisioningHealthResponse": {
@@ -29810,6 +29904,10 @@
29810
29904
  "name": {
29811
29905
  "type": "string",
29812
29906
  "maxLength": 100
29907
+ },
29908
+ "org": {
29909
+ "type": "string",
29910
+ "maxLength": 39
29813
29911
  }
29814
29912
  },
29815
29913
  "required": [
@@ -32003,6 +32101,10 @@
32003
32101
  "account": {
32004
32102
  "type": "string",
32005
32103
  "maxLength": 12
32104
+ },
32105
+ "org": {
32106
+ "type": "string",
32107
+ "maxLength": 39
32006
32108
  }
32007
32109
  },
32008
32110
  "additionalProperties": false
@@ -34325,9 +34427,9 @@
34325
34427
  "description": "A required dependency/feature is not configured or is temporarily down."
34326
34428
  }
34327
34429
  },
34328
- "x-endpoint-count": 536,
34329
- "x-schema-count": 575,
34430
+ "x-endpoint-count": 538,
34431
+ "x-schema-count": 576,
34330
34432
  "x-undocumented-bodies": 12,
34331
- "x-response-schemas": 381,
34433
+ "x-response-schemas": 382,
34332
34434
  "x-generated-by": "scripts/gds/gen-api-docs.js"
34333
34435
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Bongos API reference
4
4
 
5
- > **Generated from the live route files** — the route file is authoritative. 536 endpoints across 95 route files.
5
+ > **Generated from the live route files** — the route file is authoritative. 538 endpoints across 95 route files.
6
6
  > Machine-readable spec: [`docs/api/openapi.json`](api/openapi.json) (OpenAPI 3.1). Rendered docs site: **`/docs`** (e.g. `cloudbongos.com/docs`).
7
7
 
8
8
  Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust-boundary-server-enforced-permissions.md)): `public` < `any-builder` < `metic+archon` < `archon`.
@@ -286,14 +286,16 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
286
286
  | GET | `/api/bongos/gate-approvals` | `metic+archon` | — | GET /gate-approvals — open PRs awaiting owner approval (gate-review red), with the verdict + per-file reasons + changed files + diff link. |
287
287
  | POST | `/api/bongos/gate-approvals/:pr/approve` | `archon` | — | POST /gate-approvals/:pr/approve — record owner approval for a stuck gate PR and re-run the gate-review check so it clears. |
288
288
 
289
- ## `github` (4)
289
+ ## `github` (6)
290
290
 
291
291
  | Method | Path | Rank | Body | Description |
292
292
  |---|---|---|---|---|
293
+ | GET | `/api/bongos/github/orgs` | `any-builder` | — | the caller's OWN GitHub organisations (task 1004651), for the project page's "on an organisation" choice. |
294
+ | GET | `/api/bongos/github/orgs/:org` | `any-builder` | — | checks ONE organisation name the caller typed, as their own GitHub credential sees it (task 1004651). |
293
295
  | GET | `/api/bongos/github/repo` | `any-builder` | — | reads one repo AS the caller's own GitHub credential sees it (the manage page's repo-visibility read, task 1003045). |
294
296
  | POST | `/api/bongos/github/repo/visibility` | `any-builder` | `repo`, `visibility` | flips one of the caller's repos PUBLIC, with their own credential. |
295
297
  | GET | `/api/bongos/github/repos` | `any-builder` | — | acts only on the caller's OWN GitHub identity (the token they granted). |
296
- | POST | `/api/bongos/github/repos` | `any-builder` | `name` | creates a repo in the caller's OWN account. |
298
+ | POST | `/api/bongos/github/repos` | `any-builder` | `name`, `org` | creates a repo in the caller's OWN account, or (task 1004651) under an organisation they name in `org`. |
297
299
 
298
300
  ## `goal-task-relevance` (2)
299
301
 
@@ -663,7 +665,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
663
665
  | PATCH | `/api/bongos/provisioning/instances/:id/env-manifest/:varId` | `any-builder` | `name`, `description`, `environments`, `required` | PATCH — edit one declaration. |
664
666
  | DELETE | `/api/bongos/provisioning/instances/:id/env-manifest/:varId` | `any-builder` | — | DELETE — remove one declaration. |
665
667
  | POST | `/api/bongos/provisioning/instances/:id/force-teardown` | `metic+archon` | — | POST /provisioning/instances/:id/force-teardown — Archon tears down ANY instance. |
666
- | POST | `/api/bongos/provisioning/instances/:id/github-app` | `any-builder` | `account` | POST /provisioning/instances/:id/github-app — mint a GitHub-App-Manifest onboarding link for the caller's OWN instance (task 2080, ADR 01… |
668
+ | POST | `/api/bongos/provisioning/instances/:id/github-app` | `any-builder` | `account`, `org` | POST /provisioning/instances/:id/github-app — mint a GitHub-App-Manifest onboarding link for the caller's OWN instance (task 2080, ADR 01… |
667
669
  | GET | `/api/bongos/provisioning/instances/:id/invite-suggestions` | `any-builder` | — | ── Who is worth inviting (BV1.R28, task 1002347, goal 1000046 C6) ──────── GET /provisioning/instances/:id/invite-suggestions — turn the … |
668
670
  | PUT | `/api/bongos/provisioning/instances/:id/logo` | `any-builder` | `image_b64`, `content_type` | PUT …/logo — rank: any authenticated builder (own resource; archon may change any). |
669
671
  | DELETE | `/api/bongos/provisioning/instances/:id/logo` | `any-builder` | validated | DELETE …/logo — rank: any authenticated builder (own resource; archon may change any). |