@thinkai/tai-api-contract 2.191.0 → 2.192.0

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.
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ThinkAI API
4
- version: 2.191.0
4
+ version: 2.192.0
5
5
  description: >
6
6
  Contract surface for the AI Driven SDLC backend used by ThinkAI.
7
7
  Workspace-scoped routes use `/workspaces/{workspaceId}/...`.
@@ -6790,6 +6790,76 @@ paths:
6790
6790
  schema:
6791
6791
  $ref: "#/components/schemas/DatadogTriggerSyncResultDto"
6792
6792
 
6793
+ /workspaces/{workspaceId}/integrations/sentry:
6794
+ get:
6795
+ tags: [Integrations]
6796
+ summary: Sentry monitoring integration status
6797
+ operationId: getWorkspaceSentryIntegrationStatus
6798
+ description: >
6799
+ Returns whether Sentry is connected for the workspace (org slug + auth token) and the last
6800
+ monitoring ingest sync outcome (incidents/deployments pulled into Quality and DORA metrics).
6801
+ parameters:
6802
+ - $ref: "#/components/parameters/WorkspaceId"
6803
+ responses:
6804
+ "200":
6805
+ description: Sentry integration status
6806
+ content:
6807
+ application/json:
6808
+ schema:
6809
+ $ref: "#/components/schemas/SentryIntegrationStatusDto"
6810
+ "401":
6811
+ $ref: "#/components/responses/Unauthorized"
6812
+ "403":
6813
+ $ref: "#/components/responses/Forbidden"
6814
+ "404":
6815
+ description: Workspace does not exist or malformed workspaceId
6816
+ content:
6817
+ application/json:
6818
+ schema:
6819
+ $ref: "#/components/schemas/ErrorMessageDto"
6820
+
6821
+ /workspaces/{workspaceId}/integrations/sentry/sync:
6822
+ post:
6823
+ tags: [Integrations]
6824
+ summary: Trigger Sentry monitoring ingest now
6825
+ operationId: postWorkspaceSentryIntegrationSync
6826
+ description: >
6827
+ Manually polls Sentry for issues (incidents) and releases (deployments), persists canonical
6828
+ monitoring events, and refreshes org-level Quality/DORA dashboard buckets. Requires editor role.
6829
+ security:
6830
+ - bearerAuth: []
6831
+ parameters:
6832
+ - $ref: "#/components/parameters/WorkspaceId"
6833
+ responses:
6834
+ "200":
6835
+ description: Sync completed
6836
+ content:
6837
+ application/json:
6838
+ schema:
6839
+ $ref: "#/components/schemas/SentryTriggerSyncResultDto"
6840
+ "401":
6841
+ $ref: "#/components/responses/Unauthorized"
6842
+ "403":
6843
+ $ref: "#/components/responses/Forbidden"
6844
+ "404":
6845
+ description: Workspace does not exist or malformed workspaceId
6846
+ content:
6847
+ application/json:
6848
+ schema:
6849
+ $ref: "#/components/schemas/ErrorMessageDto"
6850
+ "422":
6851
+ description: Sentry is not connected on this workspace
6852
+ content:
6853
+ application/json:
6854
+ schema:
6855
+ $ref: "#/components/schemas/SentryTriggerSyncResultDto"
6856
+ "503":
6857
+ description: Sync failed (Sentry API or persistence error)
6858
+ content:
6859
+ application/json:
6860
+ schema:
6861
+ $ref: "#/components/schemas/SentryTriggerSyncResultDto"
6862
+
6793
6863
  /integrations/github/webhook:
6794
6864
  post:
6795
6865
  tags: [Integrations]
@@ -20320,6 +20390,74 @@ components:
20320
20390
  type: string
20321
20391
  description: Error message when status is error.
20322
20392
 
