@cesar-richard/git-connector-sdk 4.21.0 → 4.22.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/schema.d.ts +3767 -66
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -129,7 +129,7 @@ export interface paths {
|
|
|
129
129
|
delete?: never;
|
|
130
130
|
options?: never;
|
|
131
131
|
head?: never;
|
|
132
|
-
/** @description Partial upsert of a tracker's delivery/opened label and native-status sets. Judged on the RESULT of the partial upsert, not on the patch. One combination is rejected with 400: a GITHUB tracker declaring delivering statuses and NO delivery label — the Project v2 status CHRONOLOGY has no reader, so nothing would be left to classify a delivery and the tracker's CRA would be silently empty. GitHub + statuses + labels is accepted (the label stage governs, the status stage contributes nothing it can read), `openedStatuses` is unaffected, and clearing `deliveryStatuses` is always accepted. GitLab accepts status-only rules — that is a supported, label-free delivery process. */
|
|
132
|
+
/** @description Partial upsert of a tracker's delivery/opened label and native-status sets. Judged on the RESULT of the partial upsert, not on the patch. One combination is rejected with 400: a GITHUB tracker declaring delivering statuses and NO delivery label — the Project v2 status CHRONOLOGY has no reader, so nothing would be left to classify a delivery and the tracker's CRA would be silently empty. GitHub + statuses + labels is accepted (the label stage governs, the status stage contributes nothing it can read), `openedStatuses` is unaffected, and clearing `deliveryStatuses` is always accepted. GitLab accepts status-only rules — that is a supported, label-free delivery process. Optional `If-Match` preview token: 409 and no write when stale. */
|
|
133
133
|
patch: operations["patchV1ProjectsBySourceByProjectKeyDelivery-rules"];
|
|
134
134
|
trace?: never;
|
|
135
135
|
};
|
|
@@ -146,6 +146,7 @@ export interface paths {
|
|
|
146
146
|
delete?: never;
|
|
147
147
|
options?: never;
|
|
148
148
|
head?: never;
|
|
149
|
+
/** @description Optional `If-Match` preview token: 409 and no write when the configuration changed since the preview or the body differs. */
|
|
149
150
|
patch: operations["patchV1ApplicationsBySlugDelivery-rules"];
|
|
150
151
|
trace?: never;
|
|
151
152
|
};
|
|
@@ -162,7 +163,8 @@ export interface paths {
|
|
|
162
163
|
delete?: never;
|
|
163
164
|
options?: never;
|
|
164
165
|
head?: never;
|
|
165
|
-
|
|
166
|
+
/** @description Per-field update of a tracker's workflow rules: a field left out keeps its stored value, `statusSource: null` clears it. Validated on the merged result. Operator scope required. Optional `If-Match` preview token: 409 and no write when stale. */
|
|
167
|
+
patch: operations["patchV1ProjectsBySourceByProjectKeyWorkflow-rules"];
|
|
166
168
|
trace?: never;
|
|
167
169
|
};
|
|
168
170
|
"/v1/projects": {
|
|
@@ -255,6 +257,7 @@ export interface paths {
|
|
|
255
257
|
};
|
|
256
258
|
get?: never;
|
|
257
259
|
put?: never;
|
|
260
|
+
/** @description Optional `If-Match` preview token: 409 and no write when the alias list changed since the preview or the body differs. */
|
|
258
261
|
post: operations["postV1IdentitiesByIdAliases"];
|
|
259
262
|
delete?: never;
|
|
260
263
|
options?: never;
|
|
@@ -272,6 +275,7 @@ export interface paths {
|
|
|
272
275
|
get?: never;
|
|
273
276
|
put?: never;
|
|
274
277
|
post?: never;
|
|
278
|
+
/** @description Optional `If-Match` preview token: 409 and no write when the alias list changed since the preview. */
|
|
275
279
|
delete: operations["deleteV1IdentitiesByIdAliasesByProviderByLogin"];
|
|
276
280
|
options?: never;
|
|
277
281
|
head?: never;
|
|
@@ -294,6 +298,143 @@ export interface paths {
|
|
|
294
298
|
patch?: never;
|
|
295
299
|
trace?: never;
|
|
296
300
|
};
|
|
301
|
+
"/v1/review/items": {
|
|
302
|
+
parameters: {
|
|
303
|
+
query?: never;
|
|
304
|
+
header?: never;
|
|
305
|
+
path?: never;
|
|
306
|
+
cookie?: never;
|
|
307
|
+
};
|
|
308
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. La file « À traiter » : `kinds` est un CSV parmi `ambiguous`, `uncertain`, `unresolved`, `undelivered`, `unassigned`, `workflow-conflict`, `unmapped-status` ; un kind inconnu est un 400. */
|
|
309
|
+
get: operations["getV1ReviewItems"];
|
|
310
|
+
put?: never;
|
|
311
|
+
post?: never;
|
|
312
|
+
delete?: never;
|
|
313
|
+
options?: never;
|
|
314
|
+
head?: never;
|
|
315
|
+
patch?: never;
|
|
316
|
+
trace?: never;
|
|
317
|
+
};
|
|
318
|
+
"/v1/review/items/{key}/seen": {
|
|
319
|
+
parameters: {
|
|
320
|
+
query?: never;
|
|
321
|
+
header?: never;
|
|
322
|
+
path?: never;
|
|
323
|
+
cookie?: never;
|
|
324
|
+
};
|
|
325
|
+
get?: never;
|
|
326
|
+
put?: never;
|
|
327
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. Masque une ligne jusqu'à ce que son contenu change. */
|
|
328
|
+
post: operations["postV1ReviewItemsByKeySeen"];
|
|
329
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. Remet la ligne dans la liste. */
|
|
330
|
+
delete: operations["deleteV1ReviewItemsByKeySeen"];
|
|
331
|
+
options?: never;
|
|
332
|
+
head?: never;
|
|
333
|
+
patch?: never;
|
|
334
|
+
trace?: never;
|
|
335
|
+
};
|
|
336
|
+
"/v1/sync": {
|
|
337
|
+
parameters: {
|
|
338
|
+
query?: never;
|
|
339
|
+
header?: never;
|
|
340
|
+
path?: never;
|
|
341
|
+
cookie?: never;
|
|
342
|
+
};
|
|
343
|
+
get?: never;
|
|
344
|
+
put?: never;
|
|
345
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. Resynchronise un seul dépôt (`repo` obligatoire), éventuellement sur les `days` derniers jours. Jamais de backfill complet : `backfill` est refusé (400). Un dépôt ni code ni tracker déclaré est refusé (404). Un dépôt sans curseur est backfillé automatiquement par la synchro normale (comme le cron). */
|
|
346
|
+
post: operations["postV1Sync"];
|
|
347
|
+
delete?: never;
|
|
348
|
+
options?: never;
|
|
349
|
+
head?: never;
|
|
350
|
+
patch?: never;
|
|
351
|
+
trace?: never;
|
|
352
|
+
};
|
|
353
|
+
"/v1/previews/delivery-rules": {
|
|
354
|
+
parameters: {
|
|
355
|
+
query?: never;
|
|
356
|
+
header?: never;
|
|
357
|
+
path?: never;
|
|
358
|
+
cookie?: never;
|
|
359
|
+
};
|
|
360
|
+
get?: never;
|
|
361
|
+
put?: never;
|
|
362
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. Lecture seule : rien n'est écrit. Simulates `/v1/deliverables` on the window with the proposed delivery rules substituted in memory (per-field merge, exactly like the PATCH): lines that appear, disappear, change month or attribution, on `issues[]` and `standalone[]`. `diff.scoped` (with `identity`) is that person's invoice. Same 400 as the PATCH for a GitHub tracker left with delivering statuses and no delivery label. */
|
|
363
|
+
post: operations["postV1PreviewsDelivery-rules"];
|
|
364
|
+
delete?: never;
|
|
365
|
+
options?: never;
|
|
366
|
+
head?: never;
|
|
367
|
+
patch?: never;
|
|
368
|
+
trace?: never;
|
|
369
|
+
};
|
|
370
|
+
"/v1/previews/workflow-rules": {
|
|
371
|
+
parameters: {
|
|
372
|
+
query?: never;
|
|
373
|
+
header?: never;
|
|
374
|
+
path?: never;
|
|
375
|
+
cookie?: never;
|
|
376
|
+
};
|
|
377
|
+
get?: never;
|
|
378
|
+
put?: never;
|
|
379
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. Lecture seule : rien n'est écrit. No CRA effect: returns the rules before/after (per-field merge, exactly like the PATCH) and the `workflow.state` distribution of the tracker's OPEN issues before/after, with the issues whose state changes (≤ 200). */
|
|
380
|
+
post: operations["postV1PreviewsWorkflow-rules"];
|
|
381
|
+
delete?: never;
|
|
382
|
+
options?: never;
|
|
383
|
+
head?: never;
|
|
384
|
+
patch?: never;
|
|
385
|
+
trace?: never;
|
|
386
|
+
};
|
|
387
|
+
"/v1/previews/identity-aliases": {
|
|
388
|
+
parameters: {
|
|
389
|
+
query?: never;
|
|
390
|
+
header?: never;
|
|
391
|
+
path?: never;
|
|
392
|
+
cookie?: never;
|
|
393
|
+
};
|
|
394
|
+
get?: never;
|
|
395
|
+
put?: never;
|
|
396
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. Lecture seule : rien n'est écrit. The scoped `/v1/deliverables` view of the identity with the proposed alias list substituted. Adding an alias already held by ANOTHER identity moves it: that identity's own invoice changes too and is not shown here. */
|
|
397
|
+
post: operations["postV1PreviewsIdentity-aliases"];
|
|
398
|
+
delete?: never;
|
|
399
|
+
options?: never;
|
|
400
|
+
head?: never;
|
|
401
|
+
patch?: never;
|
|
402
|
+
trace?: never;
|
|
403
|
+
};
|
|
404
|
+
"/v1/projects/{source}/{projectKey}/profile": {
|
|
405
|
+
parameters: {
|
|
406
|
+
query?: never;
|
|
407
|
+
header?: never;
|
|
408
|
+
path?: never;
|
|
409
|
+
cookie?: never;
|
|
410
|
+
};
|
|
411
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. Lecture seule, descriptive : jamais lue par la corrélation ni par le CRA. Shape of one tracker: issue counts (those UPDATED in [from, to]), workflow origin/state, native statuses, labels (top 50), per-assignee state, and merge-request counts of the same-named code repo. */
|
|
412
|
+
get: operations["getV1ProjectsBySourceByProjectKeyProfile"];
|
|
413
|
+
put?: never;
|
|
414
|
+
post?: never;
|
|
415
|
+
delete?: never;
|
|
416
|
+
options?: never;
|
|
417
|
+
head?: never;
|
|
418
|
+
patch?: never;
|
|
419
|
+
trace?: never;
|
|
420
|
+
};
|
|
421
|
+
"/v1/projects/{source}/{projectKey}/label-status-correspondence": {
|
|
422
|
+
parameters: {
|
|
423
|
+
query?: never;
|
|
424
|
+
header?: never;
|
|
425
|
+
path?: never;
|
|
426
|
+
cookie?: never;
|
|
427
|
+
};
|
|
428
|
+
/** @description Réservée à la portée opérateur (MCP) — hors contrat consommateur. Lecture seule, descriptive : jamais lue par la corrélation ni par le CRA. For each label ADDED to an issue, the native statuses set within ±windowHours (default 48, 1..720) on the same issue — reveals which labels a team uses as a stand-in for a status. Needs the status chronology (read once the tracker declares a GitLab status source or delivering statuses). */
|
|
429
|
+
get: operations["getV1ProjectsBySourceByProjectKeyLabel-status-correspondence"];
|
|
430
|
+
put?: never;
|
|
431
|
+
post?: never;
|
|
432
|
+
delete?: never;
|
|
433
|
+
options?: never;
|
|
434
|
+
head?: never;
|
|
435
|
+
patch?: never;
|
|
436
|
+
trace?: never;
|
|
437
|
+
};
|
|
297
438
|
}
|
|
298
439
|
export type webhooks = Record<string, never>;
|
|
299
440
|
export interface components {
|
|
@@ -352,8 +493,10 @@ export interface components {
|
|
|
352
493
|
severity: string | null;
|
|
353
494
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
354
495
|
mergedBy: string | null;
|
|
355
|
-
/** @description Branch merged INTO. The source side is `
|
|
496
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
356
497
|
targetBranch: string | null;
|
|
498
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
499
|
+
sourceBranch: string | null;
|
|
357
500
|
/** @description Slugs of the applications (see /v1/applications) that claim this item. A code-repo item (PR/MR) is claimed by the application that declares its repo; an issue is claimed by label match (declared `issueLabels`) OR by being referenced through a CONFIRMED link from a PR/MR in one of the application's code repos OR by being hosted in one of those code repos itself (the GitHub shape where the code repo is also the tracker) — the signals are a union, so the array can hold more than one slug. ORDER IS SIGNIFICANT: the array is sorted by DECREASING attachment-signal strength — a `label` claim first, then a `link` claim, then a `code_repo` claim, the order declared in the application config breaking ties at equal strength — and the FIRST slug is the application whose delivery rules govern this issue (its own rules per field, falling back to the tracker's field by field — see GET /v1/applications/{slug}/delivery-rules). A hand-placed scoped label is an assertion of ownership; an issue merely living in a code repo is an organisational coincidence, so the former governs. Empty array when the item is not attached to any application, in which case the tracker's rules govern. */
|
|
358
501
|
applications: string[];
|
|
359
502
|
number: string | number;
|
|
@@ -459,8 +602,10 @@ export interface components {
|
|
|
459
602
|
severity: string | null;
|
|
460
603
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
461
604
|
mergedBy: string | null;
|
|
462
|
-
/** @description Branch merged INTO. The source side is `
|
|
605
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
463
606
|
targetBranch: string | null;
|
|
607
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
608
|
+
sourceBranch: string | null;
|
|
464
609
|
/** @description Slugs of the applications (see /v1/applications) that claim this item. A code-repo item (PR/MR) is claimed by the application that declares its repo; an issue is claimed by label match (declared `issueLabels`) OR by being referenced through a CONFIRMED link from a PR/MR in one of the application's code repos OR by being hosted in one of those code repos itself (the GitHub shape where the code repo is also the tracker) — the signals are a union, so the array can hold more than one slug. ORDER IS SIGNIFICANT: the array is sorted by DECREASING attachment-signal strength — a `label` claim first, then a `link` claim, then a `code_repo` claim, the order declared in the application config breaking ties at equal strength — and the FIRST slug is the application whose delivery rules govern this issue (its own rules per field, falling back to the tracker's field by field — see GET /v1/applications/{slug}/delivery-rules). A hand-placed scoped label is an assertion of ownership; an issue merely living in a code repo is an organisational coincidence, so the former governs. Empty array when the item is not attached to any application, in which case the tracker's rules govern. */
|
|
465
610
|
applications: string[];
|
|
466
611
|
number: string | number;
|
|
@@ -742,8 +887,10 @@ export interface components {
|
|
|
742
887
|
mergedAt: string | null;
|
|
743
888
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
744
889
|
mergedBy: string | null;
|
|
745
|
-
/** @description Branch merged INTO. The source side is `
|
|
890
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
746
891
|
targetBranch: string | null;
|
|
892
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
893
|
+
sourceBranch: string | null;
|
|
747
894
|
reviewRequestedAt: string | null;
|
|
748
895
|
volume: {
|
|
749
896
|
additions: string | number;
|
|
@@ -939,6 +1086,121 @@ export interface components {
|
|
|
939
1086
|
changedBy: string | null;
|
|
940
1087
|
}[];
|
|
941
1088
|
};
|
|
1089
|
+
DeliverableLineChange: {
|
|
1090
|
+
kind: "issue" | "standalone";
|
|
1091
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1092
|
+
key: string;
|
|
1093
|
+
title: string;
|
|
1094
|
+
url: string;
|
|
1095
|
+
before: {
|
|
1096
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1097
|
+
deliveredAt: string | null;
|
|
1098
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1099
|
+
attribution: string | null;
|
|
1100
|
+
} | null;
|
|
1101
|
+
after: {
|
|
1102
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1103
|
+
deliveredAt: string | null;
|
|
1104
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1105
|
+
attribution: string | null;
|
|
1106
|
+
} | null;
|
|
1107
|
+
};
|
|
1108
|
+
DeliverableLineState: {
|
|
1109
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1110
|
+
deliveredAt: string | null;
|
|
1111
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1112
|
+
attribution: string | null;
|
|
1113
|
+
};
|
|
1114
|
+
DeliverablesDiff: {
|
|
1115
|
+
appeared: {
|
|
1116
|
+
kind: "issue" | "standalone";
|
|
1117
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1118
|
+
key: string;
|
|
1119
|
+
title: string;
|
|
1120
|
+
url: string;
|
|
1121
|
+
before: {
|
|
1122
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1123
|
+
deliveredAt: string | null;
|
|
1124
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1125
|
+
attribution: string | null;
|
|
1126
|
+
} | null;
|
|
1127
|
+
after: {
|
|
1128
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1129
|
+
deliveredAt: string | null;
|
|
1130
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1131
|
+
attribution: string | null;
|
|
1132
|
+
} | null;
|
|
1133
|
+
}[];
|
|
1134
|
+
disappeared: {
|
|
1135
|
+
kind: "issue" | "standalone";
|
|
1136
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1137
|
+
key: string;
|
|
1138
|
+
title: string;
|
|
1139
|
+
url: string;
|
|
1140
|
+
before: {
|
|
1141
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1142
|
+
deliveredAt: string | null;
|
|
1143
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1144
|
+
attribution: string | null;
|
|
1145
|
+
} | null;
|
|
1146
|
+
after: {
|
|
1147
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1148
|
+
deliveredAt: string | null;
|
|
1149
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1150
|
+
attribution: string | null;
|
|
1151
|
+
} | null;
|
|
1152
|
+
}[];
|
|
1153
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
1154
|
+
movedMonth: {
|
|
1155
|
+
kind: "issue" | "standalone";
|
|
1156
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1157
|
+
key: string;
|
|
1158
|
+
title: string;
|
|
1159
|
+
url: string;
|
|
1160
|
+
before: {
|
|
1161
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1162
|
+
deliveredAt: string | null;
|
|
1163
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1164
|
+
attribution: string | null;
|
|
1165
|
+
} | null;
|
|
1166
|
+
after: {
|
|
1167
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1168
|
+
deliveredAt: string | null;
|
|
1169
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1170
|
+
attribution: string | null;
|
|
1171
|
+
} | null;
|
|
1172
|
+
}[];
|
|
1173
|
+
/** @description Only meaningful on a scoped run. */
|
|
1174
|
+
attributionChanged: {
|
|
1175
|
+
kind: "issue" | "standalone";
|
|
1176
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1177
|
+
key: string;
|
|
1178
|
+
title: string;
|
|
1179
|
+
url: string;
|
|
1180
|
+
before: {
|
|
1181
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1182
|
+
deliveredAt: string | null;
|
|
1183
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1184
|
+
attribution: string | null;
|
|
1185
|
+
} | null;
|
|
1186
|
+
after: {
|
|
1187
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1188
|
+
deliveredAt: string | null;
|
|
1189
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1190
|
+
attribution: string | null;
|
|
1191
|
+
} | null;
|
|
1192
|
+
}[];
|
|
1193
|
+
totals: {
|
|
1194
|
+
before: {
|
|
1195
|
+
issues: string | number;
|
|
1196
|
+
standalone: string | number;
|
|
1197
|
+
};
|
|
1198
|
+
after: {
|
|
1199
|
+
issues: string | number;
|
|
1200
|
+
standalone: string | number;
|
|
1201
|
+
};
|
|
1202
|
+
};
|
|
1203
|
+
};
|
|
942
1204
|
DeliverablesListResponse: {
|
|
943
1205
|
issues: {
|
|
944
1206
|
source: "github" | "gitlab";
|
|
@@ -1015,8 +1277,10 @@ export interface components {
|
|
|
1015
1277
|
mergedAt: string | null;
|
|
1016
1278
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
1017
1279
|
mergedBy: string | null;
|
|
1018
|
-
/** @description Branch merged INTO. The source side is `
|
|
1280
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
1019
1281
|
targetBranch: string | null;
|
|
1282
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
1283
|
+
sourceBranch: string | null;
|
|
1020
1284
|
reviewRequestedAt: string | null;
|
|
1021
1285
|
volume: {
|
|
1022
1286
|
additions: string | number;
|
|
@@ -1272,6 +1536,257 @@ export interface components {
|
|
|
1272
1536
|
deliveryStatuses?: string[];
|
|
1273
1537
|
openedStatuses?: string[];
|
|
1274
1538
|
};
|
|
1539
|
+
DeliveryRulesPreviewRequest: {
|
|
1540
|
+
target: {
|
|
1541
|
+
/** @constant */
|
|
1542
|
+
kind: "tracker";
|
|
1543
|
+
source: "github" | "gitlab";
|
|
1544
|
+
projectKey: string;
|
|
1545
|
+
} | {
|
|
1546
|
+
/** @constant */
|
|
1547
|
+
kind: "application";
|
|
1548
|
+
slug: string;
|
|
1549
|
+
};
|
|
1550
|
+
patch: {
|
|
1551
|
+
deliveryLabels?: string[];
|
|
1552
|
+
openedLabels?: string[];
|
|
1553
|
+
deliveryStatuses?: string[];
|
|
1554
|
+
openedStatuses?: string[];
|
|
1555
|
+
};
|
|
1556
|
+
/** @description Window start (ISO date or datetime). */
|
|
1557
|
+
from: string;
|
|
1558
|
+
/** @description Window end (ISO date or datetime). */
|
|
1559
|
+
to: string;
|
|
1560
|
+
/** @description Identity id for the scoped view (attribution changes, i.e. that person's invoice). Absent: `diff.scoped` is null. */
|
|
1561
|
+
identity?: string | number;
|
|
1562
|
+
};
|
|
1563
|
+
DeliveryRulesPreviewResponse: {
|
|
1564
|
+
current: {
|
|
1565
|
+
source: "github" | "gitlab";
|
|
1566
|
+
projectKey: string;
|
|
1567
|
+
deliveryLabels: string[];
|
|
1568
|
+
openedLabels: string[];
|
|
1569
|
+
/** @description Native Status values (GitLab Status widget) that mark an issue delivered. Empty means nothing declared, never 'no gate'. */
|
|
1570
|
+
deliveryStatuses: string[];
|
|
1571
|
+
/** @description Native Status values that (re)open an issue. Empty means nothing declared. */
|
|
1572
|
+
openedStatuses: string[];
|
|
1573
|
+
updatedAt: string | null;
|
|
1574
|
+
} | {
|
|
1575
|
+
applicationSlug: string;
|
|
1576
|
+
/** @description Labels whose addition marks an issue delivered FOR THIS APPLICATION. Non-empty means these rules replace the tracker's for every issue the application claims; empty means the application declares nothing and its tracker's rules stay in force. */
|
|
1577
|
+
deliveryLabels: string[];
|
|
1578
|
+
/** @description Labels marking an issue in progress for this application. Only read when `deliveryLabels` is non-empty — a rule set with no delivery label cannot decide a delivery and never shadows the tracker's. */
|
|
1579
|
+
openedLabels: string[];
|
|
1580
|
+
updatedAt: string | null;
|
|
1581
|
+
};
|
|
1582
|
+
proposed: {
|
|
1583
|
+
source: "github" | "gitlab";
|
|
1584
|
+
projectKey: string;
|
|
1585
|
+
deliveryLabels: string[];
|
|
1586
|
+
openedLabels: string[];
|
|
1587
|
+
/** @description Native Status values (GitLab Status widget) that mark an issue delivered. Empty means nothing declared, never 'no gate'. */
|
|
1588
|
+
deliveryStatuses: string[];
|
|
1589
|
+
/** @description Native Status values that (re)open an issue. Empty means nothing declared. */
|
|
1590
|
+
openedStatuses: string[];
|
|
1591
|
+
updatedAt: string | null;
|
|
1592
|
+
} | {
|
|
1593
|
+
applicationSlug: string;
|
|
1594
|
+
/** @description Labels whose addition marks an issue delivered FOR THIS APPLICATION. Non-empty means these rules replace the tracker's for every issue the application claims; empty means the application declares nothing and its tracker's rules stay in force. */
|
|
1595
|
+
deliveryLabels: string[];
|
|
1596
|
+
/** @description Labels marking an issue in progress for this application. Only read when `deliveryLabels` is non-empty — a rule set with no delivery label cannot decide a delivery and never shadows the tracker's. */
|
|
1597
|
+
openedLabels: string[];
|
|
1598
|
+
updatedAt: string | null;
|
|
1599
|
+
};
|
|
1600
|
+
diff: {
|
|
1601
|
+
unscoped: {
|
|
1602
|
+
appeared: {
|
|
1603
|
+
kind: "issue" | "standalone";
|
|
1604
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1605
|
+
key: string;
|
|
1606
|
+
title: string;
|
|
1607
|
+
url: string;
|
|
1608
|
+
before: {
|
|
1609
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1610
|
+
deliveredAt: string | null;
|
|
1611
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1612
|
+
attribution: string | null;
|
|
1613
|
+
} | null;
|
|
1614
|
+
after: {
|
|
1615
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1616
|
+
deliveredAt: string | null;
|
|
1617
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1618
|
+
attribution: string | null;
|
|
1619
|
+
} | null;
|
|
1620
|
+
}[];
|
|
1621
|
+
disappeared: {
|
|
1622
|
+
kind: "issue" | "standalone";
|
|
1623
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1624
|
+
key: string;
|
|
1625
|
+
title: string;
|
|
1626
|
+
url: string;
|
|
1627
|
+
before: {
|
|
1628
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1629
|
+
deliveredAt: string | null;
|
|
1630
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1631
|
+
attribution: string | null;
|
|
1632
|
+
} | null;
|
|
1633
|
+
after: {
|
|
1634
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1635
|
+
deliveredAt: string | null;
|
|
1636
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1637
|
+
attribution: string | null;
|
|
1638
|
+
} | null;
|
|
1639
|
+
}[];
|
|
1640
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
1641
|
+
movedMonth: {
|
|
1642
|
+
kind: "issue" | "standalone";
|
|
1643
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1644
|
+
key: string;
|
|
1645
|
+
title: string;
|
|
1646
|
+
url: string;
|
|
1647
|
+
before: {
|
|
1648
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1649
|
+
deliveredAt: string | null;
|
|
1650
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1651
|
+
attribution: string | null;
|
|
1652
|
+
} | null;
|
|
1653
|
+
after: {
|
|
1654
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1655
|
+
deliveredAt: string | null;
|
|
1656
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1657
|
+
attribution: string | null;
|
|
1658
|
+
} | null;
|
|
1659
|
+
}[];
|
|
1660
|
+
/** @description Only meaningful on a scoped run. */
|
|
1661
|
+
attributionChanged: {
|
|
1662
|
+
kind: "issue" | "standalone";
|
|
1663
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1664
|
+
key: string;
|
|
1665
|
+
title: string;
|
|
1666
|
+
url: string;
|
|
1667
|
+
before: {
|
|
1668
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1669
|
+
deliveredAt: string | null;
|
|
1670
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1671
|
+
attribution: string | null;
|
|
1672
|
+
} | null;
|
|
1673
|
+
after: {
|
|
1674
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1675
|
+
deliveredAt: string | null;
|
|
1676
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1677
|
+
attribution: string | null;
|
|
1678
|
+
} | null;
|
|
1679
|
+
}[];
|
|
1680
|
+
totals: {
|
|
1681
|
+
before: {
|
|
1682
|
+
issues: string | number;
|
|
1683
|
+
standalone: string | number;
|
|
1684
|
+
};
|
|
1685
|
+
after: {
|
|
1686
|
+
issues: string | number;
|
|
1687
|
+
standalone: string | number;
|
|
1688
|
+
};
|
|
1689
|
+
};
|
|
1690
|
+
};
|
|
1691
|
+
scoped: {
|
|
1692
|
+
appeared: {
|
|
1693
|
+
kind: "issue" | "standalone";
|
|
1694
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1695
|
+
key: string;
|
|
1696
|
+
title: string;
|
|
1697
|
+
url: string;
|
|
1698
|
+
before: {
|
|
1699
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1700
|
+
deliveredAt: string | null;
|
|
1701
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1702
|
+
attribution: string | null;
|
|
1703
|
+
} | null;
|
|
1704
|
+
after: {
|
|
1705
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1706
|
+
deliveredAt: string | null;
|
|
1707
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1708
|
+
attribution: string | null;
|
|
1709
|
+
} | null;
|
|
1710
|
+
}[];
|
|
1711
|
+
disappeared: {
|
|
1712
|
+
kind: "issue" | "standalone";
|
|
1713
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1714
|
+
key: string;
|
|
1715
|
+
title: string;
|
|
1716
|
+
url: string;
|
|
1717
|
+
before: {
|
|
1718
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1719
|
+
deliveredAt: string | null;
|
|
1720
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1721
|
+
attribution: string | null;
|
|
1722
|
+
} | null;
|
|
1723
|
+
after: {
|
|
1724
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1725
|
+
deliveredAt: string | null;
|
|
1726
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1727
|
+
attribution: string | null;
|
|
1728
|
+
} | null;
|
|
1729
|
+
}[];
|
|
1730
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
1731
|
+
movedMonth: {
|
|
1732
|
+
kind: "issue" | "standalone";
|
|
1733
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1734
|
+
key: string;
|
|
1735
|
+
title: string;
|
|
1736
|
+
url: string;
|
|
1737
|
+
before: {
|
|
1738
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1739
|
+
deliveredAt: string | null;
|
|
1740
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1741
|
+
attribution: string | null;
|
|
1742
|
+
} | null;
|
|
1743
|
+
after: {
|
|
1744
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1745
|
+
deliveredAt: string | null;
|
|
1746
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1747
|
+
attribution: string | null;
|
|
1748
|
+
} | null;
|
|
1749
|
+
}[];
|
|
1750
|
+
/** @description Only meaningful on a scoped run. */
|
|
1751
|
+
attributionChanged: {
|
|
1752
|
+
kind: "issue" | "standalone";
|
|
1753
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
1754
|
+
key: string;
|
|
1755
|
+
title: string;
|
|
1756
|
+
url: string;
|
|
1757
|
+
before: {
|
|
1758
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1759
|
+
deliveredAt: string | null;
|
|
1760
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1761
|
+
attribution: string | null;
|
|
1762
|
+
} | null;
|
|
1763
|
+
after: {
|
|
1764
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
1765
|
+
deliveredAt: string | null;
|
|
1766
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
1767
|
+
attribution: string | null;
|
|
1768
|
+
} | null;
|
|
1769
|
+
}[];
|
|
1770
|
+
totals: {
|
|
1771
|
+
before: {
|
|
1772
|
+
issues: string | number;
|
|
1773
|
+
standalone: string | number;
|
|
1774
|
+
};
|
|
1775
|
+
after: {
|
|
1776
|
+
issues: string | number;
|
|
1777
|
+
standalone: string | number;
|
|
1778
|
+
};
|
|
1779
|
+
};
|
|
1780
|
+
} | null;
|
|
1781
|
+
};
|
|
1782
|
+
/** @description Send as `If-Match` on the matching PATCH with the SAME body as `patch`. */
|
|
1783
|
+
previewToken: string;
|
|
1784
|
+
/** @description True when either CRA run (before or after, issues or standalone) was capped — the diff then covers only part of the window. */
|
|
1785
|
+
truncated: boolean;
|
|
1786
|
+
};
|
|
1787
|
+
ErrorBody: {
|
|
1788
|
+
error: string;
|
|
1789
|
+
};
|
|
1275
1790
|
ErrorResponse: {
|
|
1276
1791
|
error: string;
|
|
1277
1792
|
};
|
|
@@ -1773,33 +2288,147 @@ export interface components {
|
|
|
1773
2288
|
provider: "github" | "gitlab";
|
|
1774
2289
|
login: string;
|
|
1775
2290
|
};
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
2291
|
+
IdentityAliasesPreviewRequest: {
|
|
2292
|
+
identityId: string | number;
|
|
2293
|
+
op: "add" | "remove";
|
|
2294
|
+
provider: "github" | "gitlab";
|
|
2295
|
+
login: string;
|
|
2296
|
+
/** @description Window start (ISO date or datetime). */
|
|
2297
|
+
from: string;
|
|
2298
|
+
/** @description Window end (ISO date or datetime). */
|
|
2299
|
+
to: string;
|
|
2300
|
+
};
|
|
2301
|
+
IdentityAliasesPreviewResponse: {
|
|
2302
|
+
current: {
|
|
1781
2303
|
provider: "github" | "gitlab";
|
|
1782
2304
|
login: string;
|
|
1783
2305
|
}[];
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
2306
|
+
proposed: {
|
|
2307
|
+
provider: "github" | "gitlab";
|
|
2308
|
+
login: string;
|
|
2309
|
+
}[];
|
|
2310
|
+
diff: {
|
|
2311
|
+
appeared: {
|
|
2312
|
+
kind: "issue" | "standalone";
|
|
2313
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
2314
|
+
key: string;
|
|
2315
|
+
title: string;
|
|
2316
|
+
url: string;
|
|
2317
|
+
before: {
|
|
2318
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
2319
|
+
deliveredAt: string | null;
|
|
2320
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
2321
|
+
attribution: string | null;
|
|
2322
|
+
} | null;
|
|
2323
|
+
after: {
|
|
2324
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
2325
|
+
deliveredAt: string | null;
|
|
2326
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
2327
|
+
attribution: string | null;
|
|
2328
|
+
} | null;
|
|
2329
|
+
}[];
|
|
2330
|
+
disappeared: {
|
|
2331
|
+
kind: "issue" | "standalone";
|
|
2332
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
2333
|
+
key: string;
|
|
2334
|
+
title: string;
|
|
2335
|
+
url: string;
|
|
2336
|
+
before: {
|
|
2337
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
2338
|
+
deliveredAt: string | null;
|
|
2339
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
2340
|
+
attribution: string | null;
|
|
2341
|
+
} | null;
|
|
2342
|
+
after: {
|
|
2343
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
2344
|
+
deliveredAt: string | null;
|
|
2345
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
2346
|
+
attribution: string | null;
|
|
2347
|
+
} | null;
|
|
2348
|
+
}[];
|
|
2349
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
2350
|
+
movedMonth: {
|
|
2351
|
+
kind: "issue" | "standalone";
|
|
2352
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
2353
|
+
key: string;
|
|
2354
|
+
title: string;
|
|
2355
|
+
url: string;
|
|
2356
|
+
before: {
|
|
2357
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
2358
|
+
deliveredAt: string | null;
|
|
2359
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
2360
|
+
attribution: string | null;
|
|
2361
|
+
} | null;
|
|
2362
|
+
after: {
|
|
2363
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
2364
|
+
deliveredAt: string | null;
|
|
2365
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
2366
|
+
attribution: string | null;
|
|
2367
|
+
} | null;
|
|
2368
|
+
}[];
|
|
2369
|
+
/** @description Only meaningful on a scoped run. */
|
|
2370
|
+
attributionChanged: {
|
|
2371
|
+
kind: "issue" | "standalone";
|
|
2372
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
2373
|
+
key: string;
|
|
2374
|
+
title: string;
|
|
2375
|
+
url: string;
|
|
2376
|
+
before: {
|
|
2377
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
2378
|
+
deliveredAt: string | null;
|
|
2379
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
2380
|
+
attribution: string | null;
|
|
2381
|
+
} | null;
|
|
2382
|
+
after: {
|
|
2383
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
2384
|
+
deliveredAt: string | null;
|
|
2385
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
2386
|
+
attribution: string | null;
|
|
2387
|
+
} | null;
|
|
2388
|
+
}[];
|
|
2389
|
+
totals: {
|
|
2390
|
+
before: {
|
|
2391
|
+
issues: string | number;
|
|
2392
|
+
standalone: string | number;
|
|
2393
|
+
};
|
|
2394
|
+
after: {
|
|
2395
|
+
issues: string | number;
|
|
2396
|
+
standalone: string | number;
|
|
2397
|
+
};
|
|
2398
|
+
};
|
|
2399
|
+
};
|
|
2400
|
+
/** @description Send as `If-Match` on `POST /v1/identities/{id}/aliases` (op add, body `{provider, login}`) or `DELETE /v1/identities/{id}/aliases/{provider}/{login}` (op remove). */
|
|
2401
|
+
previewToken: string;
|
|
2402
|
+
/** @description True when either CRA run was capped. */
|
|
2403
|
+
truncated: boolean;
|
|
2404
|
+
};
|
|
2405
|
+
IdentityCreate: {
|
|
2406
|
+
displayName: string;
|
|
2407
|
+
email?: string | null;
|
|
2408
|
+
avatarUrl?: string | null;
|
|
2409
|
+
aliases?: {
|
|
2410
|
+
provider: "github" | "gitlab";
|
|
2411
|
+
login: string;
|
|
2412
|
+
}[];
|
|
2413
|
+
};
|
|
2414
|
+
IdentityPatch: {
|
|
2415
|
+
displayName?: string;
|
|
2416
|
+
email?: string | null;
|
|
2417
|
+
avatarUrl?: string | null;
|
|
2418
|
+
};
|
|
2419
|
+
IdentitySummary: {
|
|
2420
|
+
id: string | number;
|
|
2421
|
+
displayName: string;
|
|
2422
|
+
};
|
|
2423
|
+
IssueRef: {
|
|
2424
|
+
source: "github" | "gitlab";
|
|
2425
|
+
projectKey: string;
|
|
2426
|
+
number: string | number;
|
|
2427
|
+
};
|
|
2428
|
+
IterationWithCount: {
|
|
2429
|
+
id: string | number;
|
|
2430
|
+
title: string;
|
|
2431
|
+
startDate: string | null;
|
|
1803
2432
|
dueDate: string | null;
|
|
1804
2433
|
state: "upcoming" | "current" | "closed" | "unknown";
|
|
1805
2434
|
workItemCount: string | number;
|
|
@@ -1808,6 +2437,21 @@ export interface components {
|
|
|
1808
2437
|
name: string;
|
|
1809
2438
|
color: string | null;
|
|
1810
2439
|
};
|
|
2440
|
+
LabelStatusCorrespondence: {
|
|
2441
|
+
windowHours: string | number;
|
|
2442
|
+
/** @description true when the tracker holds more issues than were loaded for this answer, so the counts describe only part of it. */
|
|
2443
|
+
truncated: boolean;
|
|
2444
|
+
/** @description Issues with at least one `added` label event and at least one native-status change. */
|
|
2445
|
+
issuesWithBoth: string | number;
|
|
2446
|
+
labels: {
|
|
2447
|
+
label: string;
|
|
2448
|
+
occurrences: string | number;
|
|
2449
|
+
statuses: {
|
|
2450
|
+
status: string;
|
|
2451
|
+
count: string | number;
|
|
2452
|
+
}[];
|
|
2453
|
+
}[];
|
|
2454
|
+
};
|
|
1811
2455
|
LinkEvidence: {
|
|
1812
2456
|
field: string;
|
|
1813
2457
|
text: string;
|
|
@@ -1865,8 +2509,10 @@ export interface components {
|
|
|
1865
2509
|
mergedAt: string | null;
|
|
1866
2510
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
1867
2511
|
mergedBy: string | null;
|
|
1868
|
-
/** @description Branch merged INTO. The source side is `
|
|
2512
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
1869
2513
|
targetBranch: string | null;
|
|
2514
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
2515
|
+
sourceBranch: string | null;
|
|
1870
2516
|
reviewRequestedAt: string | null;
|
|
1871
2517
|
volume: {
|
|
1872
2518
|
additions: string | number;
|
|
@@ -1957,6 +2603,10 @@ export interface components {
|
|
|
1957
2603
|
title: string | null;
|
|
1958
2604
|
url: string | null;
|
|
1959
2605
|
};
|
|
2606
|
+
PreviewAlias: {
|
|
2607
|
+
provider: "github" | "gitlab";
|
|
2608
|
+
login: string;
|
|
2609
|
+
};
|
|
1960
2610
|
Progress: {
|
|
1961
2611
|
total: string | number;
|
|
1962
2612
|
completed: string | number;
|
|
@@ -1976,6 +2626,47 @@ export interface components {
|
|
|
1976
2626
|
}[];
|
|
1977
2627
|
fetchedAt: string;
|
|
1978
2628
|
};
|
|
2629
|
+
ProjectProfile: {
|
|
2630
|
+
issues: {
|
|
2631
|
+
total: string | number;
|
|
2632
|
+
open: string | number;
|
|
2633
|
+
withIteration: string | number;
|
|
2634
|
+
withMilestone: string | number;
|
|
2635
|
+
withAssignee: string | number;
|
|
2636
|
+
};
|
|
2637
|
+
/** @description Issues per `workflow.origin` (closed|status|label|signals). */
|
|
2638
|
+
workflowOrigin: {
|
|
2639
|
+
[key: string]: string | number;
|
|
2640
|
+
};
|
|
2641
|
+
/** @description OPEN issues per computed `workflow.state`. */
|
|
2642
|
+
workflowState: {
|
|
2643
|
+
[key: string]: string | number;
|
|
2644
|
+
};
|
|
2645
|
+
/** @description Current native status per issue, read as the LAST entry of its status chronology (`statusChanges`); issues with no chronology are not counted. Sorted by count desc then name. */
|
|
2646
|
+
nativeStatuses: {
|
|
2647
|
+
name: string;
|
|
2648
|
+
count: string | number;
|
|
2649
|
+
}[];
|
|
2650
|
+
/** @description Top 50 labels by issue count; see `labelsTruncated`. */
|
|
2651
|
+
labels: {
|
|
2652
|
+
name: string;
|
|
2653
|
+
count: string | number;
|
|
2654
|
+
}[];
|
|
2655
|
+
labelsTruncated: boolean;
|
|
2656
|
+
/** @description true when the tracker holds more issues than were loaded for this answer, so the counts describe only part of it. */
|
|
2657
|
+
truncated: boolean;
|
|
2658
|
+
perAssignee: {
|
|
2659
|
+
login: string;
|
|
2660
|
+
byState: {
|
|
2661
|
+
[key: string]: string | number;
|
|
2662
|
+
};
|
|
2663
|
+
}[];
|
|
2664
|
+
/** @description `null` when the project key has no PR/MR activity at all (a pure tracker); otherwise merged PR/MRs in the window and those NO issue bills (the standalone deliverables of that code repo). */
|
|
2665
|
+
mergeRequests: {
|
|
2666
|
+
mergedInWindow: string | number;
|
|
2667
|
+
withoutIssue: string | number;
|
|
2668
|
+
} | null;
|
|
2669
|
+
};
|
|
1979
2670
|
ProjectStatus: {
|
|
1980
2671
|
/** @description Status value exactly as the tracker spells it — this is what `workflow_rules.statusRules[].value` must match, since the native-status stage of the cascade compares EXACTLY (no prefix stripping, unlike flow labels). */
|
|
1981
2672
|
name: string;
|
|
@@ -2035,10 +2726,184 @@ export interface components {
|
|
|
2035
2726
|
submittedAt: string;
|
|
2036
2727
|
url: string | null;
|
|
2037
2728
|
};
|
|
2729
|
+
ReviewActivityRef: {
|
|
2730
|
+
id: string;
|
|
2731
|
+
provider: "github" | "gitlab";
|
|
2732
|
+
repo: string;
|
|
2733
|
+
type: string;
|
|
2734
|
+
number: string;
|
|
2735
|
+
title: string;
|
|
2736
|
+
url: string;
|
|
2737
|
+
author: string | null;
|
|
2738
|
+
};
|
|
2739
|
+
ReviewCandidate: {
|
|
2740
|
+
id: string;
|
|
2741
|
+
provider: "github" | "gitlab";
|
|
2742
|
+
repo: string;
|
|
2743
|
+
type: string;
|
|
2744
|
+
number: string;
|
|
2745
|
+
title: string;
|
|
2746
|
+
url: string;
|
|
2747
|
+
author: string | null;
|
|
2748
|
+
attributable: boolean;
|
|
2749
|
+
snippets: {
|
|
2750
|
+
label: string;
|
|
2751
|
+
text: string;
|
|
2752
|
+
}[];
|
|
2753
|
+
};
|
|
2038
2754
|
ReviewEventMeta: {
|
|
2039
2755
|
[key: string]: unknown;
|
|
2040
2756
|
};
|
|
2757
|
+
ReviewFixSnippet: {
|
|
2758
|
+
label: string;
|
|
2759
|
+
text: string;
|
|
2760
|
+
};
|
|
2761
|
+
ReviewItem: {
|
|
2762
|
+
key: string;
|
|
2763
|
+
kind: "ambiguous" | "uncertain" | "unresolved" | "undelivered" | "unassigned" | "workflow-conflict" | "unmapped-status";
|
|
2764
|
+
fingerprint: string;
|
|
2765
|
+
title: string;
|
|
2766
|
+
detail: string;
|
|
2767
|
+
occurredAt: string;
|
|
2768
|
+
activity: {
|
|
2769
|
+
id: string;
|
|
2770
|
+
provider: "github" | "gitlab";
|
|
2771
|
+
repo: string;
|
|
2772
|
+
type: string;
|
|
2773
|
+
number: string;
|
|
2774
|
+
title: string;
|
|
2775
|
+
url: string;
|
|
2776
|
+
author: string | null;
|
|
2777
|
+
} | null;
|
|
2778
|
+
target: {
|
|
2779
|
+
source: "github" | "gitlab";
|
|
2780
|
+
projectKey: string;
|
|
2781
|
+
number: string | number;
|
|
2782
|
+
url: string | null;
|
|
2783
|
+
} | null;
|
|
2784
|
+
evidence: string | null;
|
|
2785
|
+
error: string | null;
|
|
2786
|
+
candidates: {
|
|
2787
|
+
id: string;
|
|
2788
|
+
provider: "github" | "gitlab";
|
|
2789
|
+
repo: string;
|
|
2790
|
+
type: string;
|
|
2791
|
+
number: string;
|
|
2792
|
+
title: string;
|
|
2793
|
+
url: string;
|
|
2794
|
+
author: string | null;
|
|
2795
|
+
attributable: boolean;
|
|
2796
|
+
snippets: {
|
|
2797
|
+
label: string;
|
|
2798
|
+
text: string;
|
|
2799
|
+
}[];
|
|
2800
|
+
}[];
|
|
2801
|
+
confidence: number | null;
|
|
2802
|
+
linkKind: string | null;
|
|
2803
|
+
snippets: {
|
|
2804
|
+
label: string;
|
|
2805
|
+
text: string;
|
|
2806
|
+
}[];
|
|
2807
|
+
resyncRepo: string | null;
|
|
2808
|
+
seen: {
|
|
2809
|
+
by: string;
|
|
2810
|
+
at: string;
|
|
2811
|
+
} | null;
|
|
2812
|
+
mention: boolean;
|
|
2813
|
+
quiet: boolean;
|
|
2814
|
+
};
|
|
2815
|
+
ReviewItemsResponse: {
|
|
2816
|
+
window: {
|
|
2817
|
+
from: string;
|
|
2818
|
+
to: string;
|
|
2819
|
+
};
|
|
2820
|
+
counts: {
|
|
2821
|
+
ambiguous: number;
|
|
2822
|
+
uncertain: number;
|
|
2823
|
+
unresolved: number;
|
|
2824
|
+
undelivered: number;
|
|
2825
|
+
unassigned: number;
|
|
2826
|
+
"workflow-conflict": number;
|
|
2827
|
+
"unmapped-status": number;
|
|
2828
|
+
};
|
|
2829
|
+
truncated: {
|
|
2830
|
+
ambiguous: boolean;
|
|
2831
|
+
uncertain: boolean;
|
|
2832
|
+
unresolved: boolean;
|
|
2833
|
+
undelivered: boolean;
|
|
2834
|
+
unassigned: boolean;
|
|
2835
|
+
"workflow-conflict": boolean;
|
|
2836
|
+
"unmapped-status": boolean;
|
|
2837
|
+
};
|
|
2838
|
+
unseen: number;
|
|
2839
|
+
unseenMentions: number;
|
|
2840
|
+
legacyUnclassified: number;
|
|
2841
|
+
items: {
|
|
2842
|
+
key: string;
|
|
2843
|
+
kind: "ambiguous" | "uncertain" | "unresolved" | "undelivered" | "unassigned" | "workflow-conflict" | "unmapped-status";
|
|
2844
|
+
fingerprint: string;
|
|
2845
|
+
title: string;
|
|
2846
|
+
detail: string;
|
|
2847
|
+
occurredAt: string;
|
|
2848
|
+
activity: {
|
|
2849
|
+
id: string;
|
|
2850
|
+
provider: "github" | "gitlab";
|
|
2851
|
+
repo: string;
|
|
2852
|
+
type: string;
|
|
2853
|
+
number: string;
|
|
2854
|
+
title: string;
|
|
2855
|
+
url: string;
|
|
2856
|
+
author: string | null;
|
|
2857
|
+
} | null;
|
|
2858
|
+
target: {
|
|
2859
|
+
source: "github" | "gitlab";
|
|
2860
|
+
projectKey: string;
|
|
2861
|
+
number: string | number;
|
|
2862
|
+
url: string | null;
|
|
2863
|
+
} | null;
|
|
2864
|
+
evidence: string | null;
|
|
2865
|
+
error: string | null;
|
|
2866
|
+
candidates: {
|
|
2867
|
+
id: string;
|
|
2868
|
+
provider: "github" | "gitlab";
|
|
2869
|
+
repo: string;
|
|
2870
|
+
type: string;
|
|
2871
|
+
number: string;
|
|
2872
|
+
title: string;
|
|
2873
|
+
url: string;
|
|
2874
|
+
author: string | null;
|
|
2875
|
+
attributable: boolean;
|
|
2876
|
+
snippets: {
|
|
2877
|
+
label: string;
|
|
2878
|
+
text: string;
|
|
2879
|
+
}[];
|
|
2880
|
+
}[];
|
|
2881
|
+
confidence: number | null;
|
|
2882
|
+
linkKind: string | null;
|
|
2883
|
+
snippets: {
|
|
2884
|
+
label: string;
|
|
2885
|
+
text: string;
|
|
2886
|
+
}[];
|
|
2887
|
+
resyncRepo: string | null;
|
|
2888
|
+
seen: {
|
|
2889
|
+
by: string;
|
|
2890
|
+
at: string;
|
|
2891
|
+
} | null;
|
|
2892
|
+
mention: boolean;
|
|
2893
|
+
quiet: boolean;
|
|
2894
|
+
}[];
|
|
2895
|
+
};
|
|
2896
|
+
ReviewKind: "ambiguous" | "uncertain" | "unresolved" | "undelivered" | "unassigned" | "workflow-conflict" | "unmapped-status";
|
|
2897
|
+
ReviewSeenBody: {
|
|
2898
|
+
fingerprint: string;
|
|
2899
|
+
};
|
|
2041
2900
|
ReviewStatus: "draft" | "open-no-review" | "open-awaiting-my-review" | "open-awaiting-other-review" | "open-changes-requested" | "open-approved" | "merged" | "closed";
|
|
2901
|
+
ReviewTargetRef: {
|
|
2902
|
+
source: "github" | "gitlab";
|
|
2903
|
+
projectKey: string;
|
|
2904
|
+
number: string | number;
|
|
2905
|
+
url: string | null;
|
|
2906
|
+
};
|
|
2042
2907
|
ReviewsSummary: {
|
|
2043
2908
|
approvedCount: string | number;
|
|
2044
2909
|
changesRequestedCount: string | number;
|
|
@@ -2107,6 +2972,12 @@ export interface components {
|
|
|
2107
2972
|
changedAt: string;
|
|
2108
2973
|
changedBy: string | null;
|
|
2109
2974
|
};
|
|
2975
|
+
SyncAccepted: {
|
|
2976
|
+
/** @constant */
|
|
2977
|
+
status: "accepted";
|
|
2978
|
+
repoFilter: string;
|
|
2979
|
+
sinceDays?: string | number;
|
|
2980
|
+
};
|
|
2110
2981
|
ThreadDigest: {
|
|
2111
2982
|
id: string;
|
|
2112
2983
|
firstNoteAuthor: string | null;
|
|
@@ -2281,8 +3152,10 @@ export interface components {
|
|
|
2281
3152
|
mergedAt: string | null;
|
|
2282
3153
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
2283
3154
|
mergedBy: string | null;
|
|
2284
|
-
/** @description Branch merged INTO. The source side is `
|
|
3155
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
2285
3156
|
targetBranch: string | null;
|
|
3157
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
3158
|
+
sourceBranch: string | null;
|
|
2286
3159
|
reviewRequestedAt: string | null;
|
|
2287
3160
|
volume: {
|
|
2288
3161
|
additions: string | number;
|
|
@@ -2536,8 +3409,10 @@ export interface components {
|
|
|
2536
3409
|
mergedAt: string | null;
|
|
2537
3410
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
2538
3411
|
mergedBy: string | null;
|
|
2539
|
-
/** @description Branch merged INTO. The source side is `
|
|
3412
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
2540
3413
|
targetBranch: string | null;
|
|
3414
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
3415
|
+
sourceBranch: string | null;
|
|
2541
3416
|
reviewRequestedAt: string | null;
|
|
2542
3417
|
volume: {
|
|
2543
3418
|
additions: string | number;
|
|
@@ -2663,6 +3538,139 @@ export interface components {
|
|
|
2663
3538
|
prefix: string;
|
|
2664
3539
|
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2665
3540
|
};
|
|
3541
|
+
WorkflowRulesPatch: {
|
|
3542
|
+
labelRules?: {
|
|
3543
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
3544
|
+
prefix: string;
|
|
3545
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3546
|
+
}[];
|
|
3547
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
3548
|
+
statusSource?: {
|
|
3549
|
+
/** @constant */
|
|
3550
|
+
kind: "gitlab-native";
|
|
3551
|
+
} | {
|
|
3552
|
+
/** @constant */
|
|
3553
|
+
kind: "github-project";
|
|
3554
|
+
projectNumber: string | number;
|
|
3555
|
+
fieldName: string;
|
|
3556
|
+
} | null;
|
|
3557
|
+
statusRules?: {
|
|
3558
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
3559
|
+
value: string;
|
|
3560
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3561
|
+
}[];
|
|
3562
|
+
flowFamilies?: string[];
|
|
3563
|
+
};
|
|
3564
|
+
WorkflowRulesPreviewRequest: {
|
|
3565
|
+
source: "github" | "gitlab";
|
|
3566
|
+
projectKey: string;
|
|
3567
|
+
patch: {
|
|
3568
|
+
labelRules?: {
|
|
3569
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
3570
|
+
prefix: string;
|
|
3571
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3572
|
+
}[];
|
|
3573
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
3574
|
+
statusSource?: {
|
|
3575
|
+
/** @constant */
|
|
3576
|
+
kind: "gitlab-native";
|
|
3577
|
+
} | {
|
|
3578
|
+
/** @constant */
|
|
3579
|
+
kind: "github-project";
|
|
3580
|
+
projectNumber: string | number;
|
|
3581
|
+
fieldName: string;
|
|
3582
|
+
} | null;
|
|
3583
|
+
statusRules?: {
|
|
3584
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
3585
|
+
value: string;
|
|
3586
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3587
|
+
}[];
|
|
3588
|
+
flowFamilies?: string[];
|
|
3589
|
+
};
|
|
3590
|
+
};
|
|
3591
|
+
WorkflowRulesPreviewResponse: {
|
|
3592
|
+
current: {
|
|
3593
|
+
source: "github" | "gitlab";
|
|
3594
|
+
projectKey: string;
|
|
3595
|
+
labelRules: {
|
|
3596
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
3597
|
+
prefix: string;
|
|
3598
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3599
|
+
}[];
|
|
3600
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
3601
|
+
statusSource: {
|
|
3602
|
+
/** @constant */
|
|
3603
|
+
kind: "gitlab-native";
|
|
3604
|
+
} | {
|
|
3605
|
+
/** @constant */
|
|
3606
|
+
kind: "github-project";
|
|
3607
|
+
projectNumber: string | number;
|
|
3608
|
+
fieldName: string;
|
|
3609
|
+
} | null;
|
|
3610
|
+
statusRules: {
|
|
3611
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
3612
|
+
value: string;
|
|
3613
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3614
|
+
}[];
|
|
3615
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
3616
|
+
flowFamilies: string[];
|
|
3617
|
+
};
|
|
3618
|
+
proposed: {
|
|
3619
|
+
source: "github" | "gitlab";
|
|
3620
|
+
projectKey: string;
|
|
3621
|
+
labelRules: {
|
|
3622
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
3623
|
+
prefix: string;
|
|
3624
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3625
|
+
}[];
|
|
3626
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
3627
|
+
statusSource: {
|
|
3628
|
+
/** @constant */
|
|
3629
|
+
kind: "gitlab-native";
|
|
3630
|
+
} | {
|
|
3631
|
+
/** @constant */
|
|
3632
|
+
kind: "github-project";
|
|
3633
|
+
projectNumber: string | number;
|
|
3634
|
+
fieldName: string;
|
|
3635
|
+
} | null;
|
|
3636
|
+
statusRules: {
|
|
3637
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
3638
|
+
value: string;
|
|
3639
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3640
|
+
}[];
|
|
3641
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
3642
|
+
flowFamilies: string[];
|
|
3643
|
+
};
|
|
3644
|
+
stateDistribution: {
|
|
3645
|
+
before: {
|
|
3646
|
+
todo: string | number;
|
|
3647
|
+
doing: string | number;
|
|
3648
|
+
review: string | number;
|
|
3649
|
+
delivered: string | number;
|
|
3650
|
+
blocked: string | number;
|
|
3651
|
+
done: string | number;
|
|
3652
|
+
};
|
|
3653
|
+
after: {
|
|
3654
|
+
todo: string | number;
|
|
3655
|
+
doing: string | number;
|
|
3656
|
+
review: string | number;
|
|
3657
|
+
delivered: string | number;
|
|
3658
|
+
blocked: string | number;
|
|
3659
|
+
done: string | number;
|
|
3660
|
+
};
|
|
3661
|
+
};
|
|
3662
|
+
/** @description Open issues whose `workflow.state` changes, ≤ 200. */
|
|
3663
|
+
changedIssues: {
|
|
3664
|
+
number: string | number;
|
|
3665
|
+
title: string;
|
|
3666
|
+
before: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3667
|
+
after: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3668
|
+
}[];
|
|
3669
|
+
/** @description True when `changedIssues` was capped at 200, or when the open-issue load itself was capped (the distribution then covers part of the tracker). */
|
|
3670
|
+
truncated: boolean;
|
|
3671
|
+
/** @description Send as `If-Match` on the workflow-rules PATCH with the SAME body as `patch`. */
|
|
3672
|
+
previewToken: string;
|
|
3673
|
+
};
|
|
2666
3674
|
WorkflowRulesPut: {
|
|
2667
3675
|
labelRules: {
|
|
2668
3676
|
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
@@ -2920,8 +3928,10 @@ export interface operations {
|
|
|
2920
3928
|
mergedAt: string | null;
|
|
2921
3929
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
2922
3930
|
mergedBy: string | null;
|
|
2923
|
-
/** @description Branch merged INTO. The source side is `
|
|
3931
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
2924
3932
|
targetBranch: string | null;
|
|
3933
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
3934
|
+
sourceBranch: string | null;
|
|
2925
3935
|
reviewRequestedAt: string | null;
|
|
2926
3936
|
volume: {
|
|
2927
3937
|
additions: string | number;
|
|
@@ -3179,8 +4189,10 @@ export interface operations {
|
|
|
3179
4189
|
mergedAt: string | null;
|
|
3180
4190
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
3181
4191
|
mergedBy: string | null;
|
|
3182
|
-
/** @description Branch merged INTO. The source side is `
|
|
4192
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
3183
4193
|
targetBranch: string | null;
|
|
4194
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
4195
|
+
sourceBranch: string | null;
|
|
3184
4196
|
reviewRequestedAt: string | null;
|
|
3185
4197
|
volume: {
|
|
3186
4198
|
additions: string | number;
|
|
@@ -3438,8 +4450,10 @@ export interface operations {
|
|
|
3438
4450
|
mergedAt: string | null;
|
|
3439
4451
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
3440
4452
|
mergedBy: string | null;
|
|
3441
|
-
/** @description Branch merged INTO. The source side is `
|
|
4453
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
3442
4454
|
targetBranch: string | null;
|
|
4455
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
4456
|
+
sourceBranch: string | null;
|
|
3443
4457
|
reviewRequestedAt: string | null;
|
|
3444
4458
|
volume: {
|
|
3445
4459
|
additions: string | number;
|
|
@@ -3753,8 +4767,10 @@ export interface operations {
|
|
|
3753
4767
|
mergedAt: string | null;
|
|
3754
4768
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
3755
4769
|
mergedBy: string | null;
|
|
3756
|
-
/** @description Branch merged INTO. The source side is `
|
|
4770
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
3757
4771
|
targetBranch: string | null;
|
|
4772
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
4773
|
+
sourceBranch: string | null;
|
|
3758
4774
|
reviewRequestedAt: string | null;
|
|
3759
4775
|
volume: {
|
|
3760
4776
|
additions: string | number;
|
|
@@ -4007,8 +5023,10 @@ export interface operations {
|
|
|
4007
5023
|
mergedAt: string | null;
|
|
4008
5024
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
4009
5025
|
mergedBy: string | null;
|
|
4010
|
-
/** @description Branch merged INTO. The source side is `
|
|
5026
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
4011
5027
|
targetBranch: string | null;
|
|
5028
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
5029
|
+
sourceBranch: string | null;
|
|
4012
5030
|
reviewRequestedAt: string | null;
|
|
4013
5031
|
volume: {
|
|
4014
5032
|
additions: string | number;
|
|
@@ -4261,8 +5279,10 @@ export interface operations {
|
|
|
4261
5279
|
mergedAt: string | null;
|
|
4262
5280
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
4263
5281
|
mergedBy: string | null;
|
|
4264
|
-
/** @description Branch merged INTO. The source side is `
|
|
5282
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
4265
5283
|
targetBranch: string | null;
|
|
5284
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
5285
|
+
sourceBranch: string | null;
|
|
4266
5286
|
reviewRequestedAt: string | null;
|
|
4267
5287
|
volume: {
|
|
4268
5288
|
additions: string | number;
|
|
@@ -5337,8 +6357,10 @@ export interface operations {
|
|
|
5337
6357
|
severity: string | null;
|
|
5338
6358
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
5339
6359
|
mergedBy: string | null;
|
|
5340
|
-
/** @description Branch merged INTO. The source side is `
|
|
6360
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
5341
6361
|
targetBranch: string | null;
|
|
6362
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
6363
|
+
sourceBranch: string | null;
|
|
5342
6364
|
/** @description Slugs of the applications (see /v1/applications) that claim this item. A code-repo item (PR/MR) is claimed by the application that declares its repo; an issue is claimed by label match (declared `issueLabels`) OR by being referenced through a CONFIRMED link from a PR/MR in one of the application's code repos OR by being hosted in one of those code repos itself (the GitHub shape where the code repo is also the tracker) — the signals are a union, so the array can hold more than one slug. ORDER IS SIGNIFICANT: the array is sorted by DECREASING attachment-signal strength — a `label` claim first, then a `link` claim, then a `code_repo` claim, the order declared in the application config breaking ties at equal strength — and the FIRST slug is the application whose delivery rules govern this issue (its own rules per field, falling back to the tracker's field by field — see GET /v1/applications/{slug}/delivery-rules). A hand-placed scoped label is an assertion of ownership; an issue merely living in a code repo is an organisational coincidence, so the former governs. Empty array when the item is not attached to any application, in which case the tracker's rules govern. */
|
|
5343
6365
|
applications: string[];
|
|
5344
6366
|
number: string | number;
|
|
@@ -5445,8 +6467,10 @@ export interface operations {
|
|
|
5445
6467
|
severity: string | null;
|
|
5446
6468
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
5447
6469
|
mergedBy: string | null;
|
|
5448
|
-
/** @description Branch merged INTO. The source side is `
|
|
6470
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
5449
6471
|
targetBranch: string | null;
|
|
6472
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
6473
|
+
sourceBranch: string | null;
|
|
5450
6474
|
/** @description Slugs of the applications (see /v1/applications) that claim this item. A code-repo item (PR/MR) is claimed by the application that declares its repo; an issue is claimed by label match (declared `issueLabels`) OR by being referenced through a CONFIRMED link from a PR/MR in one of the application's code repos OR by being hosted in one of those code repos itself (the GitHub shape where the code repo is also the tracker) — the signals are a union, so the array can hold more than one slug. ORDER IS SIGNIFICANT: the array is sorted by DECREASING attachment-signal strength — a `label` claim first, then a `link` claim, then a `code_repo` claim, the order declared in the application config breaking ties at equal strength — and the FIRST slug is the application whose delivery rules govern this issue (its own rules per field, falling back to the tracker's field by field — see GET /v1/applications/{slug}/delivery-rules). A hand-placed scoped label is an assertion of ownership; an issue merely living in a code repo is an organisational coincidence, so the former governs. Empty array when the item is not attached to any application, in which case the tracker's rules govern. */
|
|
5451
6475
|
applications: string[];
|
|
5452
6476
|
number: string | number;
|
|
@@ -5553,8 +6577,10 @@ export interface operations {
|
|
|
5553
6577
|
severity: string | null;
|
|
5554
6578
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
5555
6579
|
mergedBy: string | null;
|
|
5556
|
-
/** @description Branch merged INTO. The source side is `
|
|
6580
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
5557
6581
|
targetBranch: string | null;
|
|
6582
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
6583
|
+
sourceBranch: string | null;
|
|
5558
6584
|
/** @description Slugs of the applications (see /v1/applications) that claim this item. A code-repo item (PR/MR) is claimed by the application that declares its repo; an issue is claimed by label match (declared `issueLabels`) OR by being referenced through a CONFIRMED link from a PR/MR in one of the application's code repos OR by being hosted in one of those code repos itself (the GitHub shape where the code repo is also the tracker) — the signals are a union, so the array can hold more than one slug. ORDER IS SIGNIFICANT: the array is sorted by DECREASING attachment-signal strength — a `label` claim first, then a `link` claim, then a `code_repo` claim, the order declared in the application config breaking ties at equal strength — and the FIRST slug is the application whose delivery rules govern this issue (its own rules per field, falling back to the tracker's field by field — see GET /v1/applications/{slug}/delivery-rules). A hand-placed scoped label is an assertion of ownership; an issue merely living in a code repo is an organisational coincidence, so the former governs. Empty array when the item is not attached to any application, in which case the tracker's rules govern. */
|
|
5559
6585
|
applications: string[];
|
|
5560
6586
|
number: string | number;
|
|
@@ -5754,8 +6780,10 @@ export interface operations {
|
|
|
5754
6780
|
mergedAt: string | null;
|
|
5755
6781
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
5756
6782
|
mergedBy: string | null;
|
|
5757
|
-
/** @description Branch merged INTO. The source side is `
|
|
6783
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
5758
6784
|
targetBranch: string | null;
|
|
6785
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
6786
|
+
sourceBranch: string | null;
|
|
5759
6787
|
reviewRequestedAt: string | null;
|
|
5760
6788
|
volume: {
|
|
5761
6789
|
additions: string | number;
|
|
@@ -6060,8 +7088,10 @@ export interface operations {
|
|
|
6060
7088
|
mergedAt: string | null;
|
|
6061
7089
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
6062
7090
|
mergedBy: string | null;
|
|
6063
|
-
/** @description Branch merged INTO. The source side is `
|
|
7091
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
6064
7092
|
targetBranch: string | null;
|
|
7093
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
7094
|
+
sourceBranch: string | null;
|
|
6065
7095
|
reviewRequestedAt: string | null;
|
|
6066
7096
|
volume: {
|
|
6067
7097
|
additions: string | number;
|
|
@@ -6366,8 +7396,10 @@ export interface operations {
|
|
|
6366
7396
|
mergedAt: string | null;
|
|
6367
7397
|
/** @description Login of whoever merged. GitLab only — GitHub's list payload omits it, so null there means unknown, not 'nobody'. */
|
|
6368
7398
|
mergedBy: string | null;
|
|
6369
|
-
/** @description Branch merged INTO. The source side is `
|
|
7399
|
+
/** @description Branch merged INTO. The source side is `sourceBranch`. */
|
|
6370
7400
|
targetBranch: string | null;
|
|
7401
|
+
/** @description Branch the PR/MR comes FROM (GitLab `source_branch`, GitHub `head.ref`). A hint for a human or an LLM comparing evidence — never a link source: refs are never derived from branch names. null = the provider payload carried none. */
|
|
7402
|
+
sourceBranch: string | null;
|
|
6371
7403
|
reviewRequestedAt: string | null;
|
|
6372
7404
|
volume: {
|
|
6373
7405
|
additions: string | number;
|
|
@@ -6689,7 +7721,10 @@ export interface operations {
|
|
|
6689
7721
|
"patchV1ProjectsBySourceByProjectKeyDelivery-rules": {
|
|
6690
7722
|
parameters: {
|
|
6691
7723
|
query?: never;
|
|
6692
|
-
header?:
|
|
7724
|
+
header?: {
|
|
7725
|
+
/** @description Preview token (sha256 hex) returned by the matching preview call. When present, the write is refused with 409 and nothing is written if the configuration changed since the preview or the body differs from the previewed one. Absent: the write proceeds as before. */
|
|
7726
|
+
"If-Match"?: string;
|
|
7727
|
+
};
|
|
6693
7728
|
path: {
|
|
6694
7729
|
source: string;
|
|
6695
7730
|
projectKey: string;
|
|
@@ -6775,6 +7810,22 @@ export interface operations {
|
|
|
6775
7810
|
};
|
|
6776
7811
|
};
|
|
6777
7812
|
};
|
|
7813
|
+
409: {
|
|
7814
|
+
headers: {
|
|
7815
|
+
[name: string]: unknown;
|
|
7816
|
+
};
|
|
7817
|
+
content: {
|
|
7818
|
+
"application/json": {
|
|
7819
|
+
error: string;
|
|
7820
|
+
};
|
|
7821
|
+
"multipart/form-data": {
|
|
7822
|
+
error: string;
|
|
7823
|
+
};
|
|
7824
|
+
"text/plain": {
|
|
7825
|
+
error: string;
|
|
7826
|
+
};
|
|
7827
|
+
};
|
|
7828
|
+
};
|
|
6778
7829
|
};
|
|
6779
7830
|
};
|
|
6780
7831
|
"getV1ApplicationsBySlugDelivery-rules": {
|
|
@@ -6856,7 +7907,10 @@ export interface operations {
|
|
|
6856
7907
|
"patchV1ApplicationsBySlugDelivery-rules": {
|
|
6857
7908
|
parameters: {
|
|
6858
7909
|
query?: never;
|
|
6859
|
-
header?:
|
|
7910
|
+
header?: {
|
|
7911
|
+
/** @description Preview token (sha256 hex) returned by the matching preview call. When present, the write is refused with 409 and nothing is written if the configuration changed since the preview or the body differs from the previewed one. Absent: the write proceeds as before. */
|
|
7912
|
+
"If-Match"?: string;
|
|
7913
|
+
};
|
|
6860
7914
|
path: {
|
|
6861
7915
|
slug: string;
|
|
6862
7916
|
};
|
|
@@ -6942,16 +7996,32 @@ export interface operations {
|
|
|
6942
7996
|
};
|
|
6943
7997
|
};
|
|
6944
7998
|
};
|
|
6945
|
-
|
|
6946
|
-
|
|
6947
|
-
|
|
6948
|
-
|
|
6949
|
-
|
|
6950
|
-
|
|
6951
|
-
|
|
6952
|
-
|
|
6953
|
-
|
|
6954
|
-
|
|
7999
|
+
409: {
|
|
8000
|
+
headers: {
|
|
8001
|
+
[name: string]: unknown;
|
|
8002
|
+
};
|
|
8003
|
+
content: {
|
|
8004
|
+
"application/json": {
|
|
8005
|
+
error: string;
|
|
8006
|
+
};
|
|
8007
|
+
"multipart/form-data": {
|
|
8008
|
+
error: string;
|
|
8009
|
+
};
|
|
8010
|
+
"text/plain": {
|
|
8011
|
+
error: string;
|
|
8012
|
+
};
|
|
8013
|
+
};
|
|
8014
|
+
};
|
|
8015
|
+
};
|
|
8016
|
+
};
|
|
8017
|
+
"getV1ProjectsBySourceByProjectKeyWorkflow-rules": {
|
|
8018
|
+
parameters: {
|
|
8019
|
+
query?: never;
|
|
8020
|
+
header?: never;
|
|
8021
|
+
path: {
|
|
8022
|
+
source: string;
|
|
8023
|
+
projectKey: string;
|
|
8024
|
+
};
|
|
6955
8025
|
cookie?: never;
|
|
6956
8026
|
};
|
|
6957
8027
|
requestBody?: never;
|
|
@@ -7230,6 +8300,228 @@ export interface operations {
|
|
|
7230
8300
|
};
|
|
7231
8301
|
};
|
|
7232
8302
|
};
|
|
8303
|
+
"patchV1ProjectsBySourceByProjectKeyWorkflow-rules": {
|
|
8304
|
+
parameters: {
|
|
8305
|
+
query?: never;
|
|
8306
|
+
header?: {
|
|
8307
|
+
/** @description Preview token (sha256 hex) returned by the matching preview call. When present, the write is refused with 409 and nothing is written if the configuration changed since the preview or the body differs from the previewed one. Absent: the write proceeds as before. */
|
|
8308
|
+
"If-Match"?: string;
|
|
8309
|
+
};
|
|
8310
|
+
path: {
|
|
8311
|
+
source: string;
|
|
8312
|
+
projectKey: string;
|
|
8313
|
+
};
|
|
8314
|
+
cookie?: never;
|
|
8315
|
+
};
|
|
8316
|
+
requestBody: {
|
|
8317
|
+
content: {
|
|
8318
|
+
"application/json": {
|
|
8319
|
+
labelRules?: {
|
|
8320
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
8321
|
+
prefix: string;
|
|
8322
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8323
|
+
}[];
|
|
8324
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
8325
|
+
statusSource?: {
|
|
8326
|
+
/** @constant */
|
|
8327
|
+
kind: "gitlab-native";
|
|
8328
|
+
} | {
|
|
8329
|
+
/** @constant */
|
|
8330
|
+
kind: "github-project";
|
|
8331
|
+
projectNumber: string | number;
|
|
8332
|
+
fieldName: string;
|
|
8333
|
+
} | null;
|
|
8334
|
+
statusRules?: {
|
|
8335
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
8336
|
+
value: string;
|
|
8337
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8338
|
+
}[];
|
|
8339
|
+
flowFamilies?: string[];
|
|
8340
|
+
};
|
|
8341
|
+
"multipart/form-data": {
|
|
8342
|
+
labelRules?: {
|
|
8343
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
8344
|
+
prefix: string;
|
|
8345
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8346
|
+
}[];
|
|
8347
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
8348
|
+
statusSource?: {
|
|
8349
|
+
/** @constant */
|
|
8350
|
+
kind: "gitlab-native";
|
|
8351
|
+
} | {
|
|
8352
|
+
/** @constant */
|
|
8353
|
+
kind: "github-project";
|
|
8354
|
+
projectNumber: string | number;
|
|
8355
|
+
fieldName: string;
|
|
8356
|
+
} | null;
|
|
8357
|
+
statusRules?: {
|
|
8358
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
8359
|
+
value: string;
|
|
8360
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8361
|
+
}[];
|
|
8362
|
+
flowFamilies?: string[];
|
|
8363
|
+
};
|
|
8364
|
+
"text/plain": {
|
|
8365
|
+
labelRules?: {
|
|
8366
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
8367
|
+
prefix: string;
|
|
8368
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8369
|
+
}[];
|
|
8370
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
8371
|
+
statusSource?: {
|
|
8372
|
+
/** @constant */
|
|
8373
|
+
kind: "gitlab-native";
|
|
8374
|
+
} | {
|
|
8375
|
+
/** @constant */
|
|
8376
|
+
kind: "github-project";
|
|
8377
|
+
projectNumber: string | number;
|
|
8378
|
+
fieldName: string;
|
|
8379
|
+
} | null;
|
|
8380
|
+
statusRules?: {
|
|
8381
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
8382
|
+
value: string;
|
|
8383
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8384
|
+
}[];
|
|
8385
|
+
flowFamilies?: string[];
|
|
8386
|
+
};
|
|
8387
|
+
};
|
|
8388
|
+
};
|
|
8389
|
+
responses: {
|
|
8390
|
+
200: {
|
|
8391
|
+
headers: {
|
|
8392
|
+
[name: string]: unknown;
|
|
8393
|
+
};
|
|
8394
|
+
content: {
|
|
8395
|
+
"application/json": {
|
|
8396
|
+
source: "github" | "gitlab";
|
|
8397
|
+
projectKey: string;
|
|
8398
|
+
labelRules: {
|
|
8399
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
8400
|
+
prefix: string;
|
|
8401
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8402
|
+
}[];
|
|
8403
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
8404
|
+
statusSource: {
|
|
8405
|
+
/** @constant */
|
|
8406
|
+
kind: "gitlab-native";
|
|
8407
|
+
} | {
|
|
8408
|
+
/** @constant */
|
|
8409
|
+
kind: "github-project";
|
|
8410
|
+
projectNumber: string | number;
|
|
8411
|
+
fieldName: string;
|
|
8412
|
+
} | null;
|
|
8413
|
+
statusRules: {
|
|
8414
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
8415
|
+
value: string;
|
|
8416
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8417
|
+
}[];
|
|
8418
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
8419
|
+
flowFamilies: string[];
|
|
8420
|
+
};
|
|
8421
|
+
"multipart/form-data": {
|
|
8422
|
+
source: "github" | "gitlab";
|
|
8423
|
+
projectKey: string;
|
|
8424
|
+
labelRules: {
|
|
8425
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
8426
|
+
prefix: string;
|
|
8427
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8428
|
+
}[];
|
|
8429
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
8430
|
+
statusSource: {
|
|
8431
|
+
/** @constant */
|
|
8432
|
+
kind: "gitlab-native";
|
|
8433
|
+
} | {
|
|
8434
|
+
/** @constant */
|
|
8435
|
+
kind: "github-project";
|
|
8436
|
+
projectNumber: string | number;
|
|
8437
|
+
fieldName: string;
|
|
8438
|
+
} | null;
|
|
8439
|
+
statusRules: {
|
|
8440
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
8441
|
+
value: string;
|
|
8442
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8443
|
+
}[];
|
|
8444
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
8445
|
+
flowFamilies: string[];
|
|
8446
|
+
};
|
|
8447
|
+
"text/plain": {
|
|
8448
|
+
source: "github" | "gitlab";
|
|
8449
|
+
projectKey: string;
|
|
8450
|
+
labelRules: {
|
|
8451
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
8452
|
+
prefix: string;
|
|
8453
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8454
|
+
}[];
|
|
8455
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
8456
|
+
statusSource: {
|
|
8457
|
+
/** @constant */
|
|
8458
|
+
kind: "gitlab-native";
|
|
8459
|
+
} | {
|
|
8460
|
+
/** @constant */
|
|
8461
|
+
kind: "github-project";
|
|
8462
|
+
projectNumber: string | number;
|
|
8463
|
+
fieldName: string;
|
|
8464
|
+
} | null;
|
|
8465
|
+
statusRules: {
|
|
8466
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
8467
|
+
value: string;
|
|
8468
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
8469
|
+
}[];
|
|
8470
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
8471
|
+
flowFamilies: string[];
|
|
8472
|
+
};
|
|
8473
|
+
};
|
|
8474
|
+
};
|
|
8475
|
+
400: {
|
|
8476
|
+
headers: {
|
|
8477
|
+
[name: string]: unknown;
|
|
8478
|
+
};
|
|
8479
|
+
content: {
|
|
8480
|
+
"application/json": {
|
|
8481
|
+
error: string;
|
|
8482
|
+
};
|
|
8483
|
+
"multipart/form-data": {
|
|
8484
|
+
error: string;
|
|
8485
|
+
};
|
|
8486
|
+
"text/plain": {
|
|
8487
|
+
error: string;
|
|
8488
|
+
};
|
|
8489
|
+
};
|
|
8490
|
+
};
|
|
8491
|
+
403: {
|
|
8492
|
+
headers: {
|
|
8493
|
+
[name: string]: unknown;
|
|
8494
|
+
};
|
|
8495
|
+
content: {
|
|
8496
|
+
"application/json": {
|
|
8497
|
+
error: string;
|
|
8498
|
+
};
|
|
8499
|
+
"multipart/form-data": {
|
|
8500
|
+
error: string;
|
|
8501
|
+
};
|
|
8502
|
+
"text/plain": {
|
|
8503
|
+
error: string;
|
|
8504
|
+
};
|
|
8505
|
+
};
|
|
8506
|
+
};
|
|
8507
|
+
409: {
|
|
8508
|
+
headers: {
|
|
8509
|
+
[name: string]: unknown;
|
|
8510
|
+
};
|
|
8511
|
+
content: {
|
|
8512
|
+
"application/json": {
|
|
8513
|
+
error: string;
|
|
8514
|
+
};
|
|
8515
|
+
"multipart/form-data": {
|
|
8516
|
+
error: string;
|
|
8517
|
+
};
|
|
8518
|
+
"text/plain": {
|
|
8519
|
+
error: string;
|
|
8520
|
+
};
|
|
8521
|
+
};
|
|
8522
|
+
};
|
|
8523
|
+
};
|
|
8524
|
+
};
|
|
7233
8525
|
getV1Projects: {
|
|
7234
8526
|
parameters: {
|
|
7235
8527
|
query?: never;
|
|
@@ -7964,7 +9256,10 @@ export interface operations {
|
|
|
7964
9256
|
postV1IdentitiesByIdAliases: {
|
|
7965
9257
|
parameters: {
|
|
7966
9258
|
query?: never;
|
|
7967
|
-
header?:
|
|
9259
|
+
header?: {
|
|
9260
|
+
/** @description Preview token (sha256 hex) returned by the matching preview call. When present, the write is refused with 409 and nothing is written if the configuration changed since the preview or the body differs from the previewed one. Absent: the write proceeds as before. */
|
|
9261
|
+
"If-Match"?: string;
|
|
9262
|
+
};
|
|
7968
9263
|
path: {
|
|
7969
9264
|
id: string;
|
|
7970
9265
|
};
|
|
@@ -8071,12 +9366,31 @@ export interface operations {
|
|
|
8071
9366
|
};
|
|
8072
9367
|
};
|
|
8073
9368
|
};
|
|
9369
|
+
409: {
|
|
9370
|
+
headers: {
|
|
9371
|
+
[name: string]: unknown;
|
|
9372
|
+
};
|
|
9373
|
+
content: {
|
|
9374
|
+
"application/json": {
|
|
9375
|
+
error: string;
|
|
9376
|
+
};
|
|
9377
|
+
"multipart/form-data": {
|
|
9378
|
+
error: string;
|
|
9379
|
+
};
|
|
9380
|
+
"text/plain": {
|
|
9381
|
+
error: string;
|
|
9382
|
+
};
|
|
9383
|
+
};
|
|
9384
|
+
};
|
|
8074
9385
|
};
|
|
8075
9386
|
};
|
|
8076
9387
|
deleteV1IdentitiesByIdAliasesByProviderByLogin: {
|
|
8077
9388
|
parameters: {
|
|
8078
9389
|
query?: never;
|
|
8079
|
-
header?:
|
|
9390
|
+
header?: {
|
|
9391
|
+
/** @description Preview token (sha256 hex) returned by the matching preview call. When present, the write is refused with 409 and nothing is written if the configuration changed since the preview or the body differs from the previewed one. Absent: the write proceeds as before. */
|
|
9392
|
+
"If-Match"?: string;
|
|
9393
|
+
};
|
|
8080
9394
|
path: {
|
|
8081
9395
|
id: string;
|
|
8082
9396
|
provider: string;
|
|
@@ -8124,13 +9438,29 @@ export interface operations {
|
|
|
8124
9438
|
};
|
|
8125
9439
|
};
|
|
8126
9440
|
};
|
|
8127
|
-
|
|
8128
|
-
|
|
8129
|
-
|
|
8130
|
-
|
|
8131
|
-
|
|
8132
|
-
|
|
8133
|
-
|
|
9441
|
+
409: {
|
|
9442
|
+
headers: {
|
|
9443
|
+
[name: string]: unknown;
|
|
9444
|
+
};
|
|
9445
|
+
content: {
|
|
9446
|
+
"application/json": {
|
|
9447
|
+
error: string;
|
|
9448
|
+
};
|
|
9449
|
+
"multipart/form-data": {
|
|
9450
|
+
error: string;
|
|
9451
|
+
};
|
|
9452
|
+
"text/plain": {
|
|
9453
|
+
error: string;
|
|
9454
|
+
};
|
|
9455
|
+
};
|
|
9456
|
+
};
|
|
9457
|
+
};
|
|
9458
|
+
};
|
|
9459
|
+
getV1Applications: {
|
|
9460
|
+
parameters: {
|
|
9461
|
+
query?: never;
|
|
9462
|
+
header?: never;
|
|
9463
|
+
path?: never;
|
|
8134
9464
|
cookie?: never;
|
|
8135
9465
|
};
|
|
8136
9466
|
requestBody?: never;
|
|
@@ -8201,4 +9531,2375 @@ export interface operations {
|
|
|
8201
9531
|
};
|
|
8202
9532
|
};
|
|
8203
9533
|
};
|
|
9534
|
+
getV1ReviewItems: {
|
|
9535
|
+
parameters: {
|
|
9536
|
+
query?: {
|
|
9537
|
+
from?: string;
|
|
9538
|
+
to?: string;
|
|
9539
|
+
kinds?: string;
|
|
9540
|
+
includeSeen?: string;
|
|
9541
|
+
countsOnly?: string;
|
|
9542
|
+
};
|
|
9543
|
+
header?: never;
|
|
9544
|
+
path?: never;
|
|
9545
|
+
cookie?: never;
|
|
9546
|
+
};
|
|
9547
|
+
requestBody?: never;
|
|
9548
|
+
responses: {
|
|
9549
|
+
200: {
|
|
9550
|
+
headers: {
|
|
9551
|
+
[name: string]: unknown;
|
|
9552
|
+
};
|
|
9553
|
+
content: {
|
|
9554
|
+
"application/json": {
|
|
9555
|
+
window: {
|
|
9556
|
+
from: string;
|
|
9557
|
+
to: string;
|
|
9558
|
+
};
|
|
9559
|
+
counts: {
|
|
9560
|
+
ambiguous: number;
|
|
9561
|
+
uncertain: number;
|
|
9562
|
+
unresolved: number;
|
|
9563
|
+
undelivered: number;
|
|
9564
|
+
unassigned: number;
|
|
9565
|
+
"workflow-conflict": number;
|
|
9566
|
+
"unmapped-status": number;
|
|
9567
|
+
};
|
|
9568
|
+
truncated: {
|
|
9569
|
+
ambiguous: boolean;
|
|
9570
|
+
uncertain: boolean;
|
|
9571
|
+
unresolved: boolean;
|
|
9572
|
+
undelivered: boolean;
|
|
9573
|
+
unassigned: boolean;
|
|
9574
|
+
"workflow-conflict": boolean;
|
|
9575
|
+
"unmapped-status": boolean;
|
|
9576
|
+
};
|
|
9577
|
+
unseen: number;
|
|
9578
|
+
unseenMentions: number;
|
|
9579
|
+
legacyUnclassified: number;
|
|
9580
|
+
items: {
|
|
9581
|
+
key: string;
|
|
9582
|
+
kind: "ambiguous" | "uncertain" | "unresolved" | "undelivered" | "unassigned" | "workflow-conflict" | "unmapped-status";
|
|
9583
|
+
fingerprint: string;
|
|
9584
|
+
title: string;
|
|
9585
|
+
detail: string;
|
|
9586
|
+
occurredAt: string;
|
|
9587
|
+
activity: {
|
|
9588
|
+
id: string;
|
|
9589
|
+
provider: "github" | "gitlab";
|
|
9590
|
+
repo: string;
|
|
9591
|
+
type: string;
|
|
9592
|
+
number: string;
|
|
9593
|
+
title: string;
|
|
9594
|
+
url: string;
|
|
9595
|
+
author: string | null;
|
|
9596
|
+
} | null;
|
|
9597
|
+
target: {
|
|
9598
|
+
source: "github" | "gitlab";
|
|
9599
|
+
projectKey: string;
|
|
9600
|
+
number: string | number;
|
|
9601
|
+
url: string | null;
|
|
9602
|
+
} | null;
|
|
9603
|
+
evidence: string | null;
|
|
9604
|
+
error: string | null;
|
|
9605
|
+
candidates: {
|
|
9606
|
+
id: string;
|
|
9607
|
+
provider: "github" | "gitlab";
|
|
9608
|
+
repo: string;
|
|
9609
|
+
type: string;
|
|
9610
|
+
number: string;
|
|
9611
|
+
title: string;
|
|
9612
|
+
url: string;
|
|
9613
|
+
author: string | null;
|
|
9614
|
+
attributable: boolean;
|
|
9615
|
+
snippets: {
|
|
9616
|
+
label: string;
|
|
9617
|
+
text: string;
|
|
9618
|
+
}[];
|
|
9619
|
+
}[];
|
|
9620
|
+
confidence: number | null;
|
|
9621
|
+
linkKind: string | null;
|
|
9622
|
+
snippets: {
|
|
9623
|
+
label: string;
|
|
9624
|
+
text: string;
|
|
9625
|
+
}[];
|
|
9626
|
+
resyncRepo: string | null;
|
|
9627
|
+
seen: {
|
|
9628
|
+
by: string;
|
|
9629
|
+
at: string;
|
|
9630
|
+
} | null;
|
|
9631
|
+
mention: boolean;
|
|
9632
|
+
quiet: boolean;
|
|
9633
|
+
}[];
|
|
9634
|
+
};
|
|
9635
|
+
"multipart/form-data": {
|
|
9636
|
+
window: {
|
|
9637
|
+
from: string;
|
|
9638
|
+
to: string;
|
|
9639
|
+
};
|
|
9640
|
+
counts: {
|
|
9641
|
+
ambiguous: number;
|
|
9642
|
+
uncertain: number;
|
|
9643
|
+
unresolved: number;
|
|
9644
|
+
undelivered: number;
|
|
9645
|
+
unassigned: number;
|
|
9646
|
+
"workflow-conflict": number;
|
|
9647
|
+
"unmapped-status": number;
|
|
9648
|
+
};
|
|
9649
|
+
truncated: {
|
|
9650
|
+
ambiguous: boolean;
|
|
9651
|
+
uncertain: boolean;
|
|
9652
|
+
unresolved: boolean;
|
|
9653
|
+
undelivered: boolean;
|
|
9654
|
+
unassigned: boolean;
|
|
9655
|
+
"workflow-conflict": boolean;
|
|
9656
|
+
"unmapped-status": boolean;
|
|
9657
|
+
};
|
|
9658
|
+
unseen: number;
|
|
9659
|
+
unseenMentions: number;
|
|
9660
|
+
legacyUnclassified: number;
|
|
9661
|
+
items: {
|
|
9662
|
+
key: string;
|
|
9663
|
+
kind: "ambiguous" | "uncertain" | "unresolved" | "undelivered" | "unassigned" | "workflow-conflict" | "unmapped-status";
|
|
9664
|
+
fingerprint: string;
|
|
9665
|
+
title: string;
|
|
9666
|
+
detail: string;
|
|
9667
|
+
occurredAt: string;
|
|
9668
|
+
activity: {
|
|
9669
|
+
id: string;
|
|
9670
|
+
provider: "github" | "gitlab";
|
|
9671
|
+
repo: string;
|
|
9672
|
+
type: string;
|
|
9673
|
+
number: string;
|
|
9674
|
+
title: string;
|
|
9675
|
+
url: string;
|
|
9676
|
+
author: string | null;
|
|
9677
|
+
} | null;
|
|
9678
|
+
target: {
|
|
9679
|
+
source: "github" | "gitlab";
|
|
9680
|
+
projectKey: string;
|
|
9681
|
+
number: string | number;
|
|
9682
|
+
url: string | null;
|
|
9683
|
+
} | null;
|
|
9684
|
+
evidence: string | null;
|
|
9685
|
+
error: string | null;
|
|
9686
|
+
candidates: {
|
|
9687
|
+
id: string;
|
|
9688
|
+
provider: "github" | "gitlab";
|
|
9689
|
+
repo: string;
|
|
9690
|
+
type: string;
|
|
9691
|
+
number: string;
|
|
9692
|
+
title: string;
|
|
9693
|
+
url: string;
|
|
9694
|
+
author: string | null;
|
|
9695
|
+
attributable: boolean;
|
|
9696
|
+
snippets: {
|
|
9697
|
+
label: string;
|
|
9698
|
+
text: string;
|
|
9699
|
+
}[];
|
|
9700
|
+
}[];
|
|
9701
|
+
confidence: number | null;
|
|
9702
|
+
linkKind: string | null;
|
|
9703
|
+
snippets: {
|
|
9704
|
+
label: string;
|
|
9705
|
+
text: string;
|
|
9706
|
+
}[];
|
|
9707
|
+
resyncRepo: string | null;
|
|
9708
|
+
seen: {
|
|
9709
|
+
by: string;
|
|
9710
|
+
at: string;
|
|
9711
|
+
} | null;
|
|
9712
|
+
mention: boolean;
|
|
9713
|
+
quiet: boolean;
|
|
9714
|
+
}[];
|
|
9715
|
+
};
|
|
9716
|
+
"text/plain": {
|
|
9717
|
+
window: {
|
|
9718
|
+
from: string;
|
|
9719
|
+
to: string;
|
|
9720
|
+
};
|
|
9721
|
+
counts: {
|
|
9722
|
+
ambiguous: number;
|
|
9723
|
+
uncertain: number;
|
|
9724
|
+
unresolved: number;
|
|
9725
|
+
undelivered: number;
|
|
9726
|
+
unassigned: number;
|
|
9727
|
+
"workflow-conflict": number;
|
|
9728
|
+
"unmapped-status": number;
|
|
9729
|
+
};
|
|
9730
|
+
truncated: {
|
|
9731
|
+
ambiguous: boolean;
|
|
9732
|
+
uncertain: boolean;
|
|
9733
|
+
unresolved: boolean;
|
|
9734
|
+
undelivered: boolean;
|
|
9735
|
+
unassigned: boolean;
|
|
9736
|
+
"workflow-conflict": boolean;
|
|
9737
|
+
"unmapped-status": boolean;
|
|
9738
|
+
};
|
|
9739
|
+
unseen: number;
|
|
9740
|
+
unseenMentions: number;
|
|
9741
|
+
legacyUnclassified: number;
|
|
9742
|
+
items: {
|
|
9743
|
+
key: string;
|
|
9744
|
+
kind: "ambiguous" | "uncertain" | "unresolved" | "undelivered" | "unassigned" | "workflow-conflict" | "unmapped-status";
|
|
9745
|
+
fingerprint: string;
|
|
9746
|
+
title: string;
|
|
9747
|
+
detail: string;
|
|
9748
|
+
occurredAt: string;
|
|
9749
|
+
activity: {
|
|
9750
|
+
id: string;
|
|
9751
|
+
provider: "github" | "gitlab";
|
|
9752
|
+
repo: string;
|
|
9753
|
+
type: string;
|
|
9754
|
+
number: string;
|
|
9755
|
+
title: string;
|
|
9756
|
+
url: string;
|
|
9757
|
+
author: string | null;
|
|
9758
|
+
} | null;
|
|
9759
|
+
target: {
|
|
9760
|
+
source: "github" | "gitlab";
|
|
9761
|
+
projectKey: string;
|
|
9762
|
+
number: string | number;
|
|
9763
|
+
url: string | null;
|
|
9764
|
+
} | null;
|
|
9765
|
+
evidence: string | null;
|
|
9766
|
+
error: string | null;
|
|
9767
|
+
candidates: {
|
|
9768
|
+
id: string;
|
|
9769
|
+
provider: "github" | "gitlab";
|
|
9770
|
+
repo: string;
|
|
9771
|
+
type: string;
|
|
9772
|
+
number: string;
|
|
9773
|
+
title: string;
|
|
9774
|
+
url: string;
|
|
9775
|
+
author: string | null;
|
|
9776
|
+
attributable: boolean;
|
|
9777
|
+
snippets: {
|
|
9778
|
+
label: string;
|
|
9779
|
+
text: string;
|
|
9780
|
+
}[];
|
|
9781
|
+
}[];
|
|
9782
|
+
confidence: number | null;
|
|
9783
|
+
linkKind: string | null;
|
|
9784
|
+
snippets: {
|
|
9785
|
+
label: string;
|
|
9786
|
+
text: string;
|
|
9787
|
+
}[];
|
|
9788
|
+
resyncRepo: string | null;
|
|
9789
|
+
seen: {
|
|
9790
|
+
by: string;
|
|
9791
|
+
at: string;
|
|
9792
|
+
} | null;
|
|
9793
|
+
mention: boolean;
|
|
9794
|
+
quiet: boolean;
|
|
9795
|
+
}[];
|
|
9796
|
+
};
|
|
9797
|
+
};
|
|
9798
|
+
};
|
|
9799
|
+
400: {
|
|
9800
|
+
headers: {
|
|
9801
|
+
[name: string]: unknown;
|
|
9802
|
+
};
|
|
9803
|
+
content: {
|
|
9804
|
+
"application/json": {
|
|
9805
|
+
error: string;
|
|
9806
|
+
};
|
|
9807
|
+
"multipart/form-data": {
|
|
9808
|
+
error: string;
|
|
9809
|
+
};
|
|
9810
|
+
"text/plain": {
|
|
9811
|
+
error: string;
|
|
9812
|
+
};
|
|
9813
|
+
};
|
|
9814
|
+
};
|
|
9815
|
+
403: {
|
|
9816
|
+
headers: {
|
|
9817
|
+
[name: string]: unknown;
|
|
9818
|
+
};
|
|
9819
|
+
content: {
|
|
9820
|
+
"application/json": {
|
|
9821
|
+
error: string;
|
|
9822
|
+
};
|
|
9823
|
+
"multipart/form-data": {
|
|
9824
|
+
error: string;
|
|
9825
|
+
};
|
|
9826
|
+
"text/plain": {
|
|
9827
|
+
error: string;
|
|
9828
|
+
};
|
|
9829
|
+
};
|
|
9830
|
+
};
|
|
9831
|
+
};
|
|
9832
|
+
};
|
|
9833
|
+
postV1ReviewItemsByKeySeen: {
|
|
9834
|
+
parameters: {
|
|
9835
|
+
query?: never;
|
|
9836
|
+
header?: never;
|
|
9837
|
+
path: {
|
|
9838
|
+
key: string;
|
|
9839
|
+
};
|
|
9840
|
+
cookie?: never;
|
|
9841
|
+
};
|
|
9842
|
+
requestBody: {
|
|
9843
|
+
content: {
|
|
9844
|
+
"application/json": {
|
|
9845
|
+
fingerprint: string;
|
|
9846
|
+
};
|
|
9847
|
+
"multipart/form-data": {
|
|
9848
|
+
fingerprint: string;
|
|
9849
|
+
};
|
|
9850
|
+
"text/plain": {
|
|
9851
|
+
fingerprint: string;
|
|
9852
|
+
};
|
|
9853
|
+
};
|
|
9854
|
+
};
|
|
9855
|
+
responses: {
|
|
9856
|
+
204: {
|
|
9857
|
+
headers: {
|
|
9858
|
+
[name: string]: unknown;
|
|
9859
|
+
};
|
|
9860
|
+
content?: never;
|
|
9861
|
+
};
|
|
9862
|
+
400: {
|
|
9863
|
+
headers: {
|
|
9864
|
+
[name: string]: unknown;
|
|
9865
|
+
};
|
|
9866
|
+
content: {
|
|
9867
|
+
"application/json": {
|
|
9868
|
+
error: string;
|
|
9869
|
+
};
|
|
9870
|
+
"multipart/form-data": {
|
|
9871
|
+
error: string;
|
|
9872
|
+
};
|
|
9873
|
+
"text/plain": {
|
|
9874
|
+
error: string;
|
|
9875
|
+
};
|
|
9876
|
+
};
|
|
9877
|
+
};
|
|
9878
|
+
403: {
|
|
9879
|
+
headers: {
|
|
9880
|
+
[name: string]: unknown;
|
|
9881
|
+
};
|
|
9882
|
+
content: {
|
|
9883
|
+
"application/json": {
|
|
9884
|
+
error: string;
|
|
9885
|
+
};
|
|
9886
|
+
"multipart/form-data": {
|
|
9887
|
+
error: string;
|
|
9888
|
+
};
|
|
9889
|
+
"text/plain": {
|
|
9890
|
+
error: string;
|
|
9891
|
+
};
|
|
9892
|
+
};
|
|
9893
|
+
};
|
|
9894
|
+
};
|
|
9895
|
+
};
|
|
9896
|
+
deleteV1ReviewItemsByKeySeen: {
|
|
9897
|
+
parameters: {
|
|
9898
|
+
query?: never;
|
|
9899
|
+
header?: never;
|
|
9900
|
+
path: {
|
|
9901
|
+
key: string;
|
|
9902
|
+
};
|
|
9903
|
+
cookie?: never;
|
|
9904
|
+
};
|
|
9905
|
+
requestBody?: never;
|
|
9906
|
+
responses: {
|
|
9907
|
+
204: {
|
|
9908
|
+
headers: {
|
|
9909
|
+
[name: string]: unknown;
|
|
9910
|
+
};
|
|
9911
|
+
content?: never;
|
|
9912
|
+
};
|
|
9913
|
+
403: {
|
|
9914
|
+
headers: {
|
|
9915
|
+
[name: string]: unknown;
|
|
9916
|
+
};
|
|
9917
|
+
content: {
|
|
9918
|
+
"application/json": {
|
|
9919
|
+
error: string;
|
|
9920
|
+
};
|
|
9921
|
+
"multipart/form-data": {
|
|
9922
|
+
error: string;
|
|
9923
|
+
};
|
|
9924
|
+
"text/plain": {
|
|
9925
|
+
error: string;
|
|
9926
|
+
};
|
|
9927
|
+
};
|
|
9928
|
+
};
|
|
9929
|
+
};
|
|
9930
|
+
};
|
|
9931
|
+
postV1Sync: {
|
|
9932
|
+
parameters: {
|
|
9933
|
+
query?: {
|
|
9934
|
+
repo?: string;
|
|
9935
|
+
days?: string;
|
|
9936
|
+
backfill?: string;
|
|
9937
|
+
};
|
|
9938
|
+
header?: never;
|
|
9939
|
+
path?: never;
|
|
9940
|
+
cookie?: never;
|
|
9941
|
+
};
|
|
9942
|
+
requestBody?: never;
|
|
9943
|
+
responses: {
|
|
9944
|
+
202: {
|
|
9945
|
+
headers: {
|
|
9946
|
+
[name: string]: unknown;
|
|
9947
|
+
};
|
|
9948
|
+
content: {
|
|
9949
|
+
"application/json": {
|
|
9950
|
+
/** @constant */
|
|
9951
|
+
status: "accepted";
|
|
9952
|
+
repoFilter: string;
|
|
9953
|
+
sinceDays?: string | number;
|
|
9954
|
+
};
|
|
9955
|
+
"multipart/form-data": {
|
|
9956
|
+
/** @constant */
|
|
9957
|
+
status: "accepted";
|
|
9958
|
+
repoFilter: string;
|
|
9959
|
+
sinceDays?: string | number;
|
|
9960
|
+
};
|
|
9961
|
+
"text/plain": {
|
|
9962
|
+
/** @constant */
|
|
9963
|
+
status: "accepted";
|
|
9964
|
+
repoFilter: string;
|
|
9965
|
+
sinceDays?: string | number;
|
|
9966
|
+
};
|
|
9967
|
+
};
|
|
9968
|
+
};
|
|
9969
|
+
400: {
|
|
9970
|
+
headers: {
|
|
9971
|
+
[name: string]: unknown;
|
|
9972
|
+
};
|
|
9973
|
+
content: {
|
|
9974
|
+
"application/json": {
|
|
9975
|
+
error: string;
|
|
9976
|
+
};
|
|
9977
|
+
"multipart/form-data": {
|
|
9978
|
+
error: string;
|
|
9979
|
+
};
|
|
9980
|
+
"text/plain": {
|
|
9981
|
+
error: string;
|
|
9982
|
+
};
|
|
9983
|
+
};
|
|
9984
|
+
};
|
|
9985
|
+
403: {
|
|
9986
|
+
headers: {
|
|
9987
|
+
[name: string]: unknown;
|
|
9988
|
+
};
|
|
9989
|
+
content: {
|
|
9990
|
+
"application/json": {
|
|
9991
|
+
error: string;
|
|
9992
|
+
};
|
|
9993
|
+
"multipart/form-data": {
|
|
9994
|
+
error: string;
|
|
9995
|
+
};
|
|
9996
|
+
"text/plain": {
|
|
9997
|
+
error: string;
|
|
9998
|
+
};
|
|
9999
|
+
};
|
|
10000
|
+
};
|
|
10001
|
+
404: {
|
|
10002
|
+
headers: {
|
|
10003
|
+
[name: string]: unknown;
|
|
10004
|
+
};
|
|
10005
|
+
content: {
|
|
10006
|
+
"application/json": {
|
|
10007
|
+
error: string;
|
|
10008
|
+
};
|
|
10009
|
+
"multipart/form-data": {
|
|
10010
|
+
error: string;
|
|
10011
|
+
};
|
|
10012
|
+
"text/plain": {
|
|
10013
|
+
error: string;
|
|
10014
|
+
};
|
|
10015
|
+
};
|
|
10016
|
+
};
|
|
10017
|
+
};
|
|
10018
|
+
};
|
|
10019
|
+
"postV1PreviewsDelivery-rules": {
|
|
10020
|
+
parameters: {
|
|
10021
|
+
query?: never;
|
|
10022
|
+
header?: never;
|
|
10023
|
+
path?: never;
|
|
10024
|
+
cookie?: never;
|
|
10025
|
+
};
|
|
10026
|
+
requestBody: {
|
|
10027
|
+
content: {
|
|
10028
|
+
"application/json": {
|
|
10029
|
+
target: {
|
|
10030
|
+
/** @constant */
|
|
10031
|
+
kind: "tracker";
|
|
10032
|
+
source: "github" | "gitlab";
|
|
10033
|
+
projectKey: string;
|
|
10034
|
+
} | {
|
|
10035
|
+
/** @constant */
|
|
10036
|
+
kind: "application";
|
|
10037
|
+
slug: string;
|
|
10038
|
+
};
|
|
10039
|
+
patch: {
|
|
10040
|
+
deliveryLabels?: string[];
|
|
10041
|
+
openedLabels?: string[];
|
|
10042
|
+
deliveryStatuses?: string[];
|
|
10043
|
+
openedStatuses?: string[];
|
|
10044
|
+
};
|
|
10045
|
+
/** @description Window start (ISO date or datetime). */
|
|
10046
|
+
from: string;
|
|
10047
|
+
/** @description Window end (ISO date or datetime). */
|
|
10048
|
+
to: string;
|
|
10049
|
+
/** @description Identity id for the scoped view (attribution changes, i.e. that person's invoice). Absent: `diff.scoped` is null. */
|
|
10050
|
+
identity?: string | number;
|
|
10051
|
+
};
|
|
10052
|
+
"multipart/form-data": {
|
|
10053
|
+
target: {
|
|
10054
|
+
/** @constant */
|
|
10055
|
+
kind: "tracker";
|
|
10056
|
+
source: "github" | "gitlab";
|
|
10057
|
+
projectKey: string;
|
|
10058
|
+
} | {
|
|
10059
|
+
/** @constant */
|
|
10060
|
+
kind: "application";
|
|
10061
|
+
slug: string;
|
|
10062
|
+
};
|
|
10063
|
+
patch: {
|
|
10064
|
+
deliveryLabels?: string[];
|
|
10065
|
+
openedLabels?: string[];
|
|
10066
|
+
deliveryStatuses?: string[];
|
|
10067
|
+
openedStatuses?: string[];
|
|
10068
|
+
};
|
|
10069
|
+
/** @description Window start (ISO date or datetime). */
|
|
10070
|
+
from: string;
|
|
10071
|
+
/** @description Window end (ISO date or datetime). */
|
|
10072
|
+
to: string;
|
|
10073
|
+
/** @description Identity id for the scoped view (attribution changes, i.e. that person's invoice). Absent: `diff.scoped` is null. */
|
|
10074
|
+
identity?: string | number;
|
|
10075
|
+
};
|
|
10076
|
+
"text/plain": {
|
|
10077
|
+
target: {
|
|
10078
|
+
/** @constant */
|
|
10079
|
+
kind: "tracker";
|
|
10080
|
+
source: "github" | "gitlab";
|
|
10081
|
+
projectKey: string;
|
|
10082
|
+
} | {
|
|
10083
|
+
/** @constant */
|
|
10084
|
+
kind: "application";
|
|
10085
|
+
slug: string;
|
|
10086
|
+
};
|
|
10087
|
+
patch: {
|
|
10088
|
+
deliveryLabels?: string[];
|
|
10089
|
+
openedLabels?: string[];
|
|
10090
|
+
deliveryStatuses?: string[];
|
|
10091
|
+
openedStatuses?: string[];
|
|
10092
|
+
};
|
|
10093
|
+
/** @description Window start (ISO date or datetime). */
|
|
10094
|
+
from: string;
|
|
10095
|
+
/** @description Window end (ISO date or datetime). */
|
|
10096
|
+
to: string;
|
|
10097
|
+
/** @description Identity id for the scoped view (attribution changes, i.e. that person's invoice). Absent: `diff.scoped` is null. */
|
|
10098
|
+
identity?: string | number;
|
|
10099
|
+
};
|
|
10100
|
+
};
|
|
10101
|
+
};
|
|
10102
|
+
responses: {
|
|
10103
|
+
200: {
|
|
10104
|
+
headers: {
|
|
10105
|
+
[name: string]: unknown;
|
|
10106
|
+
};
|
|
10107
|
+
content: {
|
|
10108
|
+
"application/json": {
|
|
10109
|
+
current: {
|
|
10110
|
+
source: "github" | "gitlab";
|
|
10111
|
+
projectKey: string;
|
|
10112
|
+
deliveryLabels: string[];
|
|
10113
|
+
openedLabels: string[];
|
|
10114
|
+
/** @description Native Status values (GitLab Status widget) that mark an issue delivered. Empty means nothing declared, never 'no gate'. */
|
|
10115
|
+
deliveryStatuses: string[];
|
|
10116
|
+
/** @description Native Status values that (re)open an issue. Empty means nothing declared. */
|
|
10117
|
+
openedStatuses: string[];
|
|
10118
|
+
updatedAt: string | null;
|
|
10119
|
+
} | {
|
|
10120
|
+
applicationSlug: string;
|
|
10121
|
+
/** @description Labels whose addition marks an issue delivered FOR THIS APPLICATION. Non-empty means these rules replace the tracker's for every issue the application claims; empty means the application declares nothing and its tracker's rules stay in force. */
|
|
10122
|
+
deliveryLabels: string[];
|
|
10123
|
+
/** @description Labels marking an issue in progress for this application. Only read when `deliveryLabels` is non-empty — a rule set with no delivery label cannot decide a delivery and never shadows the tracker's. */
|
|
10124
|
+
openedLabels: string[];
|
|
10125
|
+
updatedAt: string | null;
|
|
10126
|
+
};
|
|
10127
|
+
proposed: {
|
|
10128
|
+
source: "github" | "gitlab";
|
|
10129
|
+
projectKey: string;
|
|
10130
|
+
deliveryLabels: string[];
|
|
10131
|
+
openedLabels: string[];
|
|
10132
|
+
/** @description Native Status values (GitLab Status widget) that mark an issue delivered. Empty means nothing declared, never 'no gate'. */
|
|
10133
|
+
deliveryStatuses: string[];
|
|
10134
|
+
/** @description Native Status values that (re)open an issue. Empty means nothing declared. */
|
|
10135
|
+
openedStatuses: string[];
|
|
10136
|
+
updatedAt: string | null;
|
|
10137
|
+
} | {
|
|
10138
|
+
applicationSlug: string;
|
|
10139
|
+
/** @description Labels whose addition marks an issue delivered FOR THIS APPLICATION. Non-empty means these rules replace the tracker's for every issue the application claims; empty means the application declares nothing and its tracker's rules stay in force. */
|
|
10140
|
+
deliveryLabels: string[];
|
|
10141
|
+
/** @description Labels marking an issue in progress for this application. Only read when `deliveryLabels` is non-empty — a rule set with no delivery label cannot decide a delivery and never shadows the tracker's. */
|
|
10142
|
+
openedLabels: string[];
|
|
10143
|
+
updatedAt: string | null;
|
|
10144
|
+
};
|
|
10145
|
+
diff: {
|
|
10146
|
+
unscoped: {
|
|
10147
|
+
appeared: {
|
|
10148
|
+
kind: "issue" | "standalone";
|
|
10149
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10150
|
+
key: string;
|
|
10151
|
+
title: string;
|
|
10152
|
+
url: string;
|
|
10153
|
+
before: {
|
|
10154
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10155
|
+
deliveredAt: string | null;
|
|
10156
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10157
|
+
attribution: string | null;
|
|
10158
|
+
} | null;
|
|
10159
|
+
after: {
|
|
10160
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10161
|
+
deliveredAt: string | null;
|
|
10162
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10163
|
+
attribution: string | null;
|
|
10164
|
+
} | null;
|
|
10165
|
+
}[];
|
|
10166
|
+
disappeared: {
|
|
10167
|
+
kind: "issue" | "standalone";
|
|
10168
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10169
|
+
key: string;
|
|
10170
|
+
title: string;
|
|
10171
|
+
url: string;
|
|
10172
|
+
before: {
|
|
10173
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10174
|
+
deliveredAt: string | null;
|
|
10175
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10176
|
+
attribution: string | null;
|
|
10177
|
+
} | null;
|
|
10178
|
+
after: {
|
|
10179
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10180
|
+
deliveredAt: string | null;
|
|
10181
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10182
|
+
attribution: string | null;
|
|
10183
|
+
} | null;
|
|
10184
|
+
}[];
|
|
10185
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
10186
|
+
movedMonth: {
|
|
10187
|
+
kind: "issue" | "standalone";
|
|
10188
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10189
|
+
key: string;
|
|
10190
|
+
title: string;
|
|
10191
|
+
url: string;
|
|
10192
|
+
before: {
|
|
10193
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10194
|
+
deliveredAt: string | null;
|
|
10195
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10196
|
+
attribution: string | null;
|
|
10197
|
+
} | null;
|
|
10198
|
+
after: {
|
|
10199
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10200
|
+
deliveredAt: string | null;
|
|
10201
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10202
|
+
attribution: string | null;
|
|
10203
|
+
} | null;
|
|
10204
|
+
}[];
|
|
10205
|
+
/** @description Only meaningful on a scoped run. */
|
|
10206
|
+
attributionChanged: {
|
|
10207
|
+
kind: "issue" | "standalone";
|
|
10208
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10209
|
+
key: string;
|
|
10210
|
+
title: string;
|
|
10211
|
+
url: string;
|
|
10212
|
+
before: {
|
|
10213
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10214
|
+
deliveredAt: string | null;
|
|
10215
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10216
|
+
attribution: string | null;
|
|
10217
|
+
} | null;
|
|
10218
|
+
after: {
|
|
10219
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10220
|
+
deliveredAt: string | null;
|
|
10221
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10222
|
+
attribution: string | null;
|
|
10223
|
+
} | null;
|
|
10224
|
+
}[];
|
|
10225
|
+
totals: {
|
|
10226
|
+
before: {
|
|
10227
|
+
issues: string | number;
|
|
10228
|
+
standalone: string | number;
|
|
10229
|
+
};
|
|
10230
|
+
after: {
|
|
10231
|
+
issues: string | number;
|
|
10232
|
+
standalone: string | number;
|
|
10233
|
+
};
|
|
10234
|
+
};
|
|
10235
|
+
};
|
|
10236
|
+
scoped: {
|
|
10237
|
+
appeared: {
|
|
10238
|
+
kind: "issue" | "standalone";
|
|
10239
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10240
|
+
key: string;
|
|
10241
|
+
title: string;
|
|
10242
|
+
url: string;
|
|
10243
|
+
before: {
|
|
10244
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10245
|
+
deliveredAt: string | null;
|
|
10246
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10247
|
+
attribution: string | null;
|
|
10248
|
+
} | null;
|
|
10249
|
+
after: {
|
|
10250
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10251
|
+
deliveredAt: string | null;
|
|
10252
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10253
|
+
attribution: string | null;
|
|
10254
|
+
} | null;
|
|
10255
|
+
}[];
|
|
10256
|
+
disappeared: {
|
|
10257
|
+
kind: "issue" | "standalone";
|
|
10258
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10259
|
+
key: string;
|
|
10260
|
+
title: string;
|
|
10261
|
+
url: string;
|
|
10262
|
+
before: {
|
|
10263
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10264
|
+
deliveredAt: string | null;
|
|
10265
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10266
|
+
attribution: string | null;
|
|
10267
|
+
} | null;
|
|
10268
|
+
after: {
|
|
10269
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10270
|
+
deliveredAt: string | null;
|
|
10271
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10272
|
+
attribution: string | null;
|
|
10273
|
+
} | null;
|
|
10274
|
+
}[];
|
|
10275
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
10276
|
+
movedMonth: {
|
|
10277
|
+
kind: "issue" | "standalone";
|
|
10278
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10279
|
+
key: string;
|
|
10280
|
+
title: string;
|
|
10281
|
+
url: string;
|
|
10282
|
+
before: {
|
|
10283
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10284
|
+
deliveredAt: string | null;
|
|
10285
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10286
|
+
attribution: string | null;
|
|
10287
|
+
} | null;
|
|
10288
|
+
after: {
|
|
10289
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10290
|
+
deliveredAt: string | null;
|
|
10291
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10292
|
+
attribution: string | null;
|
|
10293
|
+
} | null;
|
|
10294
|
+
}[];
|
|
10295
|
+
/** @description Only meaningful on a scoped run. */
|
|
10296
|
+
attributionChanged: {
|
|
10297
|
+
kind: "issue" | "standalone";
|
|
10298
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10299
|
+
key: string;
|
|
10300
|
+
title: string;
|
|
10301
|
+
url: string;
|
|
10302
|
+
before: {
|
|
10303
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10304
|
+
deliveredAt: string | null;
|
|
10305
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10306
|
+
attribution: string | null;
|
|
10307
|
+
} | null;
|
|
10308
|
+
after: {
|
|
10309
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10310
|
+
deliveredAt: string | null;
|
|
10311
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10312
|
+
attribution: string | null;
|
|
10313
|
+
} | null;
|
|
10314
|
+
}[];
|
|
10315
|
+
totals: {
|
|
10316
|
+
before: {
|
|
10317
|
+
issues: string | number;
|
|
10318
|
+
standalone: string | number;
|
|
10319
|
+
};
|
|
10320
|
+
after: {
|
|
10321
|
+
issues: string | number;
|
|
10322
|
+
standalone: string | number;
|
|
10323
|
+
};
|
|
10324
|
+
};
|
|
10325
|
+
} | null;
|
|
10326
|
+
};
|
|
10327
|
+
/** @description Send as `If-Match` on the matching PATCH with the SAME body as `patch`. */
|
|
10328
|
+
previewToken: string;
|
|
10329
|
+
/** @description True when either CRA run (before or after, issues or standalone) was capped — the diff then covers only part of the window. */
|
|
10330
|
+
truncated: boolean;
|
|
10331
|
+
};
|
|
10332
|
+
"multipart/form-data": {
|
|
10333
|
+
current: {
|
|
10334
|
+
source: "github" | "gitlab";
|
|
10335
|
+
projectKey: string;
|
|
10336
|
+
deliveryLabels: string[];
|
|
10337
|
+
openedLabels: string[];
|
|
10338
|
+
/** @description Native Status values (GitLab Status widget) that mark an issue delivered. Empty means nothing declared, never 'no gate'. */
|
|
10339
|
+
deliveryStatuses: string[];
|
|
10340
|
+
/** @description Native Status values that (re)open an issue. Empty means nothing declared. */
|
|
10341
|
+
openedStatuses: string[];
|
|
10342
|
+
updatedAt: string | null;
|
|
10343
|
+
} | {
|
|
10344
|
+
applicationSlug: string;
|
|
10345
|
+
/** @description Labels whose addition marks an issue delivered FOR THIS APPLICATION. Non-empty means these rules replace the tracker's for every issue the application claims; empty means the application declares nothing and its tracker's rules stay in force. */
|
|
10346
|
+
deliveryLabels: string[];
|
|
10347
|
+
/** @description Labels marking an issue in progress for this application. Only read when `deliveryLabels` is non-empty — a rule set with no delivery label cannot decide a delivery and never shadows the tracker's. */
|
|
10348
|
+
openedLabels: string[];
|
|
10349
|
+
updatedAt: string | null;
|
|
10350
|
+
};
|
|
10351
|
+
proposed: {
|
|
10352
|
+
source: "github" | "gitlab";
|
|
10353
|
+
projectKey: string;
|
|
10354
|
+
deliveryLabels: string[];
|
|
10355
|
+
openedLabels: string[];
|
|
10356
|
+
/** @description Native Status values (GitLab Status widget) that mark an issue delivered. Empty means nothing declared, never 'no gate'. */
|
|
10357
|
+
deliveryStatuses: string[];
|
|
10358
|
+
/** @description Native Status values that (re)open an issue. Empty means nothing declared. */
|
|
10359
|
+
openedStatuses: string[];
|
|
10360
|
+
updatedAt: string | null;
|
|
10361
|
+
} | {
|
|
10362
|
+
applicationSlug: string;
|
|
10363
|
+
/** @description Labels whose addition marks an issue delivered FOR THIS APPLICATION. Non-empty means these rules replace the tracker's for every issue the application claims; empty means the application declares nothing and its tracker's rules stay in force. */
|
|
10364
|
+
deliveryLabels: string[];
|
|
10365
|
+
/** @description Labels marking an issue in progress for this application. Only read when `deliveryLabels` is non-empty — a rule set with no delivery label cannot decide a delivery and never shadows the tracker's. */
|
|
10366
|
+
openedLabels: string[];
|
|
10367
|
+
updatedAt: string | null;
|
|
10368
|
+
};
|
|
10369
|
+
diff: {
|
|
10370
|
+
unscoped: {
|
|
10371
|
+
appeared: {
|
|
10372
|
+
kind: "issue" | "standalone";
|
|
10373
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10374
|
+
key: string;
|
|
10375
|
+
title: string;
|
|
10376
|
+
url: string;
|
|
10377
|
+
before: {
|
|
10378
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10379
|
+
deliveredAt: string | null;
|
|
10380
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10381
|
+
attribution: string | null;
|
|
10382
|
+
} | null;
|
|
10383
|
+
after: {
|
|
10384
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10385
|
+
deliveredAt: string | null;
|
|
10386
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10387
|
+
attribution: string | null;
|
|
10388
|
+
} | null;
|
|
10389
|
+
}[];
|
|
10390
|
+
disappeared: {
|
|
10391
|
+
kind: "issue" | "standalone";
|
|
10392
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10393
|
+
key: string;
|
|
10394
|
+
title: string;
|
|
10395
|
+
url: string;
|
|
10396
|
+
before: {
|
|
10397
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10398
|
+
deliveredAt: string | null;
|
|
10399
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10400
|
+
attribution: string | null;
|
|
10401
|
+
} | null;
|
|
10402
|
+
after: {
|
|
10403
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10404
|
+
deliveredAt: string | null;
|
|
10405
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10406
|
+
attribution: string | null;
|
|
10407
|
+
} | null;
|
|
10408
|
+
}[];
|
|
10409
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
10410
|
+
movedMonth: {
|
|
10411
|
+
kind: "issue" | "standalone";
|
|
10412
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10413
|
+
key: string;
|
|
10414
|
+
title: string;
|
|
10415
|
+
url: string;
|
|
10416
|
+
before: {
|
|
10417
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10418
|
+
deliveredAt: string | null;
|
|
10419
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10420
|
+
attribution: string | null;
|
|
10421
|
+
} | null;
|
|
10422
|
+
after: {
|
|
10423
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10424
|
+
deliveredAt: string | null;
|
|
10425
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10426
|
+
attribution: string | null;
|
|
10427
|
+
} | null;
|
|
10428
|
+
}[];
|
|
10429
|
+
/** @description Only meaningful on a scoped run. */
|
|
10430
|
+
attributionChanged: {
|
|
10431
|
+
kind: "issue" | "standalone";
|
|
10432
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10433
|
+
key: string;
|
|
10434
|
+
title: string;
|
|
10435
|
+
url: string;
|
|
10436
|
+
before: {
|
|
10437
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10438
|
+
deliveredAt: string | null;
|
|
10439
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10440
|
+
attribution: string | null;
|
|
10441
|
+
} | null;
|
|
10442
|
+
after: {
|
|
10443
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10444
|
+
deliveredAt: string | null;
|
|
10445
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10446
|
+
attribution: string | null;
|
|
10447
|
+
} | null;
|
|
10448
|
+
}[];
|
|
10449
|
+
totals: {
|
|
10450
|
+
before: {
|
|
10451
|
+
issues: string | number;
|
|
10452
|
+
standalone: string | number;
|
|
10453
|
+
};
|
|
10454
|
+
after: {
|
|
10455
|
+
issues: string | number;
|
|
10456
|
+
standalone: string | number;
|
|
10457
|
+
};
|
|
10458
|
+
};
|
|
10459
|
+
};
|
|
10460
|
+
scoped: {
|
|
10461
|
+
appeared: {
|
|
10462
|
+
kind: "issue" | "standalone";
|
|
10463
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10464
|
+
key: string;
|
|
10465
|
+
title: string;
|
|
10466
|
+
url: string;
|
|
10467
|
+
before: {
|
|
10468
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10469
|
+
deliveredAt: string | null;
|
|
10470
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10471
|
+
attribution: string | null;
|
|
10472
|
+
} | null;
|
|
10473
|
+
after: {
|
|
10474
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10475
|
+
deliveredAt: string | null;
|
|
10476
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10477
|
+
attribution: string | null;
|
|
10478
|
+
} | null;
|
|
10479
|
+
}[];
|
|
10480
|
+
disappeared: {
|
|
10481
|
+
kind: "issue" | "standalone";
|
|
10482
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10483
|
+
key: string;
|
|
10484
|
+
title: string;
|
|
10485
|
+
url: string;
|
|
10486
|
+
before: {
|
|
10487
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10488
|
+
deliveredAt: string | null;
|
|
10489
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10490
|
+
attribution: string | null;
|
|
10491
|
+
} | null;
|
|
10492
|
+
after: {
|
|
10493
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10494
|
+
deliveredAt: string | null;
|
|
10495
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10496
|
+
attribution: string | null;
|
|
10497
|
+
} | null;
|
|
10498
|
+
}[];
|
|
10499
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
10500
|
+
movedMonth: {
|
|
10501
|
+
kind: "issue" | "standalone";
|
|
10502
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10503
|
+
key: string;
|
|
10504
|
+
title: string;
|
|
10505
|
+
url: string;
|
|
10506
|
+
before: {
|
|
10507
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10508
|
+
deliveredAt: string | null;
|
|
10509
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10510
|
+
attribution: string | null;
|
|
10511
|
+
} | null;
|
|
10512
|
+
after: {
|
|
10513
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10514
|
+
deliveredAt: string | null;
|
|
10515
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10516
|
+
attribution: string | null;
|
|
10517
|
+
} | null;
|
|
10518
|
+
}[];
|
|
10519
|
+
/** @description Only meaningful on a scoped run. */
|
|
10520
|
+
attributionChanged: {
|
|
10521
|
+
kind: "issue" | "standalone";
|
|
10522
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10523
|
+
key: string;
|
|
10524
|
+
title: string;
|
|
10525
|
+
url: string;
|
|
10526
|
+
before: {
|
|
10527
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10528
|
+
deliveredAt: string | null;
|
|
10529
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10530
|
+
attribution: string | null;
|
|
10531
|
+
} | null;
|
|
10532
|
+
after: {
|
|
10533
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10534
|
+
deliveredAt: string | null;
|
|
10535
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10536
|
+
attribution: string | null;
|
|
10537
|
+
} | null;
|
|
10538
|
+
}[];
|
|
10539
|
+
totals: {
|
|
10540
|
+
before: {
|
|
10541
|
+
issues: string | number;
|
|
10542
|
+
standalone: string | number;
|
|
10543
|
+
};
|
|
10544
|
+
after: {
|
|
10545
|
+
issues: string | number;
|
|
10546
|
+
standalone: string | number;
|
|
10547
|
+
};
|
|
10548
|
+
};
|
|
10549
|
+
} | null;
|
|
10550
|
+
};
|
|
10551
|
+
/** @description Send as `If-Match` on the matching PATCH with the SAME body as `patch`. */
|
|
10552
|
+
previewToken: string;
|
|
10553
|
+
/** @description True when either CRA run (before or after, issues or standalone) was capped — the diff then covers only part of the window. */
|
|
10554
|
+
truncated: boolean;
|
|
10555
|
+
};
|
|
10556
|
+
"text/plain": {
|
|
10557
|
+
current: {
|
|
10558
|
+
source: "github" | "gitlab";
|
|
10559
|
+
projectKey: string;
|
|
10560
|
+
deliveryLabels: string[];
|
|
10561
|
+
openedLabels: string[];
|
|
10562
|
+
/** @description Native Status values (GitLab Status widget) that mark an issue delivered. Empty means nothing declared, never 'no gate'. */
|
|
10563
|
+
deliveryStatuses: string[];
|
|
10564
|
+
/** @description Native Status values that (re)open an issue. Empty means nothing declared. */
|
|
10565
|
+
openedStatuses: string[];
|
|
10566
|
+
updatedAt: string | null;
|
|
10567
|
+
} | {
|
|
10568
|
+
applicationSlug: string;
|
|
10569
|
+
/** @description Labels whose addition marks an issue delivered FOR THIS APPLICATION. Non-empty means these rules replace the tracker's for every issue the application claims; empty means the application declares nothing and its tracker's rules stay in force. */
|
|
10570
|
+
deliveryLabels: string[];
|
|
10571
|
+
/** @description Labels marking an issue in progress for this application. Only read when `deliveryLabels` is non-empty — a rule set with no delivery label cannot decide a delivery and never shadows the tracker's. */
|
|
10572
|
+
openedLabels: string[];
|
|
10573
|
+
updatedAt: string | null;
|
|
10574
|
+
};
|
|
10575
|
+
proposed: {
|
|
10576
|
+
source: "github" | "gitlab";
|
|
10577
|
+
projectKey: string;
|
|
10578
|
+
deliveryLabels: string[];
|
|
10579
|
+
openedLabels: string[];
|
|
10580
|
+
/** @description Native Status values (GitLab Status widget) that mark an issue delivered. Empty means nothing declared, never 'no gate'. */
|
|
10581
|
+
deliveryStatuses: string[];
|
|
10582
|
+
/** @description Native Status values that (re)open an issue. Empty means nothing declared. */
|
|
10583
|
+
openedStatuses: string[];
|
|
10584
|
+
updatedAt: string | null;
|
|
10585
|
+
} | {
|
|
10586
|
+
applicationSlug: string;
|
|
10587
|
+
/** @description Labels whose addition marks an issue delivered FOR THIS APPLICATION. Non-empty means these rules replace the tracker's for every issue the application claims; empty means the application declares nothing and its tracker's rules stay in force. */
|
|
10588
|
+
deliveryLabels: string[];
|
|
10589
|
+
/** @description Labels marking an issue in progress for this application. Only read when `deliveryLabels` is non-empty — a rule set with no delivery label cannot decide a delivery and never shadows the tracker's. */
|
|
10590
|
+
openedLabels: string[];
|
|
10591
|
+
updatedAt: string | null;
|
|
10592
|
+
};
|
|
10593
|
+
diff: {
|
|
10594
|
+
unscoped: {
|
|
10595
|
+
appeared: {
|
|
10596
|
+
kind: "issue" | "standalone";
|
|
10597
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10598
|
+
key: string;
|
|
10599
|
+
title: string;
|
|
10600
|
+
url: string;
|
|
10601
|
+
before: {
|
|
10602
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10603
|
+
deliveredAt: string | null;
|
|
10604
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10605
|
+
attribution: string | null;
|
|
10606
|
+
} | null;
|
|
10607
|
+
after: {
|
|
10608
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10609
|
+
deliveredAt: string | null;
|
|
10610
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10611
|
+
attribution: string | null;
|
|
10612
|
+
} | null;
|
|
10613
|
+
}[];
|
|
10614
|
+
disappeared: {
|
|
10615
|
+
kind: "issue" | "standalone";
|
|
10616
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10617
|
+
key: string;
|
|
10618
|
+
title: string;
|
|
10619
|
+
url: string;
|
|
10620
|
+
before: {
|
|
10621
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10622
|
+
deliveredAt: string | null;
|
|
10623
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10624
|
+
attribution: string | null;
|
|
10625
|
+
} | null;
|
|
10626
|
+
after: {
|
|
10627
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10628
|
+
deliveredAt: string | null;
|
|
10629
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10630
|
+
attribution: string | null;
|
|
10631
|
+
} | null;
|
|
10632
|
+
}[];
|
|
10633
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
10634
|
+
movedMonth: {
|
|
10635
|
+
kind: "issue" | "standalone";
|
|
10636
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10637
|
+
key: string;
|
|
10638
|
+
title: string;
|
|
10639
|
+
url: string;
|
|
10640
|
+
before: {
|
|
10641
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10642
|
+
deliveredAt: string | null;
|
|
10643
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10644
|
+
attribution: string | null;
|
|
10645
|
+
} | null;
|
|
10646
|
+
after: {
|
|
10647
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10648
|
+
deliveredAt: string | null;
|
|
10649
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10650
|
+
attribution: string | null;
|
|
10651
|
+
} | null;
|
|
10652
|
+
}[];
|
|
10653
|
+
/** @description Only meaningful on a scoped run. */
|
|
10654
|
+
attributionChanged: {
|
|
10655
|
+
kind: "issue" | "standalone";
|
|
10656
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10657
|
+
key: string;
|
|
10658
|
+
title: string;
|
|
10659
|
+
url: string;
|
|
10660
|
+
before: {
|
|
10661
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10662
|
+
deliveredAt: string | null;
|
|
10663
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10664
|
+
attribution: string | null;
|
|
10665
|
+
} | null;
|
|
10666
|
+
after: {
|
|
10667
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10668
|
+
deliveredAt: string | null;
|
|
10669
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10670
|
+
attribution: string | null;
|
|
10671
|
+
} | null;
|
|
10672
|
+
}[];
|
|
10673
|
+
totals: {
|
|
10674
|
+
before: {
|
|
10675
|
+
issues: string | number;
|
|
10676
|
+
standalone: string | number;
|
|
10677
|
+
};
|
|
10678
|
+
after: {
|
|
10679
|
+
issues: string | number;
|
|
10680
|
+
standalone: string | number;
|
|
10681
|
+
};
|
|
10682
|
+
};
|
|
10683
|
+
};
|
|
10684
|
+
scoped: {
|
|
10685
|
+
appeared: {
|
|
10686
|
+
kind: "issue" | "standalone";
|
|
10687
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10688
|
+
key: string;
|
|
10689
|
+
title: string;
|
|
10690
|
+
url: string;
|
|
10691
|
+
before: {
|
|
10692
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10693
|
+
deliveredAt: string | null;
|
|
10694
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10695
|
+
attribution: string | null;
|
|
10696
|
+
} | null;
|
|
10697
|
+
after: {
|
|
10698
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10699
|
+
deliveredAt: string | null;
|
|
10700
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10701
|
+
attribution: string | null;
|
|
10702
|
+
} | null;
|
|
10703
|
+
}[];
|
|
10704
|
+
disappeared: {
|
|
10705
|
+
kind: "issue" | "standalone";
|
|
10706
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10707
|
+
key: string;
|
|
10708
|
+
title: string;
|
|
10709
|
+
url: string;
|
|
10710
|
+
before: {
|
|
10711
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10712
|
+
deliveredAt: string | null;
|
|
10713
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10714
|
+
attribution: string | null;
|
|
10715
|
+
} | null;
|
|
10716
|
+
after: {
|
|
10717
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10718
|
+
deliveredAt: string | null;
|
|
10719
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10720
|
+
attribution: string | null;
|
|
10721
|
+
} | null;
|
|
10722
|
+
}[];
|
|
10723
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
10724
|
+
movedMonth: {
|
|
10725
|
+
kind: "issue" | "standalone";
|
|
10726
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10727
|
+
key: string;
|
|
10728
|
+
title: string;
|
|
10729
|
+
url: string;
|
|
10730
|
+
before: {
|
|
10731
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10732
|
+
deliveredAt: string | null;
|
|
10733
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10734
|
+
attribution: string | null;
|
|
10735
|
+
} | null;
|
|
10736
|
+
after: {
|
|
10737
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10738
|
+
deliveredAt: string | null;
|
|
10739
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10740
|
+
attribution: string | null;
|
|
10741
|
+
} | null;
|
|
10742
|
+
}[];
|
|
10743
|
+
/** @description Only meaningful on a scoped run. */
|
|
10744
|
+
attributionChanged: {
|
|
10745
|
+
kind: "issue" | "standalone";
|
|
10746
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
10747
|
+
key: string;
|
|
10748
|
+
title: string;
|
|
10749
|
+
url: string;
|
|
10750
|
+
before: {
|
|
10751
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10752
|
+
deliveredAt: string | null;
|
|
10753
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10754
|
+
attribution: string | null;
|
|
10755
|
+
} | null;
|
|
10756
|
+
after: {
|
|
10757
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
10758
|
+
deliveredAt: string | null;
|
|
10759
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
10760
|
+
attribution: string | null;
|
|
10761
|
+
} | null;
|
|
10762
|
+
}[];
|
|
10763
|
+
totals: {
|
|
10764
|
+
before: {
|
|
10765
|
+
issues: string | number;
|
|
10766
|
+
standalone: string | number;
|
|
10767
|
+
};
|
|
10768
|
+
after: {
|
|
10769
|
+
issues: string | number;
|
|
10770
|
+
standalone: string | number;
|
|
10771
|
+
};
|
|
10772
|
+
};
|
|
10773
|
+
} | null;
|
|
10774
|
+
};
|
|
10775
|
+
/** @description Send as `If-Match` on the matching PATCH with the SAME body as `patch`. */
|
|
10776
|
+
previewToken: string;
|
|
10777
|
+
/** @description True when either CRA run (before or after, issues or standalone) was capped — the diff then covers only part of the window. */
|
|
10778
|
+
truncated: boolean;
|
|
10779
|
+
};
|
|
10780
|
+
};
|
|
10781
|
+
};
|
|
10782
|
+
400: {
|
|
10783
|
+
headers: {
|
|
10784
|
+
[name: string]: unknown;
|
|
10785
|
+
};
|
|
10786
|
+
content: {
|
|
10787
|
+
"application/json": {
|
|
10788
|
+
error: string;
|
|
10789
|
+
};
|
|
10790
|
+
"multipart/form-data": {
|
|
10791
|
+
error: string;
|
|
10792
|
+
};
|
|
10793
|
+
"text/plain": {
|
|
10794
|
+
error: string;
|
|
10795
|
+
};
|
|
10796
|
+
};
|
|
10797
|
+
};
|
|
10798
|
+
403: {
|
|
10799
|
+
headers: {
|
|
10800
|
+
[name: string]: unknown;
|
|
10801
|
+
};
|
|
10802
|
+
content: {
|
|
10803
|
+
"application/json": {
|
|
10804
|
+
error: string;
|
|
10805
|
+
};
|
|
10806
|
+
"multipart/form-data": {
|
|
10807
|
+
error: string;
|
|
10808
|
+
};
|
|
10809
|
+
"text/plain": {
|
|
10810
|
+
error: string;
|
|
10811
|
+
};
|
|
10812
|
+
};
|
|
10813
|
+
};
|
|
10814
|
+
404: {
|
|
10815
|
+
headers: {
|
|
10816
|
+
[name: string]: unknown;
|
|
10817
|
+
};
|
|
10818
|
+
content: {
|
|
10819
|
+
"application/json": {
|
|
10820
|
+
error: string;
|
|
10821
|
+
};
|
|
10822
|
+
"multipart/form-data": {
|
|
10823
|
+
error: string;
|
|
10824
|
+
};
|
|
10825
|
+
"text/plain": {
|
|
10826
|
+
error: string;
|
|
10827
|
+
};
|
|
10828
|
+
};
|
|
10829
|
+
};
|
|
10830
|
+
};
|
|
10831
|
+
};
|
|
10832
|
+
"postV1PreviewsWorkflow-rules": {
|
|
10833
|
+
parameters: {
|
|
10834
|
+
query?: never;
|
|
10835
|
+
header?: never;
|
|
10836
|
+
path?: never;
|
|
10837
|
+
cookie?: never;
|
|
10838
|
+
};
|
|
10839
|
+
requestBody: {
|
|
10840
|
+
content: {
|
|
10841
|
+
"application/json": {
|
|
10842
|
+
source: "github" | "gitlab";
|
|
10843
|
+
projectKey: string;
|
|
10844
|
+
patch: {
|
|
10845
|
+
labelRules?: {
|
|
10846
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
10847
|
+
prefix: string;
|
|
10848
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10849
|
+
}[];
|
|
10850
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
10851
|
+
statusSource?: {
|
|
10852
|
+
/** @constant */
|
|
10853
|
+
kind: "gitlab-native";
|
|
10854
|
+
} | {
|
|
10855
|
+
/** @constant */
|
|
10856
|
+
kind: "github-project";
|
|
10857
|
+
projectNumber: string | number;
|
|
10858
|
+
fieldName: string;
|
|
10859
|
+
} | null;
|
|
10860
|
+
statusRules?: {
|
|
10861
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
10862
|
+
value: string;
|
|
10863
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10864
|
+
}[];
|
|
10865
|
+
flowFamilies?: string[];
|
|
10866
|
+
};
|
|
10867
|
+
};
|
|
10868
|
+
"multipart/form-data": {
|
|
10869
|
+
source: "github" | "gitlab";
|
|
10870
|
+
projectKey: string;
|
|
10871
|
+
patch: {
|
|
10872
|
+
labelRules?: {
|
|
10873
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
10874
|
+
prefix: string;
|
|
10875
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10876
|
+
}[];
|
|
10877
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
10878
|
+
statusSource?: {
|
|
10879
|
+
/** @constant */
|
|
10880
|
+
kind: "gitlab-native";
|
|
10881
|
+
} | {
|
|
10882
|
+
/** @constant */
|
|
10883
|
+
kind: "github-project";
|
|
10884
|
+
projectNumber: string | number;
|
|
10885
|
+
fieldName: string;
|
|
10886
|
+
} | null;
|
|
10887
|
+
statusRules?: {
|
|
10888
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
10889
|
+
value: string;
|
|
10890
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10891
|
+
}[];
|
|
10892
|
+
flowFamilies?: string[];
|
|
10893
|
+
};
|
|
10894
|
+
};
|
|
10895
|
+
"text/plain": {
|
|
10896
|
+
source: "github" | "gitlab";
|
|
10897
|
+
projectKey: string;
|
|
10898
|
+
patch: {
|
|
10899
|
+
labelRules?: {
|
|
10900
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
10901
|
+
prefix: string;
|
|
10902
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10903
|
+
}[];
|
|
10904
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
10905
|
+
statusSource?: {
|
|
10906
|
+
/** @constant */
|
|
10907
|
+
kind: "gitlab-native";
|
|
10908
|
+
} | {
|
|
10909
|
+
/** @constant */
|
|
10910
|
+
kind: "github-project";
|
|
10911
|
+
projectNumber: string | number;
|
|
10912
|
+
fieldName: string;
|
|
10913
|
+
} | null;
|
|
10914
|
+
statusRules?: {
|
|
10915
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
10916
|
+
value: string;
|
|
10917
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10918
|
+
}[];
|
|
10919
|
+
flowFamilies?: string[];
|
|
10920
|
+
};
|
|
10921
|
+
};
|
|
10922
|
+
};
|
|
10923
|
+
};
|
|
10924
|
+
responses: {
|
|
10925
|
+
200: {
|
|
10926
|
+
headers: {
|
|
10927
|
+
[name: string]: unknown;
|
|
10928
|
+
};
|
|
10929
|
+
content: {
|
|
10930
|
+
"application/json": {
|
|
10931
|
+
current: {
|
|
10932
|
+
source: "github" | "gitlab";
|
|
10933
|
+
projectKey: string;
|
|
10934
|
+
labelRules: {
|
|
10935
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
10936
|
+
prefix: string;
|
|
10937
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10938
|
+
}[];
|
|
10939
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
10940
|
+
statusSource: {
|
|
10941
|
+
/** @constant */
|
|
10942
|
+
kind: "gitlab-native";
|
|
10943
|
+
} | {
|
|
10944
|
+
/** @constant */
|
|
10945
|
+
kind: "github-project";
|
|
10946
|
+
projectNumber: string | number;
|
|
10947
|
+
fieldName: string;
|
|
10948
|
+
} | null;
|
|
10949
|
+
statusRules: {
|
|
10950
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
10951
|
+
value: string;
|
|
10952
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10953
|
+
}[];
|
|
10954
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
10955
|
+
flowFamilies: string[];
|
|
10956
|
+
};
|
|
10957
|
+
proposed: {
|
|
10958
|
+
source: "github" | "gitlab";
|
|
10959
|
+
projectKey: string;
|
|
10960
|
+
labelRules: {
|
|
10961
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
10962
|
+
prefix: string;
|
|
10963
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10964
|
+
}[];
|
|
10965
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
10966
|
+
statusSource: {
|
|
10967
|
+
/** @constant */
|
|
10968
|
+
kind: "gitlab-native";
|
|
10969
|
+
} | {
|
|
10970
|
+
/** @constant */
|
|
10971
|
+
kind: "github-project";
|
|
10972
|
+
projectNumber: string | number;
|
|
10973
|
+
fieldName: string;
|
|
10974
|
+
} | null;
|
|
10975
|
+
statusRules: {
|
|
10976
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
10977
|
+
value: string;
|
|
10978
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
10979
|
+
}[];
|
|
10980
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
10981
|
+
flowFamilies: string[];
|
|
10982
|
+
};
|
|
10983
|
+
stateDistribution: {
|
|
10984
|
+
before: {
|
|
10985
|
+
todo: string | number;
|
|
10986
|
+
doing: string | number;
|
|
10987
|
+
review: string | number;
|
|
10988
|
+
delivered: string | number;
|
|
10989
|
+
blocked: string | number;
|
|
10990
|
+
done: string | number;
|
|
10991
|
+
};
|
|
10992
|
+
after: {
|
|
10993
|
+
todo: string | number;
|
|
10994
|
+
doing: string | number;
|
|
10995
|
+
review: string | number;
|
|
10996
|
+
delivered: string | number;
|
|
10997
|
+
blocked: string | number;
|
|
10998
|
+
done: string | number;
|
|
10999
|
+
};
|
|
11000
|
+
};
|
|
11001
|
+
/** @description Open issues whose `workflow.state` changes, ≤ 200. */
|
|
11002
|
+
changedIssues: {
|
|
11003
|
+
number: string | number;
|
|
11004
|
+
title: string;
|
|
11005
|
+
before: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11006
|
+
after: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11007
|
+
}[];
|
|
11008
|
+
/** @description True when `changedIssues` was capped at 200, or when the open-issue load itself was capped (the distribution then covers part of the tracker). */
|
|
11009
|
+
truncated: boolean;
|
|
11010
|
+
/** @description Send as `If-Match` on the workflow-rules PATCH with the SAME body as `patch`. */
|
|
11011
|
+
previewToken: string;
|
|
11012
|
+
};
|
|
11013
|
+
"multipart/form-data": {
|
|
11014
|
+
current: {
|
|
11015
|
+
source: "github" | "gitlab";
|
|
11016
|
+
projectKey: string;
|
|
11017
|
+
labelRules: {
|
|
11018
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
11019
|
+
prefix: string;
|
|
11020
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11021
|
+
}[];
|
|
11022
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
11023
|
+
statusSource: {
|
|
11024
|
+
/** @constant */
|
|
11025
|
+
kind: "gitlab-native";
|
|
11026
|
+
} | {
|
|
11027
|
+
/** @constant */
|
|
11028
|
+
kind: "github-project";
|
|
11029
|
+
projectNumber: string | number;
|
|
11030
|
+
fieldName: string;
|
|
11031
|
+
} | null;
|
|
11032
|
+
statusRules: {
|
|
11033
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
11034
|
+
value: string;
|
|
11035
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11036
|
+
}[];
|
|
11037
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
11038
|
+
flowFamilies: string[];
|
|
11039
|
+
};
|
|
11040
|
+
proposed: {
|
|
11041
|
+
source: "github" | "gitlab";
|
|
11042
|
+
projectKey: string;
|
|
11043
|
+
labelRules: {
|
|
11044
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
11045
|
+
prefix: string;
|
|
11046
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11047
|
+
}[];
|
|
11048
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
11049
|
+
statusSource: {
|
|
11050
|
+
/** @constant */
|
|
11051
|
+
kind: "gitlab-native";
|
|
11052
|
+
} | {
|
|
11053
|
+
/** @constant */
|
|
11054
|
+
kind: "github-project";
|
|
11055
|
+
projectNumber: string | number;
|
|
11056
|
+
fieldName: string;
|
|
11057
|
+
} | null;
|
|
11058
|
+
statusRules: {
|
|
11059
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
11060
|
+
value: string;
|
|
11061
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11062
|
+
}[];
|
|
11063
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
11064
|
+
flowFamilies: string[];
|
|
11065
|
+
};
|
|
11066
|
+
stateDistribution: {
|
|
11067
|
+
before: {
|
|
11068
|
+
todo: string | number;
|
|
11069
|
+
doing: string | number;
|
|
11070
|
+
review: string | number;
|
|
11071
|
+
delivered: string | number;
|
|
11072
|
+
blocked: string | number;
|
|
11073
|
+
done: string | number;
|
|
11074
|
+
};
|
|
11075
|
+
after: {
|
|
11076
|
+
todo: string | number;
|
|
11077
|
+
doing: string | number;
|
|
11078
|
+
review: string | number;
|
|
11079
|
+
delivered: string | number;
|
|
11080
|
+
blocked: string | number;
|
|
11081
|
+
done: string | number;
|
|
11082
|
+
};
|
|
11083
|
+
};
|
|
11084
|
+
/** @description Open issues whose `workflow.state` changes, ≤ 200. */
|
|
11085
|
+
changedIssues: {
|
|
11086
|
+
number: string | number;
|
|
11087
|
+
title: string;
|
|
11088
|
+
before: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11089
|
+
after: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11090
|
+
}[];
|
|
11091
|
+
/** @description True when `changedIssues` was capped at 200, or when the open-issue load itself was capped (the distribution then covers part of the tracker). */
|
|
11092
|
+
truncated: boolean;
|
|
11093
|
+
/** @description Send as `If-Match` on the workflow-rules PATCH with the SAME body as `patch`. */
|
|
11094
|
+
previewToken: string;
|
|
11095
|
+
};
|
|
11096
|
+
"text/plain": {
|
|
11097
|
+
current: {
|
|
11098
|
+
source: "github" | "gitlab";
|
|
11099
|
+
projectKey: string;
|
|
11100
|
+
labelRules: {
|
|
11101
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
11102
|
+
prefix: string;
|
|
11103
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11104
|
+
}[];
|
|
11105
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
11106
|
+
statusSource: {
|
|
11107
|
+
/** @constant */
|
|
11108
|
+
kind: "gitlab-native";
|
|
11109
|
+
} | {
|
|
11110
|
+
/** @constant */
|
|
11111
|
+
kind: "github-project";
|
|
11112
|
+
projectNumber: string | number;
|
|
11113
|
+
fieldName: string;
|
|
11114
|
+
} | null;
|
|
11115
|
+
statusRules: {
|
|
11116
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
11117
|
+
value: string;
|
|
11118
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11119
|
+
}[];
|
|
11120
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
11121
|
+
flowFamilies: string[];
|
|
11122
|
+
};
|
|
11123
|
+
proposed: {
|
|
11124
|
+
source: "github" | "gitlab";
|
|
11125
|
+
projectKey: string;
|
|
11126
|
+
labelRules: {
|
|
11127
|
+
/** @description Label prefix, matched case-insensitively against the part of the label name before any parenthesis (so a WIP limit like `=::Doing (3)` still matches `=::Doing`). */
|
|
11128
|
+
prefix: string;
|
|
11129
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11130
|
+
}[];
|
|
11131
|
+
/** @description Where ingestion WOULD read the issue's native status from — GitLab's own status field, or a named field on a numbered GitHub Project. `null` means no native status is read and the calculation falls through to labels/signals. Configured but not yet ingested: reading GitLab's native work-item status and a named GitHub Project v2 field are both deferred (no live credentials yet), so `_gc.nativeStatus` has no writer today regardless of what is declared here — a non-null `statusSource` is forward-looking configuration for when that ingestion lands, not a live data path. This is NOT read by the calculation itself (`WorkflowRules` in `workflow/computeState.ts` carries no `statusSource`): it is an ingestion concern, stored here only because the config screen edits both together. */
|
|
11132
|
+
statusSource: {
|
|
11133
|
+
/** @constant */
|
|
11134
|
+
kind: "gitlab-native";
|
|
11135
|
+
} | {
|
|
11136
|
+
/** @constant */
|
|
11137
|
+
kind: "github-project";
|
|
11138
|
+
projectNumber: string | number;
|
|
11139
|
+
fieldName: string;
|
|
11140
|
+
} | null;
|
|
11141
|
+
statusRules: {
|
|
11142
|
+
/** @description Matched EXACTLY against the tracker-native status resolved via `statusSource` — no prefix matching, because a structured field carries no WIP-limit suffix to strip. */
|
|
11143
|
+
value: string;
|
|
11144
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11145
|
+
}[];
|
|
11146
|
+
/** @description Label prefixes considered part of the workflow's flow, e.g. a whole column family like `=::`. Without this declaration, a label that is simply not part of the flow (unrelated to workflow state) cannot be told apart from a flow label whose column was renamed and is no longer covered by any `labelRules` — both would just be silently ignored. Declaring the family lets the calculation tell the two apart internally, but that distinction is NOT exposed on any `/v1` response (no `unmatchedFlowLabels` field exists in this API) — it is config-screen information only, surfaced live on the per-tracker workflow-rules editor (`WorkflowRulesCard`) as the list of flow labels no rule currently covers. */
|
|
11147
|
+
flowFamilies: string[];
|
|
11148
|
+
};
|
|
11149
|
+
stateDistribution: {
|
|
11150
|
+
before: {
|
|
11151
|
+
todo: string | number;
|
|
11152
|
+
doing: string | number;
|
|
11153
|
+
review: string | number;
|
|
11154
|
+
delivered: string | number;
|
|
11155
|
+
blocked: string | number;
|
|
11156
|
+
done: string | number;
|
|
11157
|
+
};
|
|
11158
|
+
after: {
|
|
11159
|
+
todo: string | number;
|
|
11160
|
+
doing: string | number;
|
|
11161
|
+
review: string | number;
|
|
11162
|
+
delivered: string | number;
|
|
11163
|
+
blocked: string | number;
|
|
11164
|
+
done: string | number;
|
|
11165
|
+
};
|
|
11166
|
+
};
|
|
11167
|
+
/** @description Open issues whose `workflow.state` changes, ≤ 200. */
|
|
11168
|
+
changedIssues: {
|
|
11169
|
+
number: string | number;
|
|
11170
|
+
title: string;
|
|
11171
|
+
before: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11172
|
+
after: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
11173
|
+
}[];
|
|
11174
|
+
/** @description True when `changedIssues` was capped at 200, or when the open-issue load itself was capped (the distribution then covers part of the tracker). */
|
|
11175
|
+
truncated: boolean;
|
|
11176
|
+
/** @description Send as `If-Match` on the workflow-rules PATCH with the SAME body as `patch`. */
|
|
11177
|
+
previewToken: string;
|
|
11178
|
+
};
|
|
11179
|
+
};
|
|
11180
|
+
};
|
|
11181
|
+
400: {
|
|
11182
|
+
headers: {
|
|
11183
|
+
[name: string]: unknown;
|
|
11184
|
+
};
|
|
11185
|
+
content: {
|
|
11186
|
+
"application/json": {
|
|
11187
|
+
error: string;
|
|
11188
|
+
};
|
|
11189
|
+
"multipart/form-data": {
|
|
11190
|
+
error: string;
|
|
11191
|
+
};
|
|
11192
|
+
"text/plain": {
|
|
11193
|
+
error: string;
|
|
11194
|
+
};
|
|
11195
|
+
};
|
|
11196
|
+
};
|
|
11197
|
+
403: {
|
|
11198
|
+
headers: {
|
|
11199
|
+
[name: string]: unknown;
|
|
11200
|
+
};
|
|
11201
|
+
content: {
|
|
11202
|
+
"application/json": {
|
|
11203
|
+
error: string;
|
|
11204
|
+
};
|
|
11205
|
+
"multipart/form-data": {
|
|
11206
|
+
error: string;
|
|
11207
|
+
};
|
|
11208
|
+
"text/plain": {
|
|
11209
|
+
error: string;
|
|
11210
|
+
};
|
|
11211
|
+
};
|
|
11212
|
+
};
|
|
11213
|
+
};
|
|
11214
|
+
};
|
|
11215
|
+
"postV1PreviewsIdentity-aliases": {
|
|
11216
|
+
parameters: {
|
|
11217
|
+
query?: never;
|
|
11218
|
+
header?: never;
|
|
11219
|
+
path?: never;
|
|
11220
|
+
cookie?: never;
|
|
11221
|
+
};
|
|
11222
|
+
requestBody: {
|
|
11223
|
+
content: {
|
|
11224
|
+
"application/json": {
|
|
11225
|
+
identityId: string | number;
|
|
11226
|
+
op: "add" | "remove";
|
|
11227
|
+
provider: "github" | "gitlab";
|
|
11228
|
+
login: string;
|
|
11229
|
+
/** @description Window start (ISO date or datetime). */
|
|
11230
|
+
from: string;
|
|
11231
|
+
/** @description Window end (ISO date or datetime). */
|
|
11232
|
+
to: string;
|
|
11233
|
+
};
|
|
11234
|
+
"multipart/form-data": {
|
|
11235
|
+
identityId: string | number;
|
|
11236
|
+
op: "add" | "remove";
|
|
11237
|
+
provider: "github" | "gitlab";
|
|
11238
|
+
login: string;
|
|
11239
|
+
/** @description Window start (ISO date or datetime). */
|
|
11240
|
+
from: string;
|
|
11241
|
+
/** @description Window end (ISO date or datetime). */
|
|
11242
|
+
to: string;
|
|
11243
|
+
};
|
|
11244
|
+
"text/plain": {
|
|
11245
|
+
identityId: string | number;
|
|
11246
|
+
op: "add" | "remove";
|
|
11247
|
+
provider: "github" | "gitlab";
|
|
11248
|
+
login: string;
|
|
11249
|
+
/** @description Window start (ISO date or datetime). */
|
|
11250
|
+
from: string;
|
|
11251
|
+
/** @description Window end (ISO date or datetime). */
|
|
11252
|
+
to: string;
|
|
11253
|
+
};
|
|
11254
|
+
};
|
|
11255
|
+
};
|
|
11256
|
+
responses: {
|
|
11257
|
+
200: {
|
|
11258
|
+
headers: {
|
|
11259
|
+
[name: string]: unknown;
|
|
11260
|
+
};
|
|
11261
|
+
content: {
|
|
11262
|
+
"application/json": {
|
|
11263
|
+
current: {
|
|
11264
|
+
provider: "github" | "gitlab";
|
|
11265
|
+
login: string;
|
|
11266
|
+
}[];
|
|
11267
|
+
proposed: {
|
|
11268
|
+
provider: "github" | "gitlab";
|
|
11269
|
+
login: string;
|
|
11270
|
+
}[];
|
|
11271
|
+
diff: {
|
|
11272
|
+
appeared: {
|
|
11273
|
+
kind: "issue" | "standalone";
|
|
11274
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11275
|
+
key: string;
|
|
11276
|
+
title: string;
|
|
11277
|
+
url: string;
|
|
11278
|
+
before: {
|
|
11279
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11280
|
+
deliveredAt: string | null;
|
|
11281
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11282
|
+
attribution: string | null;
|
|
11283
|
+
} | null;
|
|
11284
|
+
after: {
|
|
11285
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11286
|
+
deliveredAt: string | null;
|
|
11287
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11288
|
+
attribution: string | null;
|
|
11289
|
+
} | null;
|
|
11290
|
+
}[];
|
|
11291
|
+
disappeared: {
|
|
11292
|
+
kind: "issue" | "standalone";
|
|
11293
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11294
|
+
key: string;
|
|
11295
|
+
title: string;
|
|
11296
|
+
url: string;
|
|
11297
|
+
before: {
|
|
11298
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11299
|
+
deliveredAt: string | null;
|
|
11300
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11301
|
+
attribution: string | null;
|
|
11302
|
+
} | null;
|
|
11303
|
+
after: {
|
|
11304
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11305
|
+
deliveredAt: string | null;
|
|
11306
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11307
|
+
attribution: string | null;
|
|
11308
|
+
} | null;
|
|
11309
|
+
}[];
|
|
11310
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
11311
|
+
movedMonth: {
|
|
11312
|
+
kind: "issue" | "standalone";
|
|
11313
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11314
|
+
key: string;
|
|
11315
|
+
title: string;
|
|
11316
|
+
url: string;
|
|
11317
|
+
before: {
|
|
11318
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11319
|
+
deliveredAt: string | null;
|
|
11320
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11321
|
+
attribution: string | null;
|
|
11322
|
+
} | null;
|
|
11323
|
+
after: {
|
|
11324
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11325
|
+
deliveredAt: string | null;
|
|
11326
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11327
|
+
attribution: string | null;
|
|
11328
|
+
} | null;
|
|
11329
|
+
}[];
|
|
11330
|
+
/** @description Only meaningful on a scoped run. */
|
|
11331
|
+
attributionChanged: {
|
|
11332
|
+
kind: "issue" | "standalone";
|
|
11333
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11334
|
+
key: string;
|
|
11335
|
+
title: string;
|
|
11336
|
+
url: string;
|
|
11337
|
+
before: {
|
|
11338
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11339
|
+
deliveredAt: string | null;
|
|
11340
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11341
|
+
attribution: string | null;
|
|
11342
|
+
} | null;
|
|
11343
|
+
after: {
|
|
11344
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11345
|
+
deliveredAt: string | null;
|
|
11346
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11347
|
+
attribution: string | null;
|
|
11348
|
+
} | null;
|
|
11349
|
+
}[];
|
|
11350
|
+
totals: {
|
|
11351
|
+
before: {
|
|
11352
|
+
issues: string | number;
|
|
11353
|
+
standalone: string | number;
|
|
11354
|
+
};
|
|
11355
|
+
after: {
|
|
11356
|
+
issues: string | number;
|
|
11357
|
+
standalone: string | number;
|
|
11358
|
+
};
|
|
11359
|
+
};
|
|
11360
|
+
};
|
|
11361
|
+
/** @description Send as `If-Match` on `POST /v1/identities/{id}/aliases` (op add, body `{provider, login}`) or `DELETE /v1/identities/{id}/aliases/{provider}/{login}` (op remove). */
|
|
11362
|
+
previewToken: string;
|
|
11363
|
+
/** @description True when either CRA run was capped. */
|
|
11364
|
+
truncated: boolean;
|
|
11365
|
+
};
|
|
11366
|
+
"multipart/form-data": {
|
|
11367
|
+
current: {
|
|
11368
|
+
provider: "github" | "gitlab";
|
|
11369
|
+
login: string;
|
|
11370
|
+
}[];
|
|
11371
|
+
proposed: {
|
|
11372
|
+
provider: "github" | "gitlab";
|
|
11373
|
+
login: string;
|
|
11374
|
+
}[];
|
|
11375
|
+
diff: {
|
|
11376
|
+
appeared: {
|
|
11377
|
+
kind: "issue" | "standalone";
|
|
11378
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11379
|
+
key: string;
|
|
11380
|
+
title: string;
|
|
11381
|
+
url: string;
|
|
11382
|
+
before: {
|
|
11383
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11384
|
+
deliveredAt: string | null;
|
|
11385
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11386
|
+
attribution: string | null;
|
|
11387
|
+
} | null;
|
|
11388
|
+
after: {
|
|
11389
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11390
|
+
deliveredAt: string | null;
|
|
11391
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11392
|
+
attribution: string | null;
|
|
11393
|
+
} | null;
|
|
11394
|
+
}[];
|
|
11395
|
+
disappeared: {
|
|
11396
|
+
kind: "issue" | "standalone";
|
|
11397
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11398
|
+
key: string;
|
|
11399
|
+
title: string;
|
|
11400
|
+
url: string;
|
|
11401
|
+
before: {
|
|
11402
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11403
|
+
deliveredAt: string | null;
|
|
11404
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11405
|
+
attribution: string | null;
|
|
11406
|
+
} | null;
|
|
11407
|
+
after: {
|
|
11408
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11409
|
+
deliveredAt: string | null;
|
|
11410
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11411
|
+
attribution: string | null;
|
|
11412
|
+
} | null;
|
|
11413
|
+
}[];
|
|
11414
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
11415
|
+
movedMonth: {
|
|
11416
|
+
kind: "issue" | "standalone";
|
|
11417
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11418
|
+
key: string;
|
|
11419
|
+
title: string;
|
|
11420
|
+
url: string;
|
|
11421
|
+
before: {
|
|
11422
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11423
|
+
deliveredAt: string | null;
|
|
11424
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11425
|
+
attribution: string | null;
|
|
11426
|
+
} | null;
|
|
11427
|
+
after: {
|
|
11428
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11429
|
+
deliveredAt: string | null;
|
|
11430
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11431
|
+
attribution: string | null;
|
|
11432
|
+
} | null;
|
|
11433
|
+
}[];
|
|
11434
|
+
/** @description Only meaningful on a scoped run. */
|
|
11435
|
+
attributionChanged: {
|
|
11436
|
+
kind: "issue" | "standalone";
|
|
11437
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11438
|
+
key: string;
|
|
11439
|
+
title: string;
|
|
11440
|
+
url: string;
|
|
11441
|
+
before: {
|
|
11442
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11443
|
+
deliveredAt: string | null;
|
|
11444
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11445
|
+
attribution: string | null;
|
|
11446
|
+
} | null;
|
|
11447
|
+
after: {
|
|
11448
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11449
|
+
deliveredAt: string | null;
|
|
11450
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11451
|
+
attribution: string | null;
|
|
11452
|
+
} | null;
|
|
11453
|
+
}[];
|
|
11454
|
+
totals: {
|
|
11455
|
+
before: {
|
|
11456
|
+
issues: string | number;
|
|
11457
|
+
standalone: string | number;
|
|
11458
|
+
};
|
|
11459
|
+
after: {
|
|
11460
|
+
issues: string | number;
|
|
11461
|
+
standalone: string | number;
|
|
11462
|
+
};
|
|
11463
|
+
};
|
|
11464
|
+
};
|
|
11465
|
+
/** @description Send as `If-Match` on `POST /v1/identities/{id}/aliases` (op add, body `{provider, login}`) or `DELETE /v1/identities/{id}/aliases/{provider}/{login}` (op remove). */
|
|
11466
|
+
previewToken: string;
|
|
11467
|
+
/** @description True when either CRA run was capped. */
|
|
11468
|
+
truncated: boolean;
|
|
11469
|
+
};
|
|
11470
|
+
"text/plain": {
|
|
11471
|
+
current: {
|
|
11472
|
+
provider: "github" | "gitlab";
|
|
11473
|
+
login: string;
|
|
11474
|
+
}[];
|
|
11475
|
+
proposed: {
|
|
11476
|
+
provider: "github" | "gitlab";
|
|
11477
|
+
login: string;
|
|
11478
|
+
}[];
|
|
11479
|
+
diff: {
|
|
11480
|
+
appeared: {
|
|
11481
|
+
kind: "issue" | "standalone";
|
|
11482
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11483
|
+
key: string;
|
|
11484
|
+
title: string;
|
|
11485
|
+
url: string;
|
|
11486
|
+
before: {
|
|
11487
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11488
|
+
deliveredAt: string | null;
|
|
11489
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11490
|
+
attribution: string | null;
|
|
11491
|
+
} | null;
|
|
11492
|
+
after: {
|
|
11493
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11494
|
+
deliveredAt: string | null;
|
|
11495
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11496
|
+
attribution: string | null;
|
|
11497
|
+
} | null;
|
|
11498
|
+
}[];
|
|
11499
|
+
disappeared: {
|
|
11500
|
+
kind: "issue" | "standalone";
|
|
11501
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11502
|
+
key: string;
|
|
11503
|
+
title: string;
|
|
11504
|
+
url: string;
|
|
11505
|
+
before: {
|
|
11506
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11507
|
+
deliveredAt: string | null;
|
|
11508
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11509
|
+
attribution: string | null;
|
|
11510
|
+
} | null;
|
|
11511
|
+
after: {
|
|
11512
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11513
|
+
deliveredAt: string | null;
|
|
11514
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11515
|
+
attribution: string | null;
|
|
11516
|
+
} | null;
|
|
11517
|
+
}[];
|
|
11518
|
+
/** @description Lines whose delivery month (YYYY-MM) changes. */
|
|
11519
|
+
movedMonth: {
|
|
11520
|
+
kind: "issue" | "standalone";
|
|
11521
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11522
|
+
key: string;
|
|
11523
|
+
title: string;
|
|
11524
|
+
url: string;
|
|
11525
|
+
before: {
|
|
11526
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11527
|
+
deliveredAt: string | null;
|
|
11528
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11529
|
+
attribution: string | null;
|
|
11530
|
+
} | null;
|
|
11531
|
+
after: {
|
|
11532
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11533
|
+
deliveredAt: string | null;
|
|
11534
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11535
|
+
attribution: string | null;
|
|
11536
|
+
} | null;
|
|
11537
|
+
}[];
|
|
11538
|
+
/** @description Only meaningful on a scoped run. */
|
|
11539
|
+
attributionChanged: {
|
|
11540
|
+
kind: "issue" | "standalone";
|
|
11541
|
+
/** @description `${source}:${projectKey}:${number}` */
|
|
11542
|
+
key: string;
|
|
11543
|
+
title: string;
|
|
11544
|
+
url: string;
|
|
11545
|
+
before: {
|
|
11546
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11547
|
+
deliveredAt: string | null;
|
|
11548
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11549
|
+
attribution: string | null;
|
|
11550
|
+
} | null;
|
|
11551
|
+
after: {
|
|
11552
|
+
/** @description Issue: `deliveredAt`. Standalone MR/PR: `mergedAt`. The month of this date is the CRA period the line bills in. */
|
|
11553
|
+
deliveredAt: string | null;
|
|
11554
|
+
/** @description Issue: `attribution.result` (assigned/committer/pr_author). Standalone: the credited login. Null on an unscoped run. */
|
|
11555
|
+
attribution: string | null;
|
|
11556
|
+
} | null;
|
|
11557
|
+
}[];
|
|
11558
|
+
totals: {
|
|
11559
|
+
before: {
|
|
11560
|
+
issues: string | number;
|
|
11561
|
+
standalone: string | number;
|
|
11562
|
+
};
|
|
11563
|
+
after: {
|
|
11564
|
+
issues: string | number;
|
|
11565
|
+
standalone: string | number;
|
|
11566
|
+
};
|
|
11567
|
+
};
|
|
11568
|
+
};
|
|
11569
|
+
/** @description Send as `If-Match` on `POST /v1/identities/{id}/aliases` (op add, body `{provider, login}`) or `DELETE /v1/identities/{id}/aliases/{provider}/{login}` (op remove). */
|
|
11570
|
+
previewToken: string;
|
|
11571
|
+
/** @description True when either CRA run was capped. */
|
|
11572
|
+
truncated: boolean;
|
|
11573
|
+
};
|
|
11574
|
+
};
|
|
11575
|
+
};
|
|
11576
|
+
400: {
|
|
11577
|
+
headers: {
|
|
11578
|
+
[name: string]: unknown;
|
|
11579
|
+
};
|
|
11580
|
+
content: {
|
|
11581
|
+
"application/json": {
|
|
11582
|
+
error: string;
|
|
11583
|
+
};
|
|
11584
|
+
"multipart/form-data": {
|
|
11585
|
+
error: string;
|
|
11586
|
+
};
|
|
11587
|
+
"text/plain": {
|
|
11588
|
+
error: string;
|
|
11589
|
+
};
|
|
11590
|
+
};
|
|
11591
|
+
};
|
|
11592
|
+
403: {
|
|
11593
|
+
headers: {
|
|
11594
|
+
[name: string]: unknown;
|
|
11595
|
+
};
|
|
11596
|
+
content: {
|
|
11597
|
+
"application/json": {
|
|
11598
|
+
error: string;
|
|
11599
|
+
};
|
|
11600
|
+
"multipart/form-data": {
|
|
11601
|
+
error: string;
|
|
11602
|
+
};
|
|
11603
|
+
"text/plain": {
|
|
11604
|
+
error: string;
|
|
11605
|
+
};
|
|
11606
|
+
};
|
|
11607
|
+
};
|
|
11608
|
+
404: {
|
|
11609
|
+
headers: {
|
|
11610
|
+
[name: string]: unknown;
|
|
11611
|
+
};
|
|
11612
|
+
content: {
|
|
11613
|
+
"application/json": {
|
|
11614
|
+
error: string;
|
|
11615
|
+
};
|
|
11616
|
+
"multipart/form-data": {
|
|
11617
|
+
error: string;
|
|
11618
|
+
};
|
|
11619
|
+
"text/plain": {
|
|
11620
|
+
error: string;
|
|
11621
|
+
};
|
|
11622
|
+
};
|
|
11623
|
+
};
|
|
11624
|
+
};
|
|
11625
|
+
};
|
|
11626
|
+
getV1ProjectsBySourceByProjectKeyProfile: {
|
|
11627
|
+
parameters: {
|
|
11628
|
+
query?: {
|
|
11629
|
+
from?: string;
|
|
11630
|
+
to?: string;
|
|
11631
|
+
};
|
|
11632
|
+
header?: never;
|
|
11633
|
+
path: {
|
|
11634
|
+
source: string;
|
|
11635
|
+
projectKey: string;
|
|
11636
|
+
};
|
|
11637
|
+
cookie?: never;
|
|
11638
|
+
};
|
|
11639
|
+
requestBody?: never;
|
|
11640
|
+
responses: {
|
|
11641
|
+
200: {
|
|
11642
|
+
headers: {
|
|
11643
|
+
[name: string]: unknown;
|
|
11644
|
+
};
|
|
11645
|
+
content: {
|
|
11646
|
+
"application/json": {
|
|
11647
|
+
issues: {
|
|
11648
|
+
total: string | number;
|
|
11649
|
+
open: string | number;
|
|
11650
|
+
withIteration: string | number;
|
|
11651
|
+
withMilestone: string | number;
|
|
11652
|
+
withAssignee: string | number;
|
|
11653
|
+
};
|
|
11654
|
+
/** @description Issues per `workflow.origin` (closed|status|label|signals). */
|
|
11655
|
+
workflowOrigin: {
|
|
11656
|
+
[key: string]: string | number;
|
|
11657
|
+
};
|
|
11658
|
+
/** @description OPEN issues per computed `workflow.state`. */
|
|
11659
|
+
workflowState: {
|
|
11660
|
+
[key: string]: string | number;
|
|
11661
|
+
};
|
|
11662
|
+
/** @description Current native status per issue, read as the LAST entry of its status chronology (`statusChanges`); issues with no chronology are not counted. Sorted by count desc then name. */
|
|
11663
|
+
nativeStatuses: {
|
|
11664
|
+
name: string;
|
|
11665
|
+
count: string | number;
|
|
11666
|
+
}[];
|
|
11667
|
+
/** @description Top 50 labels by issue count; see `labelsTruncated`. */
|
|
11668
|
+
labels: {
|
|
11669
|
+
name: string;
|
|
11670
|
+
count: string | number;
|
|
11671
|
+
}[];
|
|
11672
|
+
labelsTruncated: boolean;
|
|
11673
|
+
/** @description true when the tracker holds more issues than were loaded for this answer, so the counts describe only part of it. */
|
|
11674
|
+
truncated: boolean;
|
|
11675
|
+
perAssignee: {
|
|
11676
|
+
login: string;
|
|
11677
|
+
byState: {
|
|
11678
|
+
[key: string]: string | number;
|
|
11679
|
+
};
|
|
11680
|
+
}[];
|
|
11681
|
+
/** @description `null` when the project key has no PR/MR activity at all (a pure tracker); otherwise merged PR/MRs in the window and those NO issue bills (the standalone deliverables of that code repo). */
|
|
11682
|
+
mergeRequests: {
|
|
11683
|
+
mergedInWindow: string | number;
|
|
11684
|
+
withoutIssue: string | number;
|
|
11685
|
+
} | null;
|
|
11686
|
+
};
|
|
11687
|
+
"multipart/form-data": {
|
|
11688
|
+
issues: {
|
|
11689
|
+
total: string | number;
|
|
11690
|
+
open: string | number;
|
|
11691
|
+
withIteration: string | number;
|
|
11692
|
+
withMilestone: string | number;
|
|
11693
|
+
withAssignee: string | number;
|
|
11694
|
+
};
|
|
11695
|
+
/** @description Issues per `workflow.origin` (closed|status|label|signals). */
|
|
11696
|
+
workflowOrigin: {
|
|
11697
|
+
[key: string]: string | number;
|
|
11698
|
+
};
|
|
11699
|
+
/** @description OPEN issues per computed `workflow.state`. */
|
|
11700
|
+
workflowState: {
|
|
11701
|
+
[key: string]: string | number;
|
|
11702
|
+
};
|
|
11703
|
+
/** @description Current native status per issue, read as the LAST entry of its status chronology (`statusChanges`); issues with no chronology are not counted. Sorted by count desc then name. */
|
|
11704
|
+
nativeStatuses: {
|
|
11705
|
+
name: string;
|
|
11706
|
+
count: string | number;
|
|
11707
|
+
}[];
|
|
11708
|
+
/** @description Top 50 labels by issue count; see `labelsTruncated`. */
|
|
11709
|
+
labels: {
|
|
11710
|
+
name: string;
|
|
11711
|
+
count: string | number;
|
|
11712
|
+
}[];
|
|
11713
|
+
labelsTruncated: boolean;
|
|
11714
|
+
/** @description true when the tracker holds more issues than were loaded for this answer, so the counts describe only part of it. */
|
|
11715
|
+
truncated: boolean;
|
|
11716
|
+
perAssignee: {
|
|
11717
|
+
login: string;
|
|
11718
|
+
byState: {
|
|
11719
|
+
[key: string]: string | number;
|
|
11720
|
+
};
|
|
11721
|
+
}[];
|
|
11722
|
+
/** @description `null` when the project key has no PR/MR activity at all (a pure tracker); otherwise merged PR/MRs in the window and those NO issue bills (the standalone deliverables of that code repo). */
|
|
11723
|
+
mergeRequests: {
|
|
11724
|
+
mergedInWindow: string | number;
|
|
11725
|
+
withoutIssue: string | number;
|
|
11726
|
+
} | null;
|
|
11727
|
+
};
|
|
11728
|
+
"text/plain": {
|
|
11729
|
+
issues: {
|
|
11730
|
+
total: string | number;
|
|
11731
|
+
open: string | number;
|
|
11732
|
+
withIteration: string | number;
|
|
11733
|
+
withMilestone: string | number;
|
|
11734
|
+
withAssignee: string | number;
|
|
11735
|
+
};
|
|
11736
|
+
/** @description Issues per `workflow.origin` (closed|status|label|signals). */
|
|
11737
|
+
workflowOrigin: {
|
|
11738
|
+
[key: string]: string | number;
|
|
11739
|
+
};
|
|
11740
|
+
/** @description OPEN issues per computed `workflow.state`. */
|
|
11741
|
+
workflowState: {
|
|
11742
|
+
[key: string]: string | number;
|
|
11743
|
+
};
|
|
11744
|
+
/** @description Current native status per issue, read as the LAST entry of its status chronology (`statusChanges`); issues with no chronology are not counted. Sorted by count desc then name. */
|
|
11745
|
+
nativeStatuses: {
|
|
11746
|
+
name: string;
|
|
11747
|
+
count: string | number;
|
|
11748
|
+
}[];
|
|
11749
|
+
/** @description Top 50 labels by issue count; see `labelsTruncated`. */
|
|
11750
|
+
labels: {
|
|
11751
|
+
name: string;
|
|
11752
|
+
count: string | number;
|
|
11753
|
+
}[];
|
|
11754
|
+
labelsTruncated: boolean;
|
|
11755
|
+
/** @description true when the tracker holds more issues than were loaded for this answer, so the counts describe only part of it. */
|
|
11756
|
+
truncated: boolean;
|
|
11757
|
+
perAssignee: {
|
|
11758
|
+
login: string;
|
|
11759
|
+
byState: {
|
|
11760
|
+
[key: string]: string | number;
|
|
11761
|
+
};
|
|
11762
|
+
}[];
|
|
11763
|
+
/** @description `null` when the project key has no PR/MR activity at all (a pure tracker); otherwise merged PR/MRs in the window and those NO issue bills (the standalone deliverables of that code repo). */
|
|
11764
|
+
mergeRequests: {
|
|
11765
|
+
mergedInWindow: string | number;
|
|
11766
|
+
withoutIssue: string | number;
|
|
11767
|
+
} | null;
|
|
11768
|
+
};
|
|
11769
|
+
};
|
|
11770
|
+
};
|
|
11771
|
+
400: {
|
|
11772
|
+
headers: {
|
|
11773
|
+
[name: string]: unknown;
|
|
11774
|
+
};
|
|
11775
|
+
content: {
|
|
11776
|
+
"application/json": {
|
|
11777
|
+
error: string;
|
|
11778
|
+
};
|
|
11779
|
+
"multipart/form-data": {
|
|
11780
|
+
error: string;
|
|
11781
|
+
};
|
|
11782
|
+
"text/plain": {
|
|
11783
|
+
error: string;
|
|
11784
|
+
};
|
|
11785
|
+
};
|
|
11786
|
+
};
|
|
11787
|
+
403: {
|
|
11788
|
+
headers: {
|
|
11789
|
+
[name: string]: unknown;
|
|
11790
|
+
};
|
|
11791
|
+
content: {
|
|
11792
|
+
"application/json": {
|
|
11793
|
+
error: string;
|
|
11794
|
+
};
|
|
11795
|
+
"multipart/form-data": {
|
|
11796
|
+
error: string;
|
|
11797
|
+
};
|
|
11798
|
+
"text/plain": {
|
|
11799
|
+
error: string;
|
|
11800
|
+
};
|
|
11801
|
+
};
|
|
11802
|
+
};
|
|
11803
|
+
};
|
|
11804
|
+
};
|
|
11805
|
+
"getV1ProjectsBySourceByProjectKeyLabel-status-correspondence": {
|
|
11806
|
+
parameters: {
|
|
11807
|
+
query?: {
|
|
11808
|
+
windowHours?: string;
|
|
11809
|
+
};
|
|
11810
|
+
header?: never;
|
|
11811
|
+
path: {
|
|
11812
|
+
source: string;
|
|
11813
|
+
projectKey: string;
|
|
11814
|
+
};
|
|
11815
|
+
cookie?: never;
|
|
11816
|
+
};
|
|
11817
|
+
requestBody?: never;
|
|
11818
|
+
responses: {
|
|
11819
|
+
200: {
|
|
11820
|
+
headers: {
|
|
11821
|
+
[name: string]: unknown;
|
|
11822
|
+
};
|
|
11823
|
+
content: {
|
|
11824
|
+
"application/json": {
|
|
11825
|
+
windowHours: string | number;
|
|
11826
|
+
/** @description true when the tracker holds more issues than were loaded for this answer, so the counts describe only part of it. */
|
|
11827
|
+
truncated: boolean;
|
|
11828
|
+
/** @description Issues with at least one `added` label event and at least one native-status change. */
|
|
11829
|
+
issuesWithBoth: string | number;
|
|
11830
|
+
labels: {
|
|
11831
|
+
label: string;
|
|
11832
|
+
occurrences: string | number;
|
|
11833
|
+
statuses: {
|
|
11834
|
+
status: string;
|
|
11835
|
+
count: string | number;
|
|
11836
|
+
}[];
|
|
11837
|
+
}[];
|
|
11838
|
+
};
|
|
11839
|
+
"multipart/form-data": {
|
|
11840
|
+
windowHours: string | number;
|
|
11841
|
+
/** @description true when the tracker holds more issues than were loaded for this answer, so the counts describe only part of it. */
|
|
11842
|
+
truncated: boolean;
|
|
11843
|
+
/** @description Issues with at least one `added` label event and at least one native-status change. */
|
|
11844
|
+
issuesWithBoth: string | number;
|
|
11845
|
+
labels: {
|
|
11846
|
+
label: string;
|
|
11847
|
+
occurrences: string | number;
|
|
11848
|
+
statuses: {
|
|
11849
|
+
status: string;
|
|
11850
|
+
count: string | number;
|
|
11851
|
+
}[];
|
|
11852
|
+
}[];
|
|
11853
|
+
};
|
|
11854
|
+
"text/plain": {
|
|
11855
|
+
windowHours: string | number;
|
|
11856
|
+
/** @description true when the tracker holds more issues than were loaded for this answer, so the counts describe only part of it. */
|
|
11857
|
+
truncated: boolean;
|
|
11858
|
+
/** @description Issues with at least one `added` label event and at least one native-status change. */
|
|
11859
|
+
issuesWithBoth: string | number;
|
|
11860
|
+
labels: {
|
|
11861
|
+
label: string;
|
|
11862
|
+
occurrences: string | number;
|
|
11863
|
+
statuses: {
|
|
11864
|
+
status: string;
|
|
11865
|
+
count: string | number;
|
|
11866
|
+
}[];
|
|
11867
|
+
}[];
|
|
11868
|
+
};
|
|
11869
|
+
};
|
|
11870
|
+
};
|
|
11871
|
+
400: {
|
|
11872
|
+
headers: {
|
|
11873
|
+
[name: string]: unknown;
|
|
11874
|
+
};
|
|
11875
|
+
content: {
|
|
11876
|
+
"application/json": {
|
|
11877
|
+
error: string;
|
|
11878
|
+
};
|
|
11879
|
+
"multipart/form-data": {
|
|
11880
|
+
error: string;
|
|
11881
|
+
};
|
|
11882
|
+
"text/plain": {
|
|
11883
|
+
error: string;
|
|
11884
|
+
};
|
|
11885
|
+
};
|
|
11886
|
+
};
|
|
11887
|
+
403: {
|
|
11888
|
+
headers: {
|
|
11889
|
+
[name: string]: unknown;
|
|
11890
|
+
};
|
|
11891
|
+
content: {
|
|
11892
|
+
"application/json": {
|
|
11893
|
+
error: string;
|
|
11894
|
+
};
|
|
11895
|
+
"multipart/form-data": {
|
|
11896
|
+
error: string;
|
|
11897
|
+
};
|
|
11898
|
+
"text/plain": {
|
|
11899
|
+
error: string;
|
|
11900
|
+
};
|
|
11901
|
+
};
|
|
11902
|
+
};
|
|
11903
|
+
};
|
|
11904
|
+
};
|
|
8204
11905
|
}
|