@thinkai/tai-api-contract 2.61.0 → 2.63.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.
- package/dist/generated/openapi.d.ts +532 -4
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -1
- package/openapi/openapi.yaml +636 -7
- package/package.json +1 -1
- package/src/generated/openapi.ts +532 -4
- package/src/index.ts +122 -0
package/openapi/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: ThinkAI API
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.63.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}/...`.
|
|
@@ -54,6 +54,8 @@ tags:
|
|
|
54
54
|
description: Agentic Foundation pillars (epic #278); reads stored repository readiness snapshots
|
|
55
55
|
- name: YourAiJourney
|
|
56
56
|
description: Your AI Journey dashboard aggregators (epic #267); composes readiness, metrics, and AI-spend data for the /dashboard page
|
|
57
|
+
- name: SdlcInsights
|
|
58
|
+
description: SDLC Engineering Health insights — DORA, CI, collaboration, security, governance, and operational metrics for `/insights/sdlc/overview`.
|
|
57
59
|
- name: WorkspaceActivity
|
|
58
60
|
description: Workspace-wide lifecycle activity log — repo add/remove/re-add and integration lifecycle events (issue #515).
|
|
59
61
|
- name: PlatformAdmin
|
|
@@ -2610,6 +2612,115 @@ paths:
|
|
|
2610
2612
|
"404":
|
|
2611
2613
|
description: Workspace does not exist or malformed workspaceId
|
|
2612
2614
|
|
|
2615
|
+
/workspaces/{workspaceId}/insights/sdlc/overview:
|
|
2616
|
+
get:
|
|
2617
|
+
tags: [SdlcInsights]
|
|
2618
|
+
summary: SDLC insights — Engineering Health overview
|
|
2619
|
+
description: >
|
|
2620
|
+
Engineering Health dashboard for `/insights/sdlc/overview`. Returns precomputed
|
|
2621
|
+
DORA, CI, collaboration, security, governance, and operational metrics aggregated
|
|
2622
|
+
at calendar-day granularity for the selected window. Filter params mirror other
|
|
2623
|
+
Measure insights routes plus optional `repoIds` scope.
|
|
2624
|
+
operationId: getSdlcInsightsOverview
|
|
2625
|
+
parameters:
|
|
2626
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
2627
|
+
- $ref: "#/components/parameters/InsightsSdlcRangeId"
|
|
2628
|
+
- $ref: "#/components/parameters/InsightsDepartmentFilter"
|
|
2629
|
+
- name: team
|
|
2630
|
+
in: query
|
|
2631
|
+
description: Team name filter; send `All teams` to include every team.
|
|
2632
|
+
schema:
|
|
2633
|
+
type: string
|
|
2634
|
+
default: All teams
|
|
2635
|
+
- name: repoIds
|
|
2636
|
+
in: query
|
|
2637
|
+
description: Comma-separated internal repo ids; omit or empty for all repos.
|
|
2638
|
+
schema:
|
|
2639
|
+
type: string
|
|
2640
|
+
responses:
|
|
2641
|
+
"200":
|
|
2642
|
+
description: Engineering Health overview payload
|
|
2643
|
+
content:
|
|
2644
|
+
application/json:
|
|
2645
|
+
schema:
|
|
2646
|
+
$ref: "#/components/schemas/SdlcOverviewDto"
|
|
2647
|
+
"400":
|
|
2648
|
+
description: Invalid query parameters
|
|
2649
|
+
content:
|
|
2650
|
+
application/json:
|
|
2651
|
+
schema:
|
|
2652
|
+
type: object
|
|
2653
|
+
required: [error]
|
|
2654
|
+
properties:
|
|
2655
|
+
error: { type: string, example: invalid_query }
|
|
2656
|
+
"401":
|
|
2657
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2658
|
+
"403":
|
|
2659
|
+
$ref: "#/components/responses/Forbidden"
|
|
2660
|
+
"404":
|
|
2661
|
+
description: Workspace does not exist or malformed workspaceId
|
|
2662
|
+
|
|
2663
|
+
/workspaces/{workspaceId}/insights/sdlc/drilldown/{metricId}:
|
|
2664
|
+
get:
|
|
2665
|
+
tags: [SdlcInsights]
|
|
2666
|
+
summary: SDLC insights — metric drill-down entities
|
|
2667
|
+
description: >
|
|
2668
|
+
Paginated entity list for a single Engineering Health metric (failed workflow runs,
|
|
2669
|
+
PRs, alerts, etc.). Available only when the overview marks `drilldownAvailable: true`.
|
|
2670
|
+
operationId: getSdlcInsightsDrilldown
|
|
2671
|
+
parameters:
|
|
2672
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
2673
|
+
- name: metricId
|
|
2674
|
+
in: path
|
|
2675
|
+
required: true
|
|
2676
|
+
schema:
|
|
2677
|
+
$ref: "#/components/schemas/SdlcMetricId"
|
|
2678
|
+
- $ref: "#/components/parameters/InsightsSdlcRangeId"
|
|
2679
|
+
- $ref: "#/components/parameters/InsightsDepartmentFilter"
|
|
2680
|
+
- name: team
|
|
2681
|
+
in: query
|
|
2682
|
+
schema:
|
|
2683
|
+
type: string
|
|
2684
|
+
default: All teams
|
|
2685
|
+
- name: repoIds
|
|
2686
|
+
in: query
|
|
2687
|
+
schema:
|
|
2688
|
+
type: string
|
|
2689
|
+
- name: cursor
|
|
2690
|
+
in: query
|
|
2691
|
+
description: Opaque pagination cursor from a prior response.
|
|
2692
|
+
schema:
|
|
2693
|
+
type: string
|
|
2694
|
+
- name: limit
|
|
2695
|
+
in: query
|
|
2696
|
+
schema:
|
|
2697
|
+
type: integer
|
|
2698
|
+
minimum: 1
|
|
2699
|
+
maximum: 100
|
|
2700
|
+
default: 25
|
|
2701
|
+
responses:
|
|
2702
|
+
"200":
|
|
2703
|
+
description: Drill-down page
|
|
2704
|
+
content:
|
|
2705
|
+
application/json:
|
|
2706
|
+
schema:
|
|
2707
|
+
$ref: "#/components/schemas/SdlcDrilldownDto"
|
|
2708
|
+
"400":
|
|
2709
|
+
description: Invalid query parameters
|
|
2710
|
+
content:
|
|
2711
|
+
application/json:
|
|
2712
|
+
schema:
|
|
2713
|
+
type: object
|
|
2714
|
+
required: [error]
|
|
2715
|
+
properties:
|
|
2716
|
+
error: { type: string, example: invalid_query }
|
|
2717
|
+
"401":
|
|
2718
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2719
|
+
"403":
|
|
2720
|
+
$ref: "#/components/responses/Forbidden"
|
|
2721
|
+
"404":
|
|
2722
|
+
description: Workspace or metric not found
|
|
2723
|
+
|
|
2613
2724
|
/workspaces/{workspaceId}/integrations/ai-tool/{provider}/members:
|
|
2614
2725
|
get:
|
|
2615
2726
|
tags: [Workspace]
|
|
@@ -3008,6 +3119,9 @@ paths:
|
|
|
3008
3119
|
operationId: postGithubInstallUrl
|
|
3009
3120
|
description: >
|
|
3010
3121
|
Creates a GitHub App installation URL scoped to the workspace and caller.
|
|
3122
|
+
Default intent `connect` installs ThinkAI Platform Insights (read).
|
|
3123
|
+
Intent `enable_fixes` installs ThinkAI Platform Automations (write) for the Insights
|
|
3124
|
+
installation identified by `installationId`.
|
|
3011
3125
|
Body is optional; when omitted, defaults to `/onboarding/integrations` return path.
|
|
3012
3126
|
Optional `pickerSession` (from user OAuth org picker) recovers `returnPath` from the server-side picker snapshot when the multi-hop authorize→install flow should return to the page where OAuth started.
|
|
3013
3127
|
security:
|
|
@@ -3043,6 +3157,91 @@ paths:
|
|
|
3043
3157
|
application/json:
|
|
3044
3158
|
schema:
|
|
3045
3159
|
$ref: "#/components/schemas/ErrorMessageDto"
|
|
3160
|
+
"503":
|
|
3161
|
+
description: Requested GitHub App is not configured
|
|
3162
|
+
content:
|
|
3163
|
+
application/json:
|
|
3164
|
+
schema:
|
|
3165
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
3166
|
+
|
|
3167
|
+
/workspaces/{workspaceId}/integrations/github/installations/{installationId}/automated-fixes/enable:
|
|
3168
|
+
post:
|
|
3169
|
+
tags: [Integrations]
|
|
3170
|
+
summary: Enable automated fixes for a GitHub installation
|
|
3171
|
+
operationId: postGithubAutomatedFixesEnable
|
|
3172
|
+
description: >
|
|
3173
|
+
Workspace-level enable for automated fixes on an Insights (read) installation.
|
|
3174
|
+
If an Automations (write) installation is already linked, flips `automatedFixesEnabled`
|
|
3175
|
+
without reinstalling. Otherwise returns `outcome: needs_install` so the client can
|
|
3176
|
+
call install-url with intent=enable_fixes.
|
|
3177
|
+
security:
|
|
3178
|
+
- bearerAuth: []
|
|
3179
|
+
parameters:
|
|
3180
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
3181
|
+
- name: installationId
|
|
3182
|
+
in: path
|
|
3183
|
+
required: true
|
|
3184
|
+
schema:
|
|
3185
|
+
type: string
|
|
3186
|
+
minLength: 1
|
|
3187
|
+
maxLength: 64
|
|
3188
|
+
responses:
|
|
3189
|
+
"200":
|
|
3190
|
+
description: Enable result
|
|
3191
|
+
content:
|
|
3192
|
+
application/json:
|
|
3193
|
+
schema:
|
|
3194
|
+
$ref: "#/components/schemas/GithubAutomatedFixesEnableResponseDto"
|
|
3195
|
+
"401":
|
|
3196
|
+
$ref: "#/components/responses/Unauthorized"
|
|
3197
|
+
"403":
|
|
3198
|
+
$ref: "#/components/responses/Forbidden"
|
|
3199
|
+
"404":
|
|
3200
|
+
description: Workspace or installation not found
|
|
3201
|
+
content:
|
|
3202
|
+
application/json:
|
|
3203
|
+
schema:
|
|
3204
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
3205
|
+
"503":
|
|
3206
|
+
description: Automations GitHub App not configured
|
|
3207
|
+
content:
|
|
3208
|
+
application/json:
|
|
3209
|
+
schema:
|
|
3210
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
3211
|
+
|
|
3212
|
+
/workspaces/{workspaceId}/integrations/github/installations/{installationId}/automated-fixes:
|
|
3213
|
+
delete:
|
|
3214
|
+
tags: [Integrations]
|
|
3215
|
+
summary: Disable automated fixes for a GitHub installation
|
|
3216
|
+
operationId: deleteGithubAutomatedFixes
|
|
3217
|
+
description: >
|
|
3218
|
+
Workspace-level disable. Clears `automatedFixesEnabled` but keeps the linked Automations
|
|
3219
|
+
write installation id so re-enable does not require reinstall. Does not uninstall the
|
|
3220
|
+
Automations app from GitHub.
|
|
3221
|
+
security:
|
|
3222
|
+
- bearerAuth: []
|
|
3223
|
+
parameters:
|
|
3224
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
3225
|
+
- name: installationId
|
|
3226
|
+
in: path
|
|
3227
|
+
required: true
|
|
3228
|
+
schema:
|
|
3229
|
+
type: string
|
|
3230
|
+
minLength: 1
|
|
3231
|
+
maxLength: 64
|
|
3232
|
+
responses:
|
|
3233
|
+
"204":
|
|
3234
|
+
description: Automated fixes disabled (or already disabled)
|
|
3235
|
+
"401":
|
|
3236
|
+
$ref: "#/components/responses/Unauthorized"
|
|
3237
|
+
"403":
|
|
3238
|
+
$ref: "#/components/responses/Forbidden"
|
|
3239
|
+
"404":
|
|
3240
|
+
description: Workspace or installation not found
|
|
3241
|
+
content:
|
|
3242
|
+
application/json:
|
|
3243
|
+
schema:
|
|
3244
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
3046
3245
|
|
|
3047
3246
|
/workspaces/{workspaceId}/integrations/github/user-authorize-url:
|
|
3048
3247
|
post:
|
|
@@ -5609,6 +5808,31 @@ paths:
|
|
|
5609
5808
|
application/json:
|
|
5610
5809
|
schema:
|
|
5611
5810
|
$ref: "#/components/schemas/ErrorMessageDto"
|
|
5811
|
+
"422":
|
|
5812
|
+
description: GitHub installation lacks write permissions required for automated fix PRs
|
|
5813
|
+
content:
|
|
5814
|
+
application/json:
|
|
5815
|
+
schema:
|
|
5816
|
+
$ref: "#/components/schemas/GithubWritePermissionsRequiredErrorDto"
|
|
5817
|
+
examples:
|
|
5818
|
+
write_required:
|
|
5819
|
+
value:
|
|
5820
|
+
error: github_write_permissions_required
|
|
5821
|
+
missingPermissions:
|
|
5822
|
+
- name: contents
|
|
5823
|
+
required: write
|
|
5824
|
+
granted: read
|
|
5825
|
+
- name: pull_requests
|
|
5826
|
+
required: write
|
|
5827
|
+
granted: read
|
|
5828
|
+
manageUrl: https://github.com/settings/installations/12345
|
|
5829
|
+
writeUpgradeMessage: "Automated fixes need write access to your repositories: Contents (Read and write) and Pull requests (Read and write). Fixes open pull requests you review — nothing is merged automatically. Approve the update on GitHub to enable fix PRs."
|
|
5830
|
+
"503":
|
|
5831
|
+
description: GitHub installation permissions could not be verified
|
|
5832
|
+
content:
|
|
5833
|
+
application/json:
|
|
5834
|
+
schema:
|
|
5835
|
+
$ref: "#/components/schemas/GithubPermissionsCheckFailedErrorDto"
|
|
5612
5836
|
|
|
5613
5837
|
/workspaces/{workspaceId}/readiness/fixes/{fixId}/retrigger:
|
|
5614
5838
|
post:
|
|
@@ -5652,6 +5876,18 @@ paths:
|
|
|
5652
5876
|
value:
|
|
5653
5877
|
error: Fix is currently generating and cannot be superseded
|
|
5654
5878
|
code: fix_generating
|
|
5879
|
+
"422":
|
|
5880
|
+
description: GitHub installation lacks write permissions required for automated fix PRs
|
|
5881
|
+
content:
|
|
5882
|
+
application/json:
|
|
5883
|
+
schema:
|
|
5884
|
+
$ref: "#/components/schemas/GithubWritePermissionsRequiredErrorDto"
|
|
5885
|
+
"503":
|
|
5886
|
+
description: GitHub installation permissions could not be verified
|
|
5887
|
+
content:
|
|
5888
|
+
application/json:
|
|
5889
|
+
schema:
|
|
5890
|
+
$ref: "#/components/schemas/GithubPermissionsCheckFailedErrorDto"
|
|
5655
5891
|
|
|
5656
5892
|
/workspaces/{workspaceId}/cursor/platform-key-consent:
|
|
5657
5893
|
put:
|
|
@@ -6290,6 +6526,37 @@ paths:
|
|
|
6290
6526
|
|
|
6291
6527
|
# ── Your AI Journey (/dashboard) — epic #267 ─────────────────────────────
|
|
6292
6528
|
|
|
6529
|
+
/workspaces/{workspaceId}/your-ai-journey/hero:
|
|
6530
|
+
get:
|
|
6531
|
+
tags: [YourAiJourney]
|
|
6532
|
+
summary: First-paint hero payload for the /dashboard page
|
|
6533
|
+
description: >
|
|
6534
|
+
Returns analytics and productivity in one response so the dashboard hero can
|
|
6535
|
+
paint with a single RTT (auth + membership checked once). Nested payloads match
|
|
6536
|
+
the dedicated analytics and productivity routes and reuse those routes' 60s
|
|
6537
|
+
caches (there is no separate hero-level cache). `generatedAt` on the hero
|
|
6538
|
+
envelope and both nested payloads is set to the same assembly timestamp.
|
|
6539
|
+
operationId: getYourAiJourneyHero
|
|
6540
|
+
parameters:
|
|
6541
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
6542
|
+
responses:
|
|
6543
|
+
"200":
|
|
6544
|
+
description: Hero bootstrap payload
|
|
6545
|
+
content:
|
|
6546
|
+
application/json:
|
|
6547
|
+
schema:
|
|
6548
|
+
$ref: "#/components/schemas/YourAiJourneyHeroDto"
|
|
6549
|
+
"401":
|
|
6550
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6551
|
+
"403":
|
|
6552
|
+
$ref: "#/components/responses/Forbidden"
|
|
6553
|
+
"404":
|
|
6554
|
+
description: Workspace does not exist
|
|
6555
|
+
content:
|
|
6556
|
+
application/json:
|
|
6557
|
+
schema:
|
|
6558
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
6559
|
+
|
|
6293
6560
|
/workspaces/{workspaceId}/your-ai-journey/analytics:
|
|
6294
6561
|
get:
|
|
6295
6562
|
tags: [YourAiJourney]
|
|
@@ -6929,6 +7196,16 @@ components:
|
|
|
6929
7196
|
schema:
|
|
6930
7197
|
type: string
|
|
6931
7198
|
format: date
|
|
7199
|
+
InsightsSdlcRangeId:
|
|
7200
|
+
name: rangeId
|
|
7201
|
+
in: query
|
|
7202
|
+
description: >
|
|
7203
|
+
Day-level Measure window. Presets: `7d`, `30d`, `90d`, `180d`. Custom inclusive
|
|
7204
|
+
calendar range: `cr:YYYY-MM-DD:YYYY-MM-DD` (max span 180 days).
|
|
7205
|
+
schema:
|
|
7206
|
+
type: string
|
|
7207
|
+
default: 30d
|
|
7208
|
+
example: 30d
|
|
6932
7209
|
InsightsDepartmentFilter:
|
|
6933
7210
|
name: department
|
|
6934
7211
|
in: query
|
|
@@ -10723,9 +11000,50 @@ components:
|
|
|
10723
11000
|
nullable: true
|
|
10724
11001
|
description: Null when the installation has not granted this permission.
|
|
10725
11002
|
|
|
11003
|
+
GithubWritePermissionsRequiredErrorDto:
|
|
11004
|
+
type: object
|
|
11005
|
+
additionalProperties: false
|
|
11006
|
+
required: [error, missingPermissions]
|
|
11007
|
+
properties:
|
|
11008
|
+
error:
|
|
11009
|
+
type: string
|
|
11010
|
+
enum: [github_write_permissions_required]
|
|
11011
|
+
missingPermissions:
|
|
11012
|
+
type: array
|
|
11013
|
+
items:
|
|
11014
|
+
$ref: "#/components/schemas/GithubMissingPermissionDto"
|
|
11015
|
+
manageUrl:
|
|
11016
|
+
type: string
|
|
11017
|
+
nullable: true
|
|
11018
|
+
description: GitHub installation settings URL to approve write permissions.
|
|
11019
|
+
writeUpgradeMessage:
|
|
11020
|
+
type: string
|
|
11021
|
+
nullable: true
|
|
11022
|
+
description: Human-readable summary of the write permission upgrade.
|
|
11023
|
+
|
|
11024
|
+
GithubPermissionsCheckFailedErrorDto:
|
|
11025
|
+
type: object
|
|
11026
|
+
additionalProperties: false
|
|
11027
|
+
required: [error]
|
|
11028
|
+
properties:
|
|
11029
|
+
error:
|
|
11030
|
+
type: string
|
|
11031
|
+
enum: [github_permissions_check_failed]
|
|
11032
|
+
description: GitHub installation permissions could not be verified (transient upstream failure).
|
|
11033
|
+
|
|
10726
11034
|
GithubInstallationSummaryDto:
|
|
10727
11035
|
type: object
|
|
10728
|
-
required:
|
|
11036
|
+
required:
|
|
11037
|
+
- installationId
|
|
11038
|
+
- account
|
|
11039
|
+
- repos
|
|
11040
|
+
- permissionsUpgradeRequired
|
|
11041
|
+
- corePermissionsOk
|
|
11042
|
+
- writePermissionsOk
|
|
11043
|
+
- writePermissionsUpgradeRequired
|
|
11044
|
+
- automatedFixesEnabled
|
|
11045
|
+
- writeAppInstalled
|
|
11046
|
+
- canEnableAutomatedFixes
|
|
10729
11047
|
properties:
|
|
10730
11048
|
installationId:
|
|
10731
11049
|
type: string
|
|
@@ -10747,16 +11065,61 @@ components:
|
|
|
10747
11065
|
permissionsUpgradeRequired:
|
|
10748
11066
|
type: boolean
|
|
10749
11067
|
description: >
|
|
10750
|
-
True when this installation
|
|
10751
|
-
|
|
11068
|
+
True when this installation lacks core read permissions required for connect and analysis.
|
|
11069
|
+
Alias for `!corePermissionsOk`.
|
|
11070
|
+
corePermissionsOk:
|
|
11071
|
+
type: boolean
|
|
11072
|
+
description: >
|
|
11073
|
+
True when installation grants read permissions for repository analysis (contents, metadata,
|
|
11074
|
+
pull requests, and members for org installs).
|
|
11075
|
+
writePermissionsOk:
|
|
11076
|
+
type: boolean
|
|
11077
|
+
description: >
|
|
11078
|
+
True when automated fixes are enabled and the linked Automations (write) installation
|
|
11079
|
+
grants write permissions required for fix PRs.
|
|
11080
|
+
writePermissionsUpgradeRequired:
|
|
11081
|
+
type: boolean
|
|
11082
|
+
description: Alias for `!writePermissionsOk`.
|
|
10752
11083
|
missingPermissions:
|
|
10753
11084
|
type: array
|
|
10754
11085
|
items:
|
|
10755
11086
|
$ref: "#/components/schemas/GithubMissingPermissionDto"
|
|
11087
|
+
description: Core read permissions still needed for connect and analysis.
|
|
11088
|
+
missingWritePermissions:
|
|
11089
|
+
type: array
|
|
11090
|
+
items:
|
|
11091
|
+
$ref: "#/components/schemas/GithubMissingPermissionDto"
|
|
11092
|
+
description: Write permissions still needed for automated fix PRs.
|
|
10756
11093
|
upgradeMessage:
|
|
10757
11094
|
type: string
|
|
10758
11095
|
nullable: true
|
|
10759
|
-
description: Human-readable summary for UI when
|
|
11096
|
+
description: Human-readable summary for UI when core permissions are missing.
|
|
11097
|
+
writeUpgradeMessage:
|
|
11098
|
+
type: string
|
|
11099
|
+
nullable: true
|
|
11100
|
+
description: Human-readable summary for UI when write permissions are missing.
|
|
11101
|
+
automatedFixesEnabled:
|
|
11102
|
+
type: boolean
|
|
11103
|
+
description: >
|
|
11104
|
+
True when this workspace has enabled automated fixes for this Insights (read)
|
|
11105
|
+
installation and linked a ThinkAI Platform Automations (write) installation.
|
|
11106
|
+
writeAppInstalled:
|
|
11107
|
+
type: boolean
|
|
11108
|
+
description: True when an Automations (write) GitHub App installation is linked.
|
|
11109
|
+
writeInstallationId:
|
|
11110
|
+
type: string
|
|
11111
|
+
nullable: true
|
|
11112
|
+
description: GitHub installation id for the Automations (write) app, when linked.
|
|
11113
|
+
writeManageUrl:
|
|
11114
|
+
type: string
|
|
11115
|
+
format: uri
|
|
11116
|
+
nullable: true
|
|
11117
|
+
description: GitHub settings URL for the Automations (write) installation.
|
|
11118
|
+
canEnableAutomatedFixes:
|
|
11119
|
+
type: boolean
|
|
11120
|
+
description: >
|
|
11121
|
+
True when the Automations app is configured and automated fixes are not yet
|
|
11122
|
+
enabled for this installation (UI may show Enable automated fixes).
|
|
10760
11123
|
|
|
10761
11124
|
GithubPendingApprovalDto:
|
|
10762
11125
|
type: object
|
|
@@ -11041,7 +11404,13 @@ components:
|
|
|
11041
11404
|
|
|
11042
11405
|
GithubInstallationStatusDto:
|
|
11043
11406
|
type: object
|
|
11044
|
-
required:
|
|
11407
|
+
required:
|
|
11408
|
+
- installed
|
|
11409
|
+
- installations
|
|
11410
|
+
- permissionsUpgradeRequired
|
|
11411
|
+
- corePermissionsOk
|
|
11412
|
+
- writePermissionsOk
|
|
11413
|
+
- writePermissionsUpgradeRequired
|
|
11045
11414
|
properties:
|
|
11046
11415
|
installed:
|
|
11047
11416
|
type: boolean
|
|
@@ -11051,7 +11420,25 @@ components:
|
|
|
11051
11420
|
$ref: "#/components/schemas/GithubInstallationSummaryDto"
|
|
11052
11421
|
permissionsUpgradeRequired:
|
|
11053
11422
|
type: boolean
|
|
11054
|
-
description: True if any connected installation
|
|
11423
|
+
description: True if any connected installation lacks core read permissions. Alias for `!corePermissionsOk`.
|
|
11424
|
+
corePermissionsOk:
|
|
11425
|
+
type: boolean
|
|
11426
|
+
description: True when every connected installation grants core read permissions.
|
|
11427
|
+
writePermissionsOk:
|
|
11428
|
+
type: boolean
|
|
11429
|
+
description: True when every connected installation grants write permissions for automated fixes.
|
|
11430
|
+
writePermissionsUpgradeRequired:
|
|
11431
|
+
type: boolean
|
|
11432
|
+
description: True when any connected installation lacks write permissions for automated fixes.
|
|
11433
|
+
missingWritePermissions:
|
|
11434
|
+
type: array
|
|
11435
|
+
items:
|
|
11436
|
+
$ref: "#/components/schemas/GithubMissingPermissionDto"
|
|
11437
|
+
description: Aggregated write permissions missing on installations that lack write access.
|
|
11438
|
+
writeUpgradeMessage:
|
|
11439
|
+
type: string
|
|
11440
|
+
nullable: true
|
|
11441
|
+
description: Human-readable summary when write permissions are missing.
|
|
11055
11442
|
pendingApproval:
|
|
11056
11443
|
nullable: true
|
|
11057
11444
|
allOf:
|
|
@@ -11127,6 +11514,17 @@ components:
|
|
|
11127
11514
|
format: uri
|
|
11128
11515
|
maxLength: 256
|
|
11129
11516
|
description: SPA origin to redirect back to after OAuth; must match server spaOrigins allowlist.
|
|
11517
|
+
intent:
|
|
11518
|
+
type: string
|
|
11519
|
+
enum: [connect, enable_fixes]
|
|
11520
|
+
description: >
|
|
11521
|
+
connect installs ThinkAI Platform Insights (read). enable_fixes installs ThinkAI Platform
|
|
11522
|
+
Automations (write) for the Insights installation identified by installationId.
|
|
11523
|
+
installationId:
|
|
11524
|
+
type: string
|
|
11525
|
+
minLength: 1
|
|
11526
|
+
maxLength: 64
|
|
11527
|
+
description: Insights (read) installation id required when intent is enable_fixes.
|
|
11130
11528
|
|
|
11131
11529
|
GithubInstallUrlResponseDto:
|
|
11132
11530
|
type: object
|
|
@@ -11142,6 +11540,22 @@ components:
|
|
|
11142
11540
|
minLength: 16
|
|
11143
11541
|
maxLength: 128
|
|
11144
11542
|
|
|
11543
|
+
GithubAutomatedFixesEnableResponseDto:
|
|
11544
|
+
type: object
|
|
11545
|
+
additionalProperties: false
|
|
11546
|
+
required: [outcome]
|
|
11547
|
+
properties:
|
|
11548
|
+
outcome:
|
|
11549
|
+
type: string
|
|
11550
|
+
enum: [enabled, needs_install]
|
|
11551
|
+
description: >
|
|
11552
|
+
enabled — write app already linked and flag flipped; needs_install — client should
|
|
11553
|
+
call install-url with intent=enable_fixes.
|
|
11554
|
+
status:
|
|
11555
|
+
allOf:
|
|
11556
|
+
- $ref: "#/components/schemas/GithubInstallationStatusDto"
|
|
11557
|
+
description: Present when outcome is enabled.
|
|
11558
|
+
|
|
11145
11559
|
GithubUserAuthorizeUrlRequestDto:
|
|
11146
11560
|
type: object
|
|
11147
11561
|
additionalProperties: false
|
|
@@ -13183,6 +13597,24 @@ components:
|
|
|
13183
13597
|
totalFixedIssues:
|
|
13184
13598
|
type: integer
|
|
13185
13599
|
|
|
13600
|
+
YourAiJourneyHeroDto:
|
|
13601
|
+
type: object
|
|
13602
|
+
required: [workspaceId, generatedAt, analytics, productivity]
|
|
13603
|
+
properties:
|
|
13604
|
+
workspaceId:
|
|
13605
|
+
type: string
|
|
13606
|
+
format: uuid
|
|
13607
|
+
generatedAt:
|
|
13608
|
+
type: string
|
|
13609
|
+
format: date-time
|
|
13610
|
+
description: >
|
|
13611
|
+
Assembly timestamp for this hero response; also written onto
|
|
13612
|
+
analytics.generatedAt and productivity.generatedAt so all three match.
|
|
13613
|
+
analytics:
|
|
13614
|
+
$ref: "#/components/schemas/YourAiJourneyAnalyticsDto"
|
|
13615
|
+
productivity:
|
|
13616
|
+
$ref: "#/components/schemas/DashboardProductivityDto"
|
|
13617
|
+
|
|
13186
13618
|
YourAiJourneyAnalyticsDto:
|
|
13187
13619
|
type: object
|
|
13188
13620
|
required: [workspaceId, generatedAt, windowStart, windowEnd, journey, readiness, prSignals]
|
|
@@ -13874,3 +14306,200 @@ components:
|
|
|
13874
14306
|
type: string
|
|
13875
14307
|
format: date-time
|
|
13876
14308
|
description: Timestamp of the most recent contributing run (UTC).
|
|
14309
|
+
|
|
14310
|
+
SdlcModuleId:
|
|
14311
|
+
type: string
|
|
14312
|
+
enum:
|
|
14313
|
+
- dora
|
|
14314
|
+
- ci-pipeline
|
|
14315
|
+
- collaboration-pr
|
|
14316
|
+
- security-risk
|
|
14317
|
+
- governance-architecture
|
|
14318
|
+
- financial-operational
|
|
14319
|
+
|
|
14320
|
+
SdlcMetricId:
|
|
14321
|
+
type: string
|
|
14322
|
+
enum:
|
|
14323
|
+
- dora-deployment-frequency
|
|
14324
|
+
- dora-lead-time
|
|
14325
|
+
- dora-cfr
|
|
14326
|
+
- dora-mttr
|
|
14327
|
+
- ci-success-rate
|
|
14328
|
+
- ci-duration-p50-p95
|
|
14329
|
+
- ci-flakiness
|
|
14330
|
+
- ci-queue-wait
|
|
14331
|
+
- ci-cache-hit
|
|
14332
|
+
- pr-review-time
|
|
14333
|
+
- pr-bus-factor
|
|
14334
|
+
- pr-size
|
|
14335
|
+
- pr-abandonment
|
|
14336
|
+
- pr-review-depth
|
|
14337
|
+
- pr-draft-duration
|
|
14338
|
+
- pr-merge-conflicts
|
|
14339
|
+
- pr-commit-density
|
|
14340
|
+
- sec-dependabot-backlog
|
|
14341
|
+
- sec-vuln-mttr
|
|
14342
|
+
- sec-secret-scanning
|
|
14343
|
+
- sec-self-approvals
|
|
14344
|
+
- sec-unreviewed-merge
|
|
14345
|
+
- gov-branch-protection
|
|
14346
|
+
- gov-stale-branches
|
|
14347
|
+
- gov-orphaned-repos
|
|
14348
|
+
- gov-readme-health
|
|
14349
|
+
- gov-codeowners
|
|
14350
|
+
- gov-issue-pr-linkage
|
|
14351
|
+
- fin-gha-minutes
|
|
14352
|
+
- fin-copilot-utilization
|
|
14353
|
+
- fin-org-inactivity
|
|
14354
|
+
- fin-env-drift
|
|
14355
|
+
- fin-release-cadence
|
|
14356
|
+
- fin-api-rate-limit
|
|
14357
|
+
|
|
14358
|
+
SdlcMetricDataStatus:
|
|
14359
|
+
type: string
|
|
14360
|
+
enum: [live, preview, unavailable]
|
|
14361
|
+
|
|
14362
|
+
SdlcMetricHealthStatus:
|
|
14363
|
+
type: string
|
|
14364
|
+
enum: [healthy, warning, critical, unknown]
|
|
14365
|
+
|
|
14366
|
+
SdlcBenchmarkBand:
|
|
14367
|
+
type: string
|
|
14368
|
+
enum: [elite, high, medium, low]
|
|
14369
|
+
|
|
14370
|
+
SdlcMetricTrendDto:
|
|
14371
|
+
type: object
|
|
14372
|
+
required: [direction]
|
|
14373
|
+
properties:
|
|
14374
|
+
direction:
|
|
14375
|
+
type: string
|
|
14376
|
+
enum: [up, down, flat]
|
|
14377
|
+
deltaPercent:
|
|
14378
|
+
type: number
|
|
14379
|
+
|
|
14380
|
+
SdlcDailySeriesPointDto:
|
|
14381
|
+
type: object
|
|
14382
|
+
required: [date, value]
|
|
14383
|
+
properties:
|
|
14384
|
+
date:
|
|
14385
|
+
type: string
|
|
14386
|
+
format: date
|
|
14387
|
+
description: Inclusive ISO calendar day (UTC).
|
|
14388
|
+
value:
|
|
14389
|
+
type: number
|
|
14390
|
+
|
|
14391
|
+
SdlcMetricDto:
|
|
14392
|
+
type: object
|
|
14393
|
+
required: [id, name, dataStatus, healthStatus, value, drilldownAvailable]
|
|
14394
|
+
properties:
|
|
14395
|
+
id:
|
|
14396
|
+
$ref: "#/components/schemas/SdlcMetricId"
|
|
14397
|
+
name:
|
|
14398
|
+
type: string
|
|
14399
|
+
dataStatus:
|
|
14400
|
+
$ref: "#/components/schemas/SdlcMetricDataStatus"
|
|
14401
|
+
healthStatus:
|
|
14402
|
+
$ref: "#/components/schemas/SdlcMetricHealthStatus"
|
|
14403
|
+
value:
|
|
14404
|
+
oneOf:
|
|
14405
|
+
- type: number
|
|
14406
|
+
- type: string
|
|
14407
|
+
nullable: true
|
|
14408
|
+
unit:
|
|
14409
|
+
type: string
|
|
14410
|
+
secondaryValue:
|
|
14411
|
+
oneOf:
|
|
14412
|
+
- type: number
|
|
14413
|
+
- type: string
|
|
14414
|
+
nullable: true
|
|
14415
|
+
secondaryLabel:
|
|
14416
|
+
type: string
|
|
14417
|
+
trend:
|
|
14418
|
+
$ref: "#/components/schemas/SdlcMetricTrendDto"
|
|
14419
|
+
benchmarkBand:
|
|
14420
|
+
$ref: "#/components/schemas/SdlcBenchmarkBand"
|
|
14421
|
+
drilldownAvailable:
|
|
14422
|
+
type: boolean
|
|
14423
|
+
dailySeries:
|
|
14424
|
+
type: array
|
|
14425
|
+
items:
|
|
14426
|
+
$ref: "#/components/schemas/SdlcDailySeriesPointDto"
|
|
14427
|
+
unavailableReason:
|
|
14428
|
+
type: string
|
|
14429
|
+
|
|
14430
|
+
SdlcModuleDto:
|
|
14431
|
+
type: object
|
|
14432
|
+
required: [id, name, metrics]
|
|
14433
|
+
properties:
|
|
14434
|
+
id:
|
|
14435
|
+
$ref: "#/components/schemas/SdlcModuleId"
|
|
14436
|
+
name:
|
|
14437
|
+
type: string
|
|
14438
|
+
metrics:
|
|
14439
|
+
type: array
|
|
14440
|
+
items:
|
|
14441
|
+
$ref: "#/components/schemas/SdlcMetricDto"
|
|
14442
|
+
|
|
14443
|
+
SdlcOverviewDto:
|
|
14444
|
+
type: object
|
|
14445
|
+
required: [rangeId, from, to, department, team, repoIds, asOf, modules]
|
|
14446
|
+
properties:
|
|
14447
|
+
rangeId:
|
|
14448
|
+
type: string
|
|
14449
|
+
from:
|
|
14450
|
+
type: string
|
|
14451
|
+
format: date
|
|
14452
|
+
to:
|
|
14453
|
+
type: string
|
|
14454
|
+
format: date
|
|
14455
|
+
department:
|
|
14456
|
+
type: string
|
|
14457
|
+
team:
|
|
14458
|
+
type: string
|
|
14459
|
+
repoIds:
|
|
14460
|
+
type: array
|
|
14461
|
+
items:
|
|
14462
|
+
type: string
|
|
14463
|
+
asOf:
|
|
14464
|
+
type: string
|
|
14465
|
+
format: date-time
|
|
14466
|
+
modules:
|
|
14467
|
+
type: array
|
|
14468
|
+
items:
|
|
14469
|
+
$ref: "#/components/schemas/SdlcModuleDto"
|
|
14470
|
+
|
|
14471
|
+
SdlcDrilldownItemDto:
|
|
14472
|
+
type: object
|
|
14473
|
+
required: [id, title]
|
|
14474
|
+
properties:
|
|
14475
|
+
id:
|
|
14476
|
+
type: string
|
|
14477
|
+
title:
|
|
14478
|
+
type: string
|
|
14479
|
+
subtitle:
|
|
14480
|
+
type: string
|
|
14481
|
+
url:
|
|
14482
|
+
type: string
|
|
14483
|
+
format: uri
|
|
14484
|
+
occurredAt:
|
|
14485
|
+
type: string
|
|
14486
|
+
format: date-time
|
|
14487
|
+
metadata:
|
|
14488
|
+
type: object
|
|
14489
|
+
additionalProperties:
|
|
14490
|
+
oneOf:
|
|
14491
|
+
- type: string
|
|
14492
|
+
- type: number
|
|
14493
|
+
|
|
14494
|
+
SdlcDrilldownDto:
|
|
14495
|
+
type: object
|
|
14496
|
+
required: [metricId, items]
|
|
14497
|
+
properties:
|
|
14498
|
+
metricId:
|
|
14499
|
+
$ref: "#/components/schemas/SdlcMetricId"
|
|
14500
|
+
items:
|
|
14501
|
+
type: array
|
|
14502
|
+
items:
|
|
14503
|
+
$ref: "#/components/schemas/SdlcDrilldownItemDto"
|
|
14504
|
+
nextCursor:
|
|
14505
|
+
type: string
|