20393
+ SentryIntegrationStatusDto:
20394
+ type: object
20395
+ additionalProperties: false
20396
+ required: [connected, status]
20397
+ properties:
20398
+ connected:
20399
+ type: boolean
20400
+ description: "True when a type:sentry workspace source is configured."
20401
+ orgSlug:
20402
+ type: string
20403
+ description: Configured Sentry organization slug when connected.
20404
+ orgName:
20405
+ type: string
20406
+ description: Org display name when known from the last successful verify.
20407
+ lastSyncAt:
20408
+ type: string
20409
+ format: date-time
20410
+ nullable: true
20411
+ description: Timestamp of the last monitoring ingest attempt (success or failure).
20412
+ status:
20413
+ type: string
20414
+ enum: [ok, error, never]
20415
+ description: Outcome of the most recent sync (`never` when not yet synced).
20416
+ lastError:
20417
+ type: string
20418
+ nullable: true
20419
+ issueCount:
20420
+ type: integer
20421
+ nullable: true
20422
+ description: Issues (incidents) fetched on the last successful sync (30d lookback).
20423
+ deploymentCount:
20424
+ type: integer
20425
+ nullable: true
20426
+ description: Releases (deployments) fetched on the last successful sync (30d lookback).
20427
+ eventCount:
20428
+ type: integer
20429
+ nullable: true
20430
+ description: Canonical monitoring events upserted on the last successful sync.
20431
+
20432
+ SentryTriggerSyncResultDto:
20433
+ type: object
20434
+ additionalProperties: false
20435
+ required: [status]
20436
+ properties:
20437
+ status:
20438
+ type: string
20439
+ enum: [ok, skipped, error]
20440
+ code:
20441
+ type: string
20442
+ description: Stable machine-readable code (e.g. `sentry_not_connected`).
20443
+ reason:
20444
+ type: string
20445
+ description: Human-readable skip reason when status is skipped.
20446
+ issueCount:
20447
+ type: integer
20448
+ deploymentCount:
20449
+ type: integer
20450
+ eventCount:
20451
+ type: integer
20452
+ bucketsWritten:
20453
+ type: integer
20454
+ description: Weekly dashboard metric buckets updated from monitoring events.
20455
+ durationMs:
20456
+ type: integer
20457
+ error:
20458
+ type: string
20459
+ description: Error message when status is error.
20460
+
20323
20461
  GithubActionsEnableResponseDto:
20324
20462
  type: object
20325
20463
  additionalProperties: false
@@ -24504,6 +24642,10 @@ components:
24504
24642
  - integrations.datadog.removed
24505
24643
  - integrations.datadog.sync_completed
24506
24644
  - integrations.datadog.sync_failed
24645
+ - integrations.sentry.added
24646
+ - integrations.sentry.removed
24647
+ - integrations.sentry.sync_completed
24648
+ - integrations.sentry.sync_failed
24507
24649
  - integrations.zelt.added
24508
24650
  - integrations.zelt.removed
24509
24651
  - report.exported
@@ -24914,7 +25056,7 @@ components:
24914
25056
  properties:
24915
25057
  version:
24916
25058
  type: string
24917
- enum: ["2026-10-25.1"]
25059
+ enum: ["2026-10-26.1"]
24918
25060
  periodDays:
24919
25061
  type: integer
24920
25062
  enum: [90]
@@ -25000,12 +25142,12 @@ components:
25000
25142
  enum: [jira]
25001
25143
  incident:
25002
25144
  type: array
25003
- minItems: 7
25004
- maxItems: 7
25145
+ minItems: 8
25146
+ maxItems: 8
25005
25147
  uniqueItems: true
25006
25148
  items:
25007
25149
  type: string
25008
- enum: [pagerduty, opsgenie, goalert, newrelic, prometheus, grafana, datadog]
25150
+ enum: [pagerduty, opsgenie, goalert, newrelic, prometheus, grafana, datadog, sentry]
25009
25151
  selfManagedGit:
25010
25152
  type: object
25011
25153
  additionalProperties: false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.191.0",
3
+ "version": "2.192.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -2364,6 +2364,46 @@ export interface paths {
2364
2364
  patch?: never;
2365
2365
  trace?: never;
2366
2366
  };
