@empiricalrun/playwright-utils 0.60.3 → 0.60.4

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.
@@ -211,6 +211,26 @@ export interface paths {
211
211
  patch?: never;
212
212
  trace?: never;
213
213
  };
214
+ "/api/test-runs/{id}/linked-changes": {
215
+ parameters: {
216
+ query?: never;
217
+ header?: never;
218
+ path?: never;
219
+ cookie?: never;
220
+ };
221
+ /**
222
+ * ⚙️ 🧪 Get linked test changes for a run
223
+ * @description For a run triggered by an app pull request, evaluates the same-name test branch live on GitHub (the state behind the "Empirical linked test changes" check) and returns the latest check written for the PR. Addressed by the database id. Serves the dashboard UI.
224
+ */
225
+ get: operations["getTestRunLinkedChanges"];
226
+ put?: never;
227
+ post?: never;
228
+ delete?: never;
229
+ options?: never;
230
+ head?: never;
231
+ patch?: never;
232
+ trace?: never;
233
+ };
214
234
  "/api/test-runs/{id}/logs": {
215
235
  parameters: {
216
236
  query?: never;
@@ -1743,7 +1763,7 @@ export interface paths {
1743
1763
  put?: never;
1744
1764
  /**
1745
1765
  * 🤖 Proxy a GitHub API request
1746
- * @description Forwards an authenticated request to the GitHub API via the main App installation and returns the GitHub response verbatim. Merging a pull request with `merge_method` `squash` or `rebase` is rejected; only merge commits are allowed. Other writes to a project's default or protected branches are refused, as git-worker refuses the equivalent push. Project API keys are read-only. Sandbox-delegation principals are additionally constrained by per-session proxy rules.
1766
+ * @description Forwards an authenticated request to the GitHub API and returns the GitHub response verbatim. The request's project (bound token, or the `x-project-id`/`x-project-slug` header) picks the GitHub App: its own repo goes through the main App; another repo the project's org installed the reporter App on is read through the reporter App, and writes to it are rejected. Without a project, the main App is used. Merging a pull request with `merge_method` `squash` or `rebase` is rejected; only merge commits are allowed. Other writes to a project's default or protected branches are refused, as git-worker refuses the equivalent push. Project API keys are read-only. Sandbox-delegation principals are additionally constrained by per-session proxy rules.
1747
1767
  */
1748
1768
  post: operations["githubProxy"];
1749
1769
  delete?: never;
@@ -2900,7 +2920,7 @@ export interface paths {
2900
2920
  };
2901
2921
  /**
2902
2922
  * ⚙️ List reporter deliveries
2903
- * @description Lists the check runs and PR comments the reporter App delivered for a project, newest first. Each row is the latest state of one check run (per test run) or one PR comment (per PR + environment).
2923
+ * @description Lists the check runs, PR comments and linked test changes checks the reporter App delivered for a project, newest first. Each row is the latest state of one check run (per test run), one PR comment (per PR + environment) or one linked test changes check (per app PR).
2904
2924
  */
2905
2925
  get: operations["listReporterDeliveries"];
2906
2926
  put?: never;
@@ -3015,6 +3035,26 @@ export interface paths {
3015
3035
  patch?: never;
3016
3036
  trace?: never;
3017
3037
  };
3038
+ "/api/github/reporter-app/pull-request": {
3039
+ parameters: {
3040
+ query?: never;
3041
+ header?: never;
3042
+ path?: never;
3043
+ cookie?: never;
3044
+ };
3045
+ /**
3046
+ * ⚙️ Get a delivery's pull request
3047
+ * @description Reads an app PR live from GitHub through the project org's reporter App installation, and compares its current head with the commit a delivery was written on.
3048
+ */
3049
+ get: operations["getReporterPullRequest"];
3050
+ put?: never;
3051
+ post?: never;
3052
+ delete?: never;
3053
+ options?: never;
3054
+ head?: never;
3055
+ patch?: never;
3056
+ trace?: never;
3057
+ };
3018
3058
  "/api/github/tree": {
3019
3059
  parameters: {
3020
3060
  query?: never;
@@ -4175,7 +4215,7 @@ export interface paths {
4175
4215
  post?: never;
4176
4216
  /**
4177
4217
  * 🛡️ Remove a member from an organization
4178
- * @description Removes the org from the user's membership metadata. The removed member keeps access until their session token refreshes. Restricted to org members and super admins.
4218
+ * @description Removes the user's membership in the organization; access ends on their next request. Restricted to org members and super admins.
4179
4219
  */
4180
4220
  delete: operations["removeOrgMember"];
4181
4221
  options?: never;
@@ -4214,7 +4254,7 @@ export interface paths {
4214
4254
  put?: never;
4215
4255
  /**
4216
4256
  * ⚙️ Resolve org membership for a signed-in user
4217
- * @description Accepts pending invites for the email and matches org email domains; grants the union in the user's metadata. System-to-system callers only.
4257
+ * @description Grants super-admin to staff emails; for users with no org yet, accepts pending invites for the email and matches org email domains. Returns the user's memberships and super-admin flag. System-to-system callers only.
4218
4258
  */
4219
4259
  post: operations["resolveMembership"];
4220
4260
  delete?: never;
@@ -4967,6 +5007,150 @@ export interface paths {
4967
5007
  patch?: never;
4968
5008
  trace?: never;
4969
5009
  };
5010
+ "/api/runner-backends": {
5011
+ parameters: {
5012
+ query?: never;
5013
+ header?: never;
5014
+ path?: never;
5015
+ cookie?: never;
5016
+ };
5017
+ /**
5018
+ * 🛡️ 🧪 List runner backends
5019
+ * @description Lists customer-hosted runner backends, optionally for one org.
5020
+ */
5021
+ get: operations["listRunnerBackends"];
5022
+ put?: never;
5023
+ /**
5024
+ * 🛡️ 🧪 Register a runner backend
5025
+ * @description Registers an installation as `pending` and returns the external ID its role must require. Run `verify` before linking projects.
5026
+ */
5027
+ post: operations["createRunnerBackend"];
5028
+ delete?: never;
5029
+ options?: never;
5030
+ head?: never;
5031
+ patch?: never;
5032
+ trace?: never;
5033
+ };
5034
+ "/api/runner-backends/{id}": {
5035
+ parameters: {
5036
+ query?: never;
5037
+ header?: never;
5038
+ path?: never;
5039
+ cookie?: never;
5040
+ };
5041
+ /**
5042
+ * 🛡️ 🧪 Get a runner backend
5043
+ * @description Returns one runner backend.
5044
+ */
5045
+ get: operations["getRunnerBackend"];
5046
+ put?: never;
5047
+ post?: never;
5048
+ delete?: never;
5049
+ options?: never;
5050
+ head?: never;
5051
+ patch?: never;
5052
+ trace?: never;
5053
+ };
5054
+ "/api/runner-backends/{id}/disable": {
5055
+ parameters: {
5056
+ query?: never;
5057
+ header?: never;
5058
+ path?: never;
5059
+ cookie?: never;
5060
+ };
5061
+ get?: never;
5062
+ put?: never;
5063
+ /**
5064
+ * 🛡️ 🧪 Disable a runner backend
5065
+ * @description Stops new dispatches to the backend immediately: runs of linked projects fail with `dispatch_failed` until it is verified again or the projects are unlinked.
5066
+ */
5067
+ post: operations["disableRunnerBackend"];
5068
+ delete?: never;
5069
+ options?: never;
5070
+ head?: never;
5071
+ patch?: never;
5072
+ trace?: never;
5073
+ };
5074
+ "/api/runner-backends/{id}/verify": {
5075
+ parameters: {
5076
+ query?: never;
5077
+ header?: never;
5078
+ path?: never;
5079
+ cookie?: never;
5080
+ };
5081
+ get?: never;
5082
+ put?: never;
5083
+ /**
5084
+ * 🛡️ 🧪 Verify a runner backend
5085
+ * @description Assumes the backend's role and makes one read-only call to each queue, the cluster and the log group. On success the backend becomes `active`; on failure its status is unchanged. A disabled backend is re-enabled only by a passing verify.
5086
+ */
5087
+ post: operations["verifyRunnerBackend"];
5088
+ delete?: never;
5089
+ options?: never;
5090
+ head?: never;
5091
+ patch?: never;
5092
+ trace?: never;
5093
+ };
5094
+ "/api/runner-backends/project": {
5095
+ parameters: {
5096
+ query?: never;
5097
+ header?: never;
5098
+ path?: never;
5099
+ cookie?: never;
5100
+ };
5101
+ /**
5102
+ * ⚙️ 🧪 Get the scoped project's runner backend
5103
+ * @description Returns the runner backend the scoped project is linked to, including its verification status, or null when the project runs on Empirical-hosted infrastructure.
5104
+ */
5105
+ get: operations["getProjectRunnerBackend"];
5106
+ put?: never;
5107
+ post?: never;
5108
+ delete?: never;
5109
+ options?: never;
5110
+ head?: never;
5111
+ patch?: never;
5112
+ trace?: never;
5113
+ };
5114
+ "/api/runner-backends/project/verify": {
5115
+ parameters: {
5116
+ query?: never;
5117
+ header?: never;
5118
+ path?: never;
5119
+ cookie?: never;
5120
+ };
5121
+ get?: never;
5122
+ put?: never;
5123
+ /**
5124
+ * ⚙️ 🧪 Re-check the scoped project's runner backend
5125
+ * @description Runs the same read-only checks as `verify` against the backend the scoped project is linked to and records the result, so a customer can confirm a fix to their role or stack. It never changes the backend's status: a disabled backend is re-enabled only by Empirical.
5126
+ */
5127
+ post: operations["verifyProjectRunnerBackend"];
5128
+ delete?: never;
5129
+ options?: never;
5130
+ head?: never;
5131
+ patch?: never;
5132
+ trace?: never;
5133
+ };
5134
+ "/api/runner-backends/projects/{project_id}": {
5135
+ parameters: {
5136
+ query?: never;
5137
+ header?: never;
5138
+ path?: never;
5139
+ cookie?: never;
5140
+ };
5141
+ get?: never;
5142
+ /**
5143
+ * 🛡️ 🧪 Set a project's runner backend
5144
+ * @description Links a project to an active backend of its organisation, or back to Empirical-hosted with null. Applies to runs created afterwards; runs already created keep their backend.
5145
+ */
5146
+ put: operations["setProjectRunnerBackend"];
5147
+ post?: never;
5148
+ delete?: never;
5149
+ options?: never;
5150
+ head?: never;
5151
+ patch?: never;
5152
+ trace?: never;
5153
+ };
4970
5154
  "/api/sandbox-snapshots": {
4971
5155
  parameters: {
4972
5156
  query?: never;
@@ -5219,6 +5403,26 @@ export interface paths {
5219
5403
  patch?: never;
5220
5404
  trace?: never;
5221
5405
  };
5406
+ "/api/users/me": {
5407
+ parameters: {
5408
+ query?: never;
5409
+ header?: never;
5410
+ path?: never;
5411
+ cookie?: never;
5412
+ };
5413
+ /**
5414
+ * Get the current user
5415
+ * @description Returns the signed-in user's id, email, org memberships and super-admin flag as used for authorization.
5416
+ */
5417
+ get: operations["getCurrentUser"];
5418
+ put?: never;
5419
+ post?: never;
5420
+ delete?: never;
5421
+ options?: never;
5422
+ head?: never;
5423
+ patch?: never;
5424
+ trace?: never;
5425
+ };
5222
5426
  "/api/users/me/memberships": {
5223
5427
  parameters: {
5224
5428
  query?: never;
@@ -6022,6 +6226,160 @@ export interface components {
6022
6226
  /** @description Arbitrary JSON overrides for the plan. */
6023
6227
  custom_overrides?: unknown;
6024
6228
  };
6229
+ RunnerBackendListResponse: {
6230
+ /** @description Response payload. */
6231
+ data: {
6232
+ runner_backends: components["schemas"]["RunnerBackend"][];
6233
+ };
6234
+ };
6235
+ RunnerBackend: {
6236
+ /** @description Runner backend ID. */
6237
+ id: number;
6238
+ /** @description Organisation that owns the installation. */
6239
+ org_id: number;
6240
+ /** @description Human-readable name. */
6241
+ name: string;
6242
+ /** @description AWS account the installation runs in. */
6243
+ aws_account_id: string;
6244
+ /** @description AWS region of the installation. */
6245
+ region: string;
6246
+ /** @description Role api-worker assumes to drive the plane. */
6247
+ role_arn: string;
6248
+ /** @description External ID the role's trust policy must require. Give it only to this installation's owner. */
6249
+ external_id: string;
6250
+ /** @description ECS cluster name. */
6251
+ cluster_name: string;
6252
+ /** @description CloudWatch log group of the worker. */
6253
+ log_group_name: string;
6254
+ /** @description Worker container name. */
6255
+ container_name: string;
6256
+ /** @description Job queue URLs are `${queue_prefix}-${machineSize}`. */
6257
+ queue_prefix: string;
6258
+ /**
6259
+ * @description `pending` until verified; only `active` backends receive runs.
6260
+ * @enum {string}
6261
+ */
6262
+ status: "pending" | "active" | "disabled";
6263
+ /** @description ISO-8601 time of the last successful verify. */
6264
+ last_verified_at: string | null;
6265
+ /** @description ISO-8601 time of the last verify, manual or scheduled, whatever its outcome. */
6266
+ last_checked_at: string | null;
6267
+ /** @description Outcome of the last verify; null if never run. */
6268
+ last_check_ok: boolean | null;
6269
+ /** @description Every check from the last verify. */
6270
+ last_check_results: components["schemas"]["RunnerBackendCheck"][] | null;
6271
+ /** @description ISO-8601 start of the current run of failed checks; null while passing. A failing check does not change `status`. */
6272
+ check_failing_since: string | null;
6273
+ /** @description ISO-8601 creation time. */
6274
+ created_at: string;
6275
+ /** @description ISO-8601 last-update time. */
6276
+ updated_at: string;
6277
+ };
6278
+ RunnerBackendCheck: {
6279
+ /** @description `assume_role`, `job_queue`, `scaler_trigger_queue`, `ecs_cluster`, `ecs_tasks` or `worker_logs`. */
6280
+ name: string;
6281
+ /** @description Whether the check passed. */
6282
+ ok: boolean;
6283
+ /** @description The resource checked, or the AWS error. */
6284
+ detail: string;
6285
+ };
6286
+ RunnerBackendResponse: {
6287
+ /** @description Response payload. */
6288
+ data: {
6289
+ runner_backend: components["schemas"]["RunnerBackend"];
6290
+ };
6291
+ };
6292
+ CreateRunnerBackendBody: {
6293
+ /** @description Owning organisation. */
6294
+ org_id: number;
6295
+ /** @description Human-readable name. */
6296
+ name: string;
6297
+ /** @description 12-digit AWS account ID. */
6298
+ aws_account_id: string;
6299
+ /** @description AWS region, e.g. `us-east-1`. */
6300
+ region: string;
6301
+ /** @description ARN of a role named `empirical-private-runner-*` in `aws_account_id`. */
6302
+ role_arn: string;
6303
+ /** @description ECS cluster name. */
6304
+ cluster_name: string;
6305
+ /** @description CloudWatch log group of the worker. */
6306
+ log_group_name: string;
6307
+ /** @description `https://sqs.<region>.amazonaws.com/<account>/<name>`; queues are `${queue_prefix}-${machineSize}`. */
6308
+ queue_prefix: string;
6309
+ /** @description Worker container name. Defaults to `test-run-worker`. */
6310
+ container_name?: string;
6311
+ /** @description Only for installations whose role already requires a fixed ID (Empirical's own dogfood). Generated otherwise. */
6312
+ external_id?: string;
6313
+ };
6314
+ ProjectRunnerBackendResponse: {
6315
+ /** @description Response payload. */
6316
+ data: {
6317
+ project_id: number;
6318
+ runner_backend_id: number | null;
6319
+ };
6320
+ };
6321
+ SetProjectRunnerBackendBody: {
6322
+ /** @description An active backend of the project's organisation, or null for Empirical-hosted. */
6323
+ runner_backend_id: number | null;
6324
+ };
6325
+ ProjectRunnerBackendDetailResponse: {
6326
+ /** @description Response payload. */
6327
+ data: {
6328
+ /** @description The backend the project's new runs are placed on, or null for Empirical-hosted. */
6329
+ runner_backend: {
6330
+ /** @description Runner backend ID. */
6331
+ id: number;
6332
+ /** @description Organisation that owns the installation. */
6333
+ org_id: number;
6334
+ /** @description Human-readable name. */
6335
+ name: string;
6336
+ /** @description AWS account the installation runs in. */
6337
+ aws_account_id: string;
6338
+ /** @description AWS region of the installation. */
6339
+ region: string;
6340
+ /** @description Role api-worker assumes to drive the plane. */
6341
+ role_arn: string;
6342
+ /** @description External ID the role's trust policy must require. Give it only to this installation's owner. */
6343
+ external_id: string;
6344
+ /** @description ECS cluster name. */
6345
+ cluster_name: string;
6346
+ /** @description CloudWatch log group of the worker. */
6347
+ log_group_name: string;
6348
+ /** @description Worker container name. */
6349
+ container_name: string;
6350
+ /** @description Job queue URLs are `${queue_prefix}-${machineSize}`. */
6351
+ queue_prefix: string;
6352
+ /**
6353
+ * @description `pending` until verified; only `active` backends receive runs.
6354
+ * @enum {string}
6355
+ */
6356
+ status: "pending" | "active" | "disabled";
6357
+ /** @description ISO-8601 time of the last successful verify. */
6358
+ last_verified_at: string | null;
6359
+ /** @description ISO-8601 time of the last verify, manual or scheduled, whatever its outcome. */
6360
+ last_checked_at: string | null;
6361
+ /** @description Outcome of the last verify; null if never run. */
6362
+ last_check_ok: boolean | null;
6363
+ /** @description Every check from the last verify. */
6364
+ last_check_results: components["schemas"]["RunnerBackendCheck"][] | null;
6365
+ /** @description ISO-8601 start of the current run of failed checks; null while passing. A failing check does not change `status`. */
6366
+ check_failing_since: string | null;
6367
+ /** @description ISO-8601 creation time. */
6368
+ created_at: string;
6369
+ /** @description ISO-8601 last-update time. */
6370
+ updated_at: string;
6371
+ } | null;
6372
+ };
6373
+ };
6374
+ RunnerBackendVerifyResponse: {
6375
+ /** @description Response payload. */
6376
+ data: {
6377
+ /** @description True when every check passed. */
6378
+ verified: boolean;
6379
+ checks: components["schemas"]["RunnerBackendCheck"][];
6380
+ runner_backend: components["schemas"]["RunnerBackend"];
6381
+ };
6382
+ };
6025
6383
  ApiKeyListResponse: {
6026
6384
  /** @description Response payload. */
6027
6385
  data: {
@@ -7047,8 +7405,10 @@ export interface components {
7047
7405
  ResolveMembershipResponse: {
7048
7406
  /** @description Response payload. */
7049
7407
  data: {
7050
- /** @description All org ids the user now belongs to via invites and domain match. */
7408
+ /** @description All org ids the user belongs to after resolution. */
7051
7409
  org_ids: number[];
7410
+ /** @description Whether the user is a super admin. */
7411
+ is_super_admin: boolean;
7052
7412
  };
7053
7413
  };
7054
7414
  ResolveMembershipRequest: {
@@ -9138,6 +9498,7 @@ export interface components {
9138
9498
  data: {
9139
9499
  check_runs: components["schemas"]["GhReporterCheckRunDelivery"][];
9140
9500
  pr_comments: components["schemas"]["GhReporterPrCommentDelivery"][];
9501
+ linked_changes: components["schemas"]["GhReporterLinkedChangesDelivery"][];
9141
9502
  };
9142
9503
  };
9143
9504
  GhReporterCheckRunDelivery: {
@@ -9171,6 +9532,51 @@ export interface components {
9171
9532
  created_at: string;
9172
9533
  updated_at: string;
9173
9534
  };
9535
+ GhReporterLinkedChangesDelivery: {
9536
+ id: number;
9537
+ /** @description The app PR's run the check links to (latest write). */
9538
+ test_run_id: number;
9539
+ repo_owner: string;
9540
+ repo_name: string;
9541
+ /** @description The app PR's head branch. */
9542
+ pr_head: string;
9543
+ pr_number: number | null;
9544
+ /** @description App commit the check was last written on. */
9545
+ head_sha: string;
9546
+ test_branch: string;
9547
+ /** @description Null when GitHub never accepted the check run. */
9548
+ check_run_id: number | null;
9549
+ check_run_url: string | null;
9550
+ /** @description Linked changes state, e.g. no_test_branch, pr_open, nothing_to_merge. */
9551
+ state: string | null;
9552
+ status: string | null;
9553
+ conclusion: string | null;
9554
+ title: string | null;
9555
+ /** @description Error from the most recent delivery attempt; cleared on success. */
9556
+ last_error: string | null;
9557
+ created_at: string;
9558
+ updated_at: string;
9559
+ };
9560
+ GhReporterPullRequestResponse: {
9561
+ /** @description Response payload. */
9562
+ data: {
9563
+ /** @description Null when no PR contains head_sha. */
9564
+ pull_request: {
9565
+ number: number;
9566
+ title: string;
9567
+ state: string;
9568
+ merged: boolean;
9569
+ head_ref: string;
9570
+ head_sha: string;
9571
+ html_url: string;
9572
+ updated_at: string;
9573
+ } | null;
9574
+ /** @description Whether head_sha is the PR's current head commit. */
9575
+ delivered_sha_is_head: boolean | null;
9576
+ /** @description Commits on the PR head after head_sha. Null when head_sha is not an ancestor of the head (e.g. after a force push) or not given. */
9577
+ commits_since_delivered: number | null;
9578
+ };
9579
+ };
9174
9580
  GhReporterWebhookAck: {
9175
9581
  /** @description Response payload. */
9176
9582
  data: {
@@ -11047,6 +11453,56 @@ export interface components {
11047
11453
  /** @description Log line text. */
11048
11454
  message: string;
11049
11455
  };
11456
+ TestRunLinkedChangesResponse: {
11457
+ /** @description Response payload. */
11458
+ data: {
11459
+ /** @description Null when the run was not triggered by an app PR. */
11460
+ linked_changes: {
11461
+ /** @description The app repository (owner/name) of the PR. */
11462
+ app_repo: string;
11463
+ app_pull_request: {
11464
+ number: number | null;
11465
+ head: string;
11466
+ base: string | null;
11467
+ };
11468
+ /** @description The test repository. */
11469
+ test_repo: string;
11470
+ /** @description Test branch linked to the app PR by name. */
11471
+ test_branch: string;
11472
+ default_branch: string;
11473
+ /** @enum {string} */
11474
+ state: "no_test_branch" | "nothing_to_merge" | "ahead_no_pr" | "pr_open" | "pr_open_not_mergeable" | "error";
11475
+ /** @enum {string} */
11476
+ status: "in_progress" | "completed";
11477
+ /** @enum {string|null} */
11478
+ conclusion: "success" | "failure" | "neutral" | null;
11479
+ title: string;
11480
+ ahead_by: number;
11481
+ /** @description Open test PR from the test branch, if any. */
11482
+ test_pull_request: {
11483
+ number: number;
11484
+ url: string;
11485
+ mergeable: boolean | null;
11486
+ } | null;
11487
+ /** @description Merged test PR, when the branch was deleted after merge. */
11488
+ merged_test_pull_request: {
11489
+ number: number;
11490
+ url: string;
11491
+ } | null;
11492
+ /** @description Whether the project posts the linked test changes check on GitHub. */
11493
+ check_enabled: boolean;
11494
+ /** @description Latest GitHub check written for the app PR, from any of its runs. */
11495
+ check: {
11496
+ check_run_url: string | null;
11497
+ head_sha: string;
11498
+ test_run_id: number;
11499
+ state: string | null;
11500
+ last_error: string | null;
11501
+ updated_at: string;
11502
+ } | null;
11503
+ } | null;
11504
+ };
11505
+ };
11050
11506
  GetTestRunTriageSessionResponse: {
11051
11507
  /** @description Response payload. */
11052
11508
  data: {
@@ -12419,6 +12875,19 @@ export interface components {
12419
12875
  }[];
12420
12876
  };
12421
12877
  };
12878
+ CurrentUserResponse: {
12879
+ /** @description Response payload. */
12880
+ data: {
12881
+ /** @description User ID. */
12882
+ id: string;
12883
+ /** @description Email address on the session. */
12884
+ email: string | null;
12885
+ /** @description Organizations the user belongs to. */
12886
+ org_ids: number[];
12887
+ /** @description Whether the user can access every org. */
12888
+ is_super_admin: boolean;
12889
+ };
12890
+ };
12422
12891
  UserDetailResponse: {
12423
12892
  /** @description Response payload. */
12424
12893
  data: {
@@ -13044,9 +13513,50 @@ export interface operations {
13044
13513
  };
13045
13514
  };
13046
13515
  };
13047
- getTestRunLogs: {
13516
+ getTestRunLinkedChanges: {
13048
13517
  parameters: {
13049
- query?: {
13518
+ query?: never;
13519
+ header?: never;
13520
+ path: {
13521
+ /** @description Test run database ID. */
13522
+ id: number;
13523
+ };
13524
+ cookie?: never;
13525
+ };
13526
+ requestBody?: never;
13527
+ responses: {
13528
+ /** @description The run's linked test changes. */
13529
+ 200: {
13530
+ headers: {
13531
+ [name: string]: unknown;
13532
+ };
13533
+ content: {
13534
+ "application/json": components["schemas"]["TestRunLinkedChangesResponse"];
13535
+ };
13536
+ };
13537
+ /** @description Invalid database test run ID. */
13538
+ 400: {
13539
+ headers: {
13540
+ [name: string]: unknown;
13541
+ };
13542
+ content: {
13543
+ "application/json": components["schemas"]["ErrorResponse"];
13544
+ };
13545
+ };
13546
+ /** @description Test run not found. */
13547
+ 404: {
13548
+ headers: {
13549
+ [name: string]: unknown;
13550
+ };
13551
+ content: {
13552
+ "application/json": components["schemas"]["ErrorResponse"];
13553
+ };
13554
+ };
13555
+ };
13556
+ };
13557
+ getTestRunLogs: {
13558
+ parameters: {
13559
+ query?: {
13050
13560
  /** @description Pagination token returned by a previous logs page. */
13051
13561
  nextToken?: string;
13052
13562
  /** @description Maximum number of log events to return. */
@@ -17574,7 +18084,7 @@ export interface operations {
17574
18084
  "application/json": components["schemas"]["GithubProxyError"];
17575
18085
  };
17576
18086
  };
17577
- /** @description The target repository is blocked, the request writes to a protected branch, a project API key attempted a write, or a sandbox proxy rule forbade the request. */
18087
+ /** @description The URL uses a numeric repository id, the request writes to a protected branch, a project API key attempted a write, or a sandbox proxy rule forbade the request. */
17578
18088
  403: {
17579
18089
  headers: {
17580
18090
  [name: string]: unknown;
@@ -20008,15 +20518,6 @@ export interface operations {
20008
20518
  "application/json": components["schemas"]["GithubBranchSearchResponse"];
20009
20519
  };
20010
20520
  };
20011
- /** @description Repository access is blocked. */
20012
- 403: {
20013
- headers: {
20014
- [name: string]: unknown;
20015
- };
20016
- content: {
20017
- "application/json": components["schemas"]["ErrorResponse"];
20018
- };
20019
- };
20020
20521
  /** @description Repository not found. */
20021
20522
  404: {
20022
20523
  headers: {
@@ -20608,7 +21109,7 @@ export interface operations {
20608
21109
  };
20609
21110
  requestBody?: never;
20610
21111
  responses: {
20611
- /** @description Reporter check runs and PR comments. */
21112
+ /** @description Reporter check runs, PR comments and linked test changes checks. */
20612
21113
  200: {
20613
21114
  headers: {
20614
21115
  [name: string]: unknown;
@@ -20886,6 +21387,53 @@ export interface operations {
20886
21387
  };
20887
21388
  };
20888
21389
  };
21390
+ getReporterPullRequest: {
21391
+ parameters: {
21392
+ query: {
21393
+ /** @description Project whose reporter App reads the PR. */
21394
+ project_id: number;
21395
+ repo_owner: string;
21396
+ repo_name: string;
21397
+ /** @description App PR number. When omitted, the PR is found by head_sha. */
21398
+ pr_number?: number;
21399
+ /** @description Commit the reporter delivered to. Compared against the PR's current head; also used to find the PR when pr_number is omitted. */
21400
+ head_sha?: string;
21401
+ };
21402
+ header?: never;
21403
+ path?: never;
21404
+ cookie?: never;
21405
+ };
21406
+ requestBody?: never;
21407
+ responses: {
21408
+ /** @description The PR's current state and head. */
21409
+ 200: {
21410
+ headers: {
21411
+ [name: string]: unknown;
21412
+ };
21413
+ content: {
21414
+ "application/json": components["schemas"]["GhReporterPullRequestResponse"];
21415
+ };
21416
+ };
21417
+ /** @description Neither pr_number nor head_sha given. */
21418
+ 400: {
21419
+ headers: {
21420
+ [name: string]: unknown;
21421
+ };
21422
+ content: {
21423
+ "application/json": components["schemas"]["ErrorResponse"];
21424
+ };
21425
+ };
21426
+ /** @description Project, installation or pull request not found. */
21427
+ 404: {
21428
+ headers: {
21429
+ [name: string]: unknown;
21430
+ };
21431
+ content: {
21432
+ "application/json": components["schemas"]["ErrorResponse"];
21433
+ };
21434
+ };
21435
+ };
21436
+ };
20889
21437
  getRepoTree: {
20890
21438
  parameters: {
20891
21439
  query: {
@@ -23877,7 +24425,7 @@ export interface operations {
23877
24425
  };
23878
24426
  };
23879
24427
  responses: {
23880
- /** @description Org ids granted via invites and domain match. */
24428
+ /** @description The user's memberships and super-admin flag after resolution. */
23881
24429
  200: {
23882
24430
  headers: {
23883
24431
  [name: string]: unknown;
@@ -25954,6 +26502,288 @@ export interface operations {
25954
26502
  };
25955
26503
  };
25956
26504
  };
26505
+ listRunnerBackends: {
26506
+ parameters: {
26507
+ query?: {
26508
+ /** @description Only this organisation's backends. */
26509
+ org_id?: number | null;
26510
+ };
26511
+ header?: never;
26512
+ path?: never;
26513
+ cookie?: never;
26514
+ };
26515
+ requestBody?: never;
26516
+ responses: {
26517
+ /** @description The runner backends. */
26518
+ 200: {
26519
+ headers: {
26520
+ [name: string]: unknown;
26521
+ };
26522
+ content: {
26523
+ "application/json": components["schemas"]["RunnerBackendListResponse"];
26524
+ };
26525
+ };
26526
+ };
26527
+ };
26528
+ createRunnerBackend: {
26529
+ parameters: {
26530
+ query?: never;
26531
+ header?: never;
26532
+ path?: never;
26533
+ cookie?: never;
26534
+ };
26535
+ requestBody?: {
26536
+ content: {
26537
+ "application/json": components["schemas"]["CreateRunnerBackendBody"];
26538
+ };
26539
+ };
26540
+ responses: {
26541
+ /** @description The registered backend. */
26542
+ 200: {
26543
+ headers: {
26544
+ [name: string]: unknown;
26545
+ };
26546
+ content: {
26547
+ "application/json": components["schemas"]["RunnerBackendResponse"];
26548
+ };
26549
+ };
26550
+ /** @description Invalid registration. */
26551
+ 400: {
26552
+ headers: {
26553
+ [name: string]: unknown;
26554
+ };
26555
+ content: {
26556
+ "application/json": components["schemas"]["ErrorResponse"];
26557
+ };
26558
+ };
26559
+ };
26560
+ };
26561
+ getRunnerBackend: {
26562
+ parameters: {
26563
+ query?: never;
26564
+ header?: never;
26565
+ path: {
26566
+ /** @description Runner backend ID. */
26567
+ id: number | null;
26568
+ };
26569
+ cookie?: never;
26570
+ };
26571
+ requestBody?: never;
26572
+ responses: {
26573
+ /** @description The runner backend. */
26574
+ 200: {
26575
+ headers: {
26576
+ [name: string]: unknown;
26577
+ };
26578
+ content: {
26579
+ "application/json": components["schemas"]["RunnerBackendResponse"];
26580
+ };
26581
+ };
26582
+ /** @description Runner backend not found. */
26583
+ 404: {
26584
+ headers: {
26585
+ [name: string]: unknown;
26586
+ };
26587
+ content: {
26588
+ "application/json": components["schemas"]["ErrorResponse"];
26589
+ };
26590
+ };
26591
+ };
26592
+ };
26593
+ disableRunnerBackend: {
26594
+ parameters: {
26595
+ query?: never;
26596
+ header?: never;
26597
+ path: {
26598
+ /** @description Runner backend ID. */
26599
+ id: number | null;
26600
+ };
26601
+ cookie?: never;
26602
+ };
26603
+ requestBody?: never;
26604
+ responses: {
26605
+ /** @description The disabled backend. */
26606
+ 200: {
26607
+ headers: {
26608
+ [name: string]: unknown;
26609
+ };
26610
+ content: {
26611
+ "application/json": components["schemas"]["RunnerBackendResponse"];
26612
+ };
26613
+ };
26614
+ /** @description Runner backend not found. */
26615
+ 404: {
26616
+ headers: {
26617
+ [name: string]: unknown;
26618
+ };
26619
+ content: {
26620
+ "application/json": components["schemas"]["ErrorResponse"];
26621
+ };
26622
+ };
26623
+ };
26624
+ };
26625
+ verifyRunnerBackend: {
26626
+ parameters: {
26627
+ query?: never;
26628
+ header?: never;
26629
+ path: {
26630
+ /** @description Runner backend ID. */
26631
+ id: number | null;
26632
+ };
26633
+ cookie?: never;
26634
+ };
26635
+ requestBody?: never;
26636
+ responses: {
26637
+ /** @description Every check, and the backend after them. */
26638
+ 200: {
26639
+ headers: {
26640
+ [name: string]: unknown;
26641
+ };
26642
+ content: {
26643
+ "application/json": components["schemas"]["RunnerBackendVerifyResponse"];
26644
+ };
26645
+ };
26646
+ /** @description Runner backend not found. */
26647
+ 404: {
26648
+ headers: {
26649
+ [name: string]: unknown;
26650
+ };
26651
+ content: {
26652
+ "application/json": components["schemas"]["ErrorResponse"];
26653
+ };
26654
+ };
26655
+ };
26656
+ };
26657
+ getProjectRunnerBackend: {
26658
+ parameters: {
26659
+ query?: never;
26660
+ header?: never;
26661
+ path?: never;
26662
+ cookie?: never;
26663
+ };
26664
+ requestBody?: never;
26665
+ responses: {
26666
+ /** @description The project's runner backend, or null. */
26667
+ 200: {
26668
+ headers: {
26669
+ [name: string]: unknown;
26670
+ };
26671
+ content: {
26672
+ "application/json": components["schemas"]["ProjectRunnerBackendDetailResponse"];
26673
+ };
26674
+ };
26675
+ /** @description Missing or invalid project scope. */
26676
+ 400: {
26677
+ headers: {
26678
+ [name: string]: unknown;
26679
+ };
26680
+ content: {
26681
+ "application/json": components["schemas"]["ErrorResponse"];
26682
+ };
26683
+ };
26684
+ /** @description Project not found or not accessible. */
26685
+ 404: {
26686
+ headers: {
26687
+ [name: string]: unknown;
26688
+ };
26689
+ content: {
26690
+ "application/json": components["schemas"]["ErrorResponse"];
26691
+ };
26692
+ };
26693
+ };
26694
+ };
26695
+ verifyProjectRunnerBackend: {
26696
+ parameters: {
26697
+ query?: never;
26698
+ header?: never;
26699
+ path?: never;
26700
+ cookie?: never;
26701
+ };
26702
+ requestBody?: never;
26703
+ responses: {
26704
+ /** @description Every check, and the backend after them. */
26705
+ 200: {
26706
+ headers: {
26707
+ [name: string]: unknown;
26708
+ };
26709
+ content: {
26710
+ "application/json": components["schemas"]["RunnerBackendVerifyResponse"];
26711
+ };
26712
+ };
26713
+ /** @description Missing or invalid project scope. */
26714
+ 400: {
26715
+ headers: {
26716
+ [name: string]: unknown;
26717
+ };
26718
+ content: {
26719
+ "application/json": components["schemas"]["ErrorResponse"];
26720
+ };
26721
+ };
26722
+ /** @description Project not found, or it runs on Empirical-hosted. */
26723
+ 404: {
26724
+ headers: {
26725
+ [name: string]: unknown;
26726
+ };
26727
+ content: {
26728
+ "application/json": components["schemas"]["ErrorResponse"];
26729
+ };
26730
+ };
26731
+ /** @description The runner backend is disabled. */
26732
+ 409: {
26733
+ headers: {
26734
+ [name: string]: unknown;
26735
+ };
26736
+ content: {
26737
+ "application/json": components["schemas"]["ErrorResponse"];
26738
+ };
26739
+ };
26740
+ };
26741
+ };
26742
+ setProjectRunnerBackend: {
26743
+ parameters: {
26744
+ query?: never;
26745
+ header?: never;
26746
+ path: {
26747
+ /** @description Project ID. */
26748
+ project_id: number | null;
26749
+ };
26750
+ cookie?: never;
26751
+ };
26752
+ requestBody?: {
26753
+ content: {
26754
+ "application/json": components["schemas"]["SetProjectRunnerBackendBody"];
26755
+ };
26756
+ };
26757
+ responses: {
26758
+ /** @description The project's backend. */
26759
+ 200: {
26760
+ headers: {
26761
+ [name: string]: unknown;
26762
+ };
26763
+ content: {
26764
+ "application/json": components["schemas"]["ProjectRunnerBackendResponse"];
26765
+ };
26766
+ };
26767
+ /** @description The backend belongs to another org or is not active. */
26768
+ 400: {
26769
+ headers: {
26770
+ [name: string]: unknown;
26771
+ };
26772
+ content: {
26773
+ "application/json": components["schemas"]["ErrorResponse"];
26774
+ };
26775
+ };
26776
+ /** @description Project or runner backend not found. */
26777
+ 404: {
26778
+ headers: {
26779
+ [name: string]: unknown;
26780
+ };
26781
+ content: {
26782
+ "application/json": components["schemas"]["ErrorResponse"];
26783
+ };
26784
+ };
26785
+ };
26786
+ };
25957
26787
  listSandboxSnapshots: {
25958
26788
  parameters: {
25959
26789
  query?: never;
@@ -26624,6 +27454,26 @@ export interface operations {
26624
27454
  };
26625
27455
  };
26626
27456
  };
27457
+ getCurrentUser: {
27458
+ parameters: {
27459
+ query?: never;
27460
+ header?: never;
27461
+ path?: never;
27462
+ cookie?: never;
27463
+ };
27464
+ requestBody?: never;
27465
+ responses: {
27466
+ /** @description The current user. */
27467
+ 200: {
27468
+ headers: {
27469
+ [name: string]: unknown;
27470
+ };
27471
+ content: {
27472
+ "application/json": components["schemas"]["CurrentUserResponse"];
27473
+ };
27474
+ };
27475
+ };
27476
+ };
26627
27477
  createMyMemberships: {
26628
27478
  parameters: {
26629
27479
  query?: never;