2367
+ "/workspaces/{workspaceId}/integrations/sentry": {
2368
+ parameters: {
2369
+ query?: never;
2370
+ header?: never;
2371
+ path?: never;
2372
+ cookie?: never;
2373
+ };
2374
+ /**
2375
+ * Sentry monitoring integration status
2376
+ * @description Returns whether Sentry is connected for the workspace (org slug + auth token) and the last monitoring ingest sync outcome (incidents/deployments pulled into Quality and DORA metrics).
2377
+ */
2378
+ get: operations["getWorkspaceSentryIntegrationStatus"];
2379
+ put?: never;
2380
+ post?: never;
2381
+ delete?: never;
2382
+ options?: never;
2383
+ head?: never;
2384
+ patch?: never;
2385
+ trace?: never;
2386
+ };
2387
+ "/workspaces/{workspaceId}/integrations/sentry/sync": {
2388
+ parameters: {
2389
+ query?: never;
2390
+ header?: never;
2391
+ path?: never;
2392
+ cookie?: never;
2393
+ };
2394
+ get?: never;
2395
+ put?: never;
2396
+ /**
2397
+ * Trigger Sentry monitoring ingest now
2398
+ * @description Manually polls Sentry for issues (incidents) and releases (deployments), persists canonical monitoring events, and refreshes org-level Quality/DORA dashboard buckets. Requires editor role.
2399
+ */
2400
+ post: operations["postWorkspaceSentryIntegrationSync"];
2401
+ delete?: never;
2402
+ options?: never;
2403
+ head?: never;
2404
+ patch?: never;
2405
+ trace?: never;
2406
+ };
2367
2407
  "/integrations/github/webhook": {
2368
2408
  parameters: {
2369
2409
  query?: never;
@@ -8254,6 +8294,47 @@ export interface components {
8254
8294
  /** @description Error message when status is error. */
8255
8295
  error?: string;
8256
8296
  };
8297
+ SentryIntegrationStatusDto: {
8298
+ /** @description True when a type:sentry workspace source is configured. */
8299
+ connected: boolean;
8300
+ /** @description Configured Sentry organization slug when connected. */
8301
+ orgSlug?: string;
8302
+ /** @description Org display name when known from the last successful verify. */
8303
+ orgName?: string;
8304
+ /**
8305
+ * Format: date-time
8306
+ * @description Timestamp of the last monitoring ingest attempt (success or failure).
8307
+ */
8308
+ lastSyncAt?: string | null;
8309
+ /**
8310
+ * @description Outcome of the most recent sync (`never` when not yet synced).
8311
+ * @enum {string}
8312
+ */
8313
+ status: "ok" | "error" | "never";
8314
+ lastError?: string | null;
8315
+ /** @description Issues (incidents) fetched on the last successful sync (30d lookback). */
8316
+ issueCount?: number | null;
8317
+ /** @description Releases (deployments) fetched on the last successful sync (30d lookback). */
8318
+ deploymentCount?: number | null;
8319
+ /** @description Canonical monitoring events upserted on the last successful sync. */
8320
+ eventCount?: number | null;
8321
+ };
8322
+ SentryTriggerSyncResultDto: {
8323
+ /** @enum {string} */
8324
+ status: "ok" | "skipped" | "error";
8325
+ /** @description Stable machine-readable code (e.g. `sentry_not_connected`). */
8326
+ code?: string;
8327
+ /** @description Human-readable skip reason when status is skipped. */
8328
+ reason?: string;
8329
+ issueCount?: number;
8330
+ deploymentCount?: number;
8331
+ eventCount?: number;
8332
+ /** @description Weekly dashboard metric buckets updated from monitoring events. */
8333
+ bucketsWritten?: number;
8334
+ durationMs?: number;
8335
+ /** @description Error message when status is error. */
8336
+ error?: string;
8337
+ };
8257
8338
  GithubActionsEnableResponseDto: {
8258
8339
  /** @enum {string} */
8259
8340
  outcome: "enabled" | "needs_github" | "permissions_missing" | "error";
@@ -10046,7 +10127,7 @@ export interface components {
10046
10127
  * @description Type of workspace lifecycle event.
10047
10128
  * @enum {string}
10048
10129
  */
10049
- ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.suspended" | "integration.github.unsuspended" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "code_insights.design_run_started" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "rules_skills.soft_quality.override" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.invite_accepted" | "member.invite_rejected" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.datadog.added" | "integrations.datadog.removed" | "integrations.datadog.sync_completed" | "integrations.datadog.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed" | "report.exported" | "report.assessment_stored" | "report.assessment_link_sent" | "report.assessment_link_revoked" | "report.assessment_downloaded" | "report.assessment_hidden" | "report.assessment_restored" | "workspace.aggregate_use.changed" | "workspace.assessment_rollout.changed";
10130
+ ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.suspended" | "integration.github.unsuspended" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "code_insights.design_run_started" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "rules_skills.soft_quality.override" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.invite_accepted" | "member.invite_rejected" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.datadog.added" | "integrations.datadog.removed" | "integrations.datadog.sync_completed" | "integrations.datadog.sync_failed" | "integrations.sentry.added" | "integrations.sentry.removed" | "integrations.sentry.sync_completed" | "integrations.sentry.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed" | "report.exported" | "report.assessment_stored" | "report.assessment_link_sent" | "report.assessment_link_revoked" | "report.assessment_downloaded" | "report.assessment_hidden" | "report.assessment_restored" | "workspace.aggregate_use.changed" | "workspace.assessment_rollout.changed";
10050
10131
  /** @description Current legal-approved opt-in notice, or `unset` while opt-in is unavailable. */
10051
10132
  AggregateUseNoticeStatusDto: {
10052
10133
  /** @enum {string} */
@@ -10209,7 +10290,7 @@ export interface components {
10209
10290
  };
10210
10291
  AssessmentDictionaryDto: {
10211
10292
  /** @enum {string} */
10212
- version: "2026-10-25.1";
10293
+ version: "2026-10-26.1";
10213
10294
  /** @enum {integer} */
10214
10295
  periodDays: 90;
10215
10296
  /** @enum {integer} */
@@ -10245,7 +10326,7 @@ export interface components {
10245
10326
  aiProviders: ("cursor" | "claude" | "copilot")[];
10246
10327
  optionalProviders: {
10247
10328
  roadmap: "jira"[];
10248
- incident: ("pagerduty" | "opsgenie" | "goalert" | "newrelic" | "prometheus" | "grafana" | "datadog")[];
10329
+ incident: ("pagerduty" | "opsgenie" | "goalert" | "newrelic" | "prometheus" | "grafana" | "datadog" | "sentry")[];
10249
10330
  };
10250
10331
  selfManagedGit: {
10251
10332
  /** @enum {string} */
@@ -13283,6 +13364,8 @@ export type GrafanaIntegrationStatusDto = components['schemas']['GrafanaIntegrat
13283
13364
  export type GrafanaTriggerSyncResultDto = components['schemas']['GrafanaTriggerSyncResultDto'];
13284
13365
  export type DatadogIntegrationStatusDto = components['schemas']['DatadogIntegrationStatusDto'];
13285
13366
  export type DatadogTriggerSyncResultDto = components['schemas']['DatadogTriggerSyncResultDto'];
13367
+ export type SentryIntegrationStatusDto = components['schemas']['SentryIntegrationStatusDto'];
13368
+ export type SentryTriggerSyncResultDto = components['schemas']['SentryTriggerSyncResultDto'];
13286
13369
  export type GithubActionsEnableResponseDto = components['schemas']['GithubActionsEnableResponseDto'];
13287
13370
  export type GithubInstallationStatusDto = components['schemas']['GithubInstallationStatusDto'];
13288
13371
  export type GithubInstallUrlRequestDto = components['schemas']['GithubInstallUrlRequestDto'];
@@ -20450,6 +20533,90 @@ export interface operations {
20450
20533
  };
20451
20534
  };
20452
20535
  };
20536
+ getWorkspaceSentryIntegrationStatus: {
20537
+ parameters: {
20538
+ query?: never;
20539
+ header?: never;
20540
+ path: {
20541
+ workspaceId: components["parameters"]["WorkspaceId"];
20542
+ };
20543
+ cookie?: never;
20544
+ };
20545
+ requestBody?: never;
20546
+ responses: {
20547
+ /** @description Sentry integration status */
20548
+ 200: {
20549
+ headers: {
20550
+ [name: string]: unknown;
20551
+ };
20552
+ content: {
20553
+ "application/json": components["schemas"]["SentryIntegrationStatusDto"];
20554
+ };
20555
+ };
20556
+ 401: components["responses"]["Unauthorized"];
20557
+ 403: components["responses"]["Forbidden"];
20558
+ /** @description Workspace does not exist or malformed workspaceId */
20559
+ 404: {
20560
+ headers: {
20561
+ [name: string]: unknown;
20562
+ };
20563
+ content: {
20564
+ "application/json": components["schemas"]["ErrorMessageDto"];
20565
+ };
20566
+ };
20567
+ };
20568
+ };
20569
+ postWorkspaceSentryIntegrationSync: {
20570
+ parameters: {
20571
+ query?: never;
20572
+ header?: never;
20573
+ path: {
20574
+ workspaceId: components["parameters"]["WorkspaceId"];
20575
+ };
20576
+ cookie?: never;
20577
+ };
20578
+ requestBody?: never;
20579
+ responses: {
20580
+ /** @description Sync completed */
20581
+ 200: {
20582
+ headers: {
20583
+ [name: string]: unknown;
20584
+ };
20585
+ content: {
20586
+ "application/json": components["schemas"]["SentryTriggerSyncResultDto"];
20587
+ };
20588
+ };
20589
+ 401: components["responses"]["Unauthorized"];
20590
+ 403: components["responses"]["Forbidden"];
20591
+ /** @description Workspace does not exist or malformed workspaceId */
20592
+ 404: {
20593
+ headers: {
20594
+ [name: string]: unknown;
20595
+ };
20596
+ content: {
20597
+ "application/json": components["schemas"]["ErrorMessageDto"];
20598
+ };
20599
+ };
20600
+ /** @description Sentry is not connected on this workspace */
20601
+ 422: {
20602
+ headers: {
20603
+ [name: string]: unknown;
20604
+ };
20605
+ content: {
20606
+ "application/json": components["schemas"]["SentryTriggerSyncResultDto"];
20607
+ };
20608
+ };
20609
+ /** @description Sync failed (Sentry API or persistence error) */
20610
+ 503: {
20611
+ headers: {
20612
+ [name: string]: unknown;
20613
+ };
20614
+ content: {
20615
+ "application/json": components["schemas"]["SentryTriggerSyncResultDto"];
20616
+ };
20617
+ };
20618
+ };
20619
+ };
20453
20620
  postGithubWebhook: {
20454
20621
  parameters: {
20455
20622
  query?: never;