@cesar-richard/git-connector-sdk 4.11.0 → 4.12.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 +454 -0
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -148,6 +148,22 @@ export interface paths {
|
|
|
148
148
|
patch: operations["patchV1ApplicationsBySlugDelivery-rules"];
|
|
149
149
|
trace?: never;
|
|
150
150
|
};
|
|
151
|
+
"/v1/projects/{source}/{projectKey}/workflow-rules": {
|
|
152
|
+
parameters: {
|
|
153
|
+
query?: never;
|
|
154
|
+
header?: never;
|
|
155
|
+
path?: never;
|
|
156
|
+
cookie?: never;
|
|
157
|
+
};
|
|
158
|
+
get: operations["getV1ProjectsBySourceByProjectKeyWorkflow-rules"];
|
|
159
|
+
put: operations["putV1ProjectsBySourceByProjectKeyWorkflow-rules"];
|
|
160
|
+
post?: never;
|
|
161
|
+
delete?: never;
|
|
162
|
+
options?: never;
|
|
163
|
+
head?: never;
|
|
164
|
+
patch?: never;
|
|
165
|
+
trace?: never;
|
|
166
|
+
};
|
|
151
167
|
"/v1/projects": {
|
|
152
168
|
parameters: {
|
|
153
169
|
query?: never;
|
|
@@ -2077,6 +2093,16 @@ export interface components {
|
|
|
2077
2093
|
severity: string | null;
|
|
2078
2094
|
/** @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. */
|
|
2079
2095
|
applications: string[];
|
|
2096
|
+
/** @description This issue's position in the delivery flow, computed server-side from the tracker's configured workflow rules (see GET|PUT /v1/projects/{source}/{projectKey}/workflow-rules) so clients stop each recomputing it. Closure is the first stage of the cascade and fires independently of any configuration — a closed issue always returns `origin: 'closed'`, even with zero rules configured for its tracker. Absent any OTHER matching configuration, `origin` falls back to `signals` rather than erroring. */
|
|
2097
|
+
workflow: {
|
|
2098
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2099
|
+
/** @description The label (as matched) or native status string that produced `state`, when `origin` is `label` or `status`. `null` when `origin` is `closed` or `signals`. */
|
|
2100
|
+
stage: string | null;
|
|
2101
|
+
/** @description Which stage of the cascade decided `state`: the issue being closed, a matched native-status rule, a matched label rule, or the signals fallback read off linked PR/MR activity. `status` is configured but not yet ingested — reading GitLab's native work-item status and a named field on a GitHub Project v2 are both deferred for want of live credentials, so `_gc.nativeStatus` has no writer today and `origin` cannot currently come back as `status`; a declared `statusSource` is forward-looking configuration for when that ingestion lands. */
|
|
2102
|
+
origin: "closed" | "status" | "label" | "signals";
|
|
2103
|
+
/** @description When the current state began. `null` means the underlying source said nothing — never a default — and this can happen on EVERY origin, not just `status`/`signals`: for `origin: 'closed'` it is the payload's `closed_at`, which can be absent; for `origin: 'label'` it comes from the label history (`_gc.statusHistory`), and GitHub issues carry no `_gc` at all (only `providers/gitlab.ts` writes it), so every GitHub issue resolved by a label rule returns `stateSince: null` — plus roughly 7% of GitLab issues whose activity predates history tracking. A consumer building a "depuis N jours" display should treat `null` as missing data, not as a bug. */
|
|
2104
|
+
stateSince: string | null;
|
|
2105
|
+
};
|
|
2080
2106
|
iteration: {
|
|
2081
2107
|
id: string | number;
|
|
2082
2108
|
title: string;
|
|
@@ -2314,6 +2340,16 @@ export interface components {
|
|
|
2314
2340
|
severity: string | null;
|
|
2315
2341
|
/** @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. */
|
|
2316
2342
|
applications: string[];
|
|
2343
|
+
/** @description This issue's position in the delivery flow, computed server-side from the tracker's configured workflow rules (see GET|PUT /v1/projects/{source}/{projectKey}/workflow-rules) so clients stop each recomputing it. Closure is the first stage of the cascade and fires independently of any configuration — a closed issue always returns `origin: 'closed'`, even with zero rules configured for its tracker. Absent any OTHER matching configuration, `origin` falls back to `signals` rather than erroring. */
|
|
2344
|
+
workflow: {
|
|
2345
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2346
|
+
/** @description The label (as matched) or native status string that produced `state`, when `origin` is `label` or `status`. `null` when `origin` is `closed` or `signals`. */
|
|
2347
|
+
stage: string | null;
|
|
2348
|
+
/** @description Which stage of the cascade decided `state`: the issue being closed, a matched native-status rule, a matched label rule, or the signals fallback read off linked PR/MR activity. `status` is configured but not yet ingested — reading GitLab's native work-item status and a named field on a GitHub Project v2 are both deferred for want of live credentials, so `_gc.nativeStatus` has no writer today and `origin` cannot currently come back as `status`; a declared `statusSource` is forward-looking configuration for when that ingestion lands. */
|
|
2349
|
+
origin: "closed" | "status" | "label" | "signals";
|
|
2350
|
+
/** @description When the current state began. `null` means the underlying source said nothing — never a default — and this can happen on EVERY origin, not just `status`/`signals`: for `origin: 'closed'` it is the payload's `closed_at`, which can be absent; for `origin: 'label'` it comes from the label history (`_gc.statusHistory`), and GitHub issues carry no `_gc` at all (only `providers/gitlab.ts` writes it), so every GitHub issue resolved by a label rule returns `stateSince: null` — plus roughly 7% of GitLab issues whose activity predates history tracking. A consumer building a "depuis N jours" display should treat `null` as missing data, not as a bug. */
|
|
2351
|
+
stateSince: string | null;
|
|
2352
|
+
};
|
|
2317
2353
|
iteration: {
|
|
2318
2354
|
id: string | number;
|
|
2319
2355
|
title: string;
|
|
@@ -2494,6 +2530,76 @@ export interface components {
|
|
|
2494
2530
|
limit: string | number;
|
|
2495
2531
|
offset?: string | number;
|
|
2496
2532
|
};
|
|
2533
|
+
WorkflowLabelRule: {
|
|
2534
|
+
/** @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`). */
|
|
2535
|
+
prefix: string;
|
|
2536
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2537
|
+
};
|
|
2538
|
+
WorkflowRulesPut: {
|
|
2539
|
+
labelRules: {
|
|
2540
|
+
/** @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`). */
|
|
2541
|
+
prefix: string;
|
|
2542
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2543
|
+
}[];
|
|
2544
|
+
/** @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. */
|
|
2545
|
+
statusSource: {
|
|
2546
|
+
/** @constant */
|
|
2547
|
+
kind: "gitlab-native";
|
|
2548
|
+
} | {
|
|
2549
|
+
/** @constant */
|
|
2550
|
+
kind: "github-project";
|
|
2551
|
+
projectNumber: string | number;
|
|
2552
|
+
fieldName: string;
|
|
2553
|
+
} | null;
|
|
2554
|
+
statusRules: {
|
|
2555
|
+
/** @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. */
|
|
2556
|
+
value: string;
|
|
2557
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2558
|
+
}[];
|
|
2559
|
+
flowFamilies: string[];
|
|
2560
|
+
};
|
|
2561
|
+
WorkflowRulesRow: {
|
|
2562
|
+
source: "github" | "gitlab";
|
|
2563
|
+
projectKey: string;
|
|
2564
|
+
labelRules: {
|
|
2565
|
+
/** @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`). */
|
|
2566
|
+
prefix: string;
|
|
2567
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2568
|
+
}[];
|
|
2569
|
+
/** @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. */
|
|
2570
|
+
statusSource: {
|
|
2571
|
+
/** @constant */
|
|
2572
|
+
kind: "gitlab-native";
|
|
2573
|
+
} | {
|
|
2574
|
+
/** @constant */
|
|
2575
|
+
kind: "github-project";
|
|
2576
|
+
projectNumber: string | number;
|
|
2577
|
+
fieldName: string;
|
|
2578
|
+
} | null;
|
|
2579
|
+
statusRules: {
|
|
2580
|
+
/** @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. */
|
|
2581
|
+
value: string;
|
|
2582
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2583
|
+
}[];
|
|
2584
|
+
/** @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. */
|
|
2585
|
+
flowFamilies: string[];
|
|
2586
|
+
};
|
|
2587
|
+
WorkflowState: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2588
|
+
WorkflowStatusRule: {
|
|
2589
|
+
/** @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. */
|
|
2590
|
+
value: string;
|
|
2591
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2592
|
+
};
|
|
2593
|
+
/** @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. */
|
|
2594
|
+
WorkflowStatusSource: {
|
|
2595
|
+
/** @constant */
|
|
2596
|
+
kind: "gitlab-native";
|
|
2597
|
+
} | {
|
|
2598
|
+
/** @constant */
|
|
2599
|
+
kind: "github-project";
|
|
2600
|
+
projectNumber: string | number;
|
|
2601
|
+
fieldName: string;
|
|
2602
|
+
} | null;
|
|
2497
2603
|
};
|
|
2498
2604
|
responses: never;
|
|
2499
2605
|
parameters: never;
|
|
@@ -2509,6 +2615,8 @@ export interface operations {
|
|
|
2509
2615
|
/** @description Filter by iteration. Values: 'current' (the GitLab native iteration in state="current", typically a 2-week sprint — NOT a calendar month), 'none' (work items without any iteration), or a numeric iteration id. For calendar-based filtering (monthly CRA, etc.), use updatedSince + updatedBefore. */
|
|
2510
2616
|
iteration?: string;
|
|
2511
2617
|
state?: string;
|
|
2618
|
+
/** @description Filters issues by their COMPUTED workflow state (WorkItem.workflow.state: 'todo'|'doing'|'review'|'delivered'|'blocked'|'done') — a different axis from `state` above (issue lifecycle), never folded into it, and the two compose freely (e.g. state=open&workflowState=blocked asks for open issues currently blocked). `workflow.state` is computed by `composeWorkItem` AFTER composition (labels, statusHistory and linked PR/MR signals all feed it), so this switches the request to the EXHAUSTIVE evaluation path (like ?application=) and `total` describes the truly filtered set, never a pre-filter SQL COUNT(*) — the defect #72 shipped on /v1/deliverables. `state` keeps its own default ('open') with no implicit change: `?workflowState=done` alone answers 'open issues whose computed workflow state is done' (work finished on the board but never closed) — pass state=all explicitly to include closed issues too. */
|
|
2619
|
+
workflowState?: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2512
2620
|
source?: string;
|
|
2513
2621
|
projectKey?: string;
|
|
2514
2622
|
assignee?: string;
|
|
@@ -2606,6 +2714,16 @@ export interface operations {
|
|
|
2606
2714
|
severity: string | null;
|
|
2607
2715
|
/** @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. */
|
|
2608
2716
|
applications: string[];
|
|
2717
|
+
/** @description This issue's position in the delivery flow, computed server-side from the tracker's configured workflow rules (see GET|PUT /v1/projects/{source}/{projectKey}/workflow-rules) so clients stop each recomputing it. Closure is the first stage of the cascade and fires independently of any configuration — a closed issue always returns `origin: 'closed'`, even with zero rules configured for its tracker. Absent any OTHER matching configuration, `origin` falls back to `signals` rather than erroring. */
|
|
2718
|
+
workflow: {
|
|
2719
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2720
|
+
/** @description The label (as matched) or native status string that produced `state`, when `origin` is `label` or `status`. `null` when `origin` is `closed` or `signals`. */
|
|
2721
|
+
stage: string | null;
|
|
2722
|
+
/** @description Which stage of the cascade decided `state`: the issue being closed, a matched native-status rule, a matched label rule, or the signals fallback read off linked PR/MR activity. `status` is configured but not yet ingested — reading GitLab's native work-item status and a named field on a GitHub Project v2 are both deferred for want of live credentials, so `_gc.nativeStatus` has no writer today and `origin` cannot currently come back as `status`; a declared `statusSource` is forward-looking configuration for when that ingestion lands. */
|
|
2723
|
+
origin: "closed" | "status" | "label" | "signals";
|
|
2724
|
+
/** @description When the current state began. `null` means the underlying source said nothing — never a default — and this can happen on EVERY origin, not just `status`/`signals`: for `origin: 'closed'` it is the payload's `closed_at`, which can be absent; for `origin: 'label'` it comes from the label history (`_gc.statusHistory`), and GitHub issues carry no `_gc` at all (only `providers/gitlab.ts` writes it), so every GitHub issue resolved by a label rule returns `stateSince: null` — plus roughly 7% of GitLab issues whose activity predates history tracking. A consumer building a "depuis N jours" display should treat `null` as missing data, not as a bug. */
|
|
2725
|
+
stateSince: string | null;
|
|
2726
|
+
};
|
|
2609
2727
|
iteration: {
|
|
2610
2728
|
id: string | number;
|
|
2611
2729
|
title: string;
|
|
@@ -2847,6 +2965,16 @@ export interface operations {
|
|
|
2847
2965
|
severity: string | null;
|
|
2848
2966
|
/** @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. */
|
|
2849
2967
|
applications: string[];
|
|
2968
|
+
/** @description This issue's position in the delivery flow, computed server-side from the tracker's configured workflow rules (see GET|PUT /v1/projects/{source}/{projectKey}/workflow-rules) so clients stop each recomputing it. Closure is the first stage of the cascade and fires independently of any configuration — a closed issue always returns `origin: 'closed'`, even with zero rules configured for its tracker. Absent any OTHER matching configuration, `origin` falls back to `signals` rather than erroring. */
|
|
2969
|
+
workflow: {
|
|
2970
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
2971
|
+
/** @description The label (as matched) or native status string that produced `state`, when `origin` is `label` or `status`. `null` when `origin` is `closed` or `signals`. */
|
|
2972
|
+
stage: string | null;
|
|
2973
|
+
/** @description Which stage of the cascade decided `state`: the issue being closed, a matched native-status rule, a matched label rule, or the signals fallback read off linked PR/MR activity. `status` is configured but not yet ingested — reading GitLab's native work-item status and a named field on a GitHub Project v2 are both deferred for want of live credentials, so `_gc.nativeStatus` has no writer today and `origin` cannot currently come back as `status`; a declared `statusSource` is forward-looking configuration for when that ingestion lands. */
|
|
2974
|
+
origin: "closed" | "status" | "label" | "signals";
|
|
2975
|
+
/** @description When the current state began. `null` means the underlying source said nothing — never a default — and this can happen on EVERY origin, not just `status`/`signals`: for `origin: 'closed'` it is the payload's `closed_at`, which can be absent; for `origin: 'label'` it comes from the label history (`_gc.statusHistory`), and GitHub issues carry no `_gc` at all (only `providers/gitlab.ts` writes it), so every GitHub issue resolved by a label rule returns `stateSince: null` — plus roughly 7% of GitLab issues whose activity predates history tracking. A consumer building a "depuis N jours" display should treat `null` as missing data, not as a bug. */
|
|
2976
|
+
stateSince: string | null;
|
|
2977
|
+
};
|
|
2850
2978
|
iteration: {
|
|
2851
2979
|
id: string | number;
|
|
2852
2980
|
title: string;
|
|
@@ -3088,6 +3216,16 @@ export interface operations {
|
|
|
3088
3216
|
severity: string | null;
|
|
3089
3217
|
/** @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. */
|
|
3090
3218
|
applications: string[];
|
|
3219
|
+
/** @description This issue's position in the delivery flow, computed server-side from the tracker's configured workflow rules (see GET|PUT /v1/projects/{source}/{projectKey}/workflow-rules) so clients stop each recomputing it. Closure is the first stage of the cascade and fires independently of any configuration — a closed issue always returns `origin: 'closed'`, even with zero rules configured for its tracker. Absent any OTHER matching configuration, `origin` falls back to `signals` rather than erroring. */
|
|
3220
|
+
workflow: {
|
|
3221
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3222
|
+
/** @description The label (as matched) or native status string that produced `state`, when `origin` is `label` or `status`. `null` when `origin` is `closed` or `signals`. */
|
|
3223
|
+
stage: string | null;
|
|
3224
|
+
/** @description Which stage of the cascade decided `state`: the issue being closed, a matched native-status rule, a matched label rule, or the signals fallback read off linked PR/MR activity. `status` is configured but not yet ingested — reading GitLab's native work-item status and a named field on a GitHub Project v2 are both deferred for want of live credentials, so `_gc.nativeStatus` has no writer today and `origin` cannot currently come back as `status`; a declared `statusSource` is forward-looking configuration for when that ingestion lands. */
|
|
3225
|
+
origin: "closed" | "status" | "label" | "signals";
|
|
3226
|
+
/** @description When the current state began. `null` means the underlying source said nothing — never a default — and this can happen on EVERY origin, not just `status`/`signals`: for `origin: 'closed'` it is the payload's `closed_at`, which can be absent; for `origin: 'label'` it comes from the label history (`_gc.statusHistory`), and GitHub issues carry no `_gc` at all (only `providers/gitlab.ts` writes it), so every GitHub issue resolved by a label rule returns `stateSince: null` — plus roughly 7% of GitLab issues whose activity predates history tracking. A consumer building a "depuis N jours" display should treat `null` as missing data, not as a bug. */
|
|
3227
|
+
stateSince: string | null;
|
|
3228
|
+
};
|
|
3091
3229
|
iteration: {
|
|
3092
3230
|
id: string | number;
|
|
3093
3231
|
title: string;
|
|
@@ -3385,6 +3523,16 @@ export interface operations {
|
|
|
3385
3523
|
severity: string | null;
|
|
3386
3524
|
/** @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. */
|
|
3387
3525
|
applications: string[];
|
|
3526
|
+
/** @description This issue's position in the delivery flow, computed server-side from the tracker's configured workflow rules (see GET|PUT /v1/projects/{source}/{projectKey}/workflow-rules) so clients stop each recomputing it. Closure is the first stage of the cascade and fires independently of any configuration — a closed issue always returns `origin: 'closed'`, even with zero rules configured for its tracker. Absent any OTHER matching configuration, `origin` falls back to `signals` rather than erroring. */
|
|
3527
|
+
workflow: {
|
|
3528
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3529
|
+
/** @description The label (as matched) or native status string that produced `state`, when `origin` is `label` or `status`. `null` when `origin` is `closed` or `signals`. */
|
|
3530
|
+
stage: string | null;
|
|
3531
|
+
/** @description Which stage of the cascade decided `state`: the issue being closed, a matched native-status rule, a matched label rule, or the signals fallback read off linked PR/MR activity. `status` is configured but not yet ingested — reading GitLab's native work-item status and a named field on a GitHub Project v2 are both deferred for want of live credentials, so `_gc.nativeStatus` has no writer today and `origin` cannot currently come back as `status`; a declared `statusSource` is forward-looking configuration for when that ingestion lands. */
|
|
3532
|
+
origin: "closed" | "status" | "label" | "signals";
|
|
3533
|
+
/** @description When the current state began. `null` means the underlying source said nothing — never a default — and this can happen on EVERY origin, not just `status`/`signals`: for `origin: 'closed'` it is the payload's `closed_at`, which can be absent; for `origin: 'label'` it comes from the label history (`_gc.statusHistory`), and GitHub issues carry no `_gc` at all (only `providers/gitlab.ts` writes it), so every GitHub issue resolved by a label rule returns `stateSince: null` — plus roughly 7% of GitLab issues whose activity predates history tracking. A consumer building a "depuis N jours" display should treat `null` as missing data, not as a bug. */
|
|
3534
|
+
stateSince: string | null;
|
|
3535
|
+
};
|
|
3388
3536
|
iteration: {
|
|
3389
3537
|
id: string | number;
|
|
3390
3538
|
title: string;
|
|
@@ -3621,6 +3769,16 @@ export interface operations {
|
|
|
3621
3769
|
severity: string | null;
|
|
3622
3770
|
/** @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. */
|
|
3623
3771
|
applications: string[];
|
|
3772
|
+
/** @description This issue's position in the delivery flow, computed server-side from the tracker's configured workflow rules (see GET|PUT /v1/projects/{source}/{projectKey}/workflow-rules) so clients stop each recomputing it. Closure is the first stage of the cascade and fires independently of any configuration — a closed issue always returns `origin: 'closed'`, even with zero rules configured for its tracker. Absent any OTHER matching configuration, `origin` falls back to `signals` rather than erroring. */
|
|
3773
|
+
workflow: {
|
|
3774
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
3775
|
+
/** @description The label (as matched) or native status string that produced `state`, when `origin` is `label` or `status`. `null` when `origin` is `closed` or `signals`. */
|
|
3776
|
+
stage: string | null;
|
|
3777
|
+
/** @description Which stage of the cascade decided `state`: the issue being closed, a matched native-status rule, a matched label rule, or the signals fallback read off linked PR/MR activity. `status` is configured but not yet ingested — reading GitLab's native work-item status and a named field on a GitHub Project v2 are both deferred for want of live credentials, so `_gc.nativeStatus` has no writer today and `origin` cannot currently come back as `status`; a declared `statusSource` is forward-looking configuration for when that ingestion lands. */
|
|
3778
|
+
origin: "closed" | "status" | "label" | "signals";
|
|
3779
|
+
/** @description When the current state began. `null` means the underlying source said nothing — never a default — and this can happen on EVERY origin, not just `status`/`signals`: for `origin: 'closed'` it is the payload's `closed_at`, which can be absent; for `origin: 'label'` it comes from the label history (`_gc.statusHistory`), and GitHub issues carry no `_gc` at all (only `providers/gitlab.ts` writes it), so every GitHub issue resolved by a label rule returns `stateSince: null` — plus roughly 7% of GitLab issues whose activity predates history tracking. A consumer building a "depuis N jours" display should treat `null` as missing data, not as a bug. */
|
|
3780
|
+
stateSince: string | null;
|
|
3781
|
+
};
|
|
3624
3782
|
iteration: {
|
|
3625
3783
|
id: string | number;
|
|
3626
3784
|
title: string;
|
|
@@ -3857,6 +4015,16 @@ export interface operations {
|
|
|
3857
4015
|
severity: string | null;
|
|
3858
4016
|
/** @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. */
|
|
3859
4017
|
applications: string[];
|
|
4018
|
+
/** @description This issue's position in the delivery flow, computed server-side from the tracker's configured workflow rules (see GET|PUT /v1/projects/{source}/{projectKey}/workflow-rules) so clients stop each recomputing it. Closure is the first stage of the cascade and fires independently of any configuration — a closed issue always returns `origin: 'closed'`, even with zero rules configured for its tracker. Absent any OTHER matching configuration, `origin` falls back to `signals` rather than erroring. */
|
|
4019
|
+
workflow: {
|
|
4020
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
4021
|
+
/** @description The label (as matched) or native status string that produced `state`, when `origin` is `label` or `status`. `null` when `origin` is `closed` or `signals`. */
|
|
4022
|
+
stage: string | null;
|
|
4023
|
+
/** @description Which stage of the cascade decided `state`: the issue being closed, a matched native-status rule, a matched label rule, or the signals fallback read off linked PR/MR activity. `status` is configured but not yet ingested — reading GitLab's native work-item status and a named field on a GitHub Project v2 are both deferred for want of live credentials, so `_gc.nativeStatus` has no writer today and `origin` cannot currently come back as `status`; a declared `statusSource` is forward-looking configuration for when that ingestion lands. */
|
|
4024
|
+
origin: "closed" | "status" | "label" | "signals";
|
|
4025
|
+
/** @description When the current state began. `null` means the underlying source said nothing — never a default — and this can happen on EVERY origin, not just `status`/`signals`: for `origin: 'closed'` it is the payload's `closed_at`, which can be absent; for `origin: 'label'` it comes from the label history (`_gc.statusHistory`), and GitHub issues carry no `_gc` at all (only `providers/gitlab.ts` writes it), so every GitHub issue resolved by a label rule returns `stateSince: null` — plus roughly 7% of GitLab issues whose activity predates history tracking. A consumer building a "depuis N jours" display should treat `null` as missing data, not as a bug. */
|
|
4026
|
+
stateSince: string | null;
|
|
4027
|
+
};
|
|
3860
4028
|
iteration: {
|
|
3861
4029
|
id: string | number;
|
|
3862
4030
|
title: string;
|
|
@@ -6468,6 +6636,292 @@ export interface operations {
|
|
|
6468
6636
|
};
|
|
6469
6637
|
};
|
|
6470
6638
|
};
|
|
6639
|
+
"getV1ProjectsBySourceByProjectKeyWorkflow-rules": {
|
|
6640
|
+
parameters: {
|
|
6641
|
+
query?: never;
|
|
6642
|
+
header?: never;
|
|
6643
|
+
path: {
|
|
6644
|
+
source: string;
|
|
6645
|
+
projectKey: string;
|
|
6646
|
+
};
|
|
6647
|
+
cookie?: never;
|
|
6648
|
+
};
|
|
6649
|
+
requestBody?: never;
|
|
6650
|
+
responses: {
|
|
6651
|
+
200: {
|
|
6652
|
+
headers: {
|
|
6653
|
+
[name: string]: unknown;
|
|
6654
|
+
};
|
|
6655
|
+
content: {
|
|
6656
|
+
"application/json": {
|
|
6657
|
+
source: "github" | "gitlab";
|
|
6658
|
+
projectKey: string;
|
|
6659
|
+
labelRules: {
|
|
6660
|
+
/** @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`). */
|
|
6661
|
+
prefix: string;
|
|
6662
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6663
|
+
}[];
|
|
6664
|
+
/** @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. */
|
|
6665
|
+
statusSource: {
|
|
6666
|
+
/** @constant */
|
|
6667
|
+
kind: "gitlab-native";
|
|
6668
|
+
} | {
|
|
6669
|
+
/** @constant */
|
|
6670
|
+
kind: "github-project";
|
|
6671
|
+
projectNumber: string | number;
|
|
6672
|
+
fieldName: string;
|
|
6673
|
+
} | null;
|
|
6674
|
+
statusRules: {
|
|
6675
|
+
/** @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. */
|
|
6676
|
+
value: string;
|
|
6677
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6678
|
+
}[];
|
|
6679
|
+
/** @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. */
|
|
6680
|
+
flowFamilies: string[];
|
|
6681
|
+
};
|
|
6682
|
+
"multipart/form-data": {
|
|
6683
|
+
source: "github" | "gitlab";
|
|
6684
|
+
projectKey: string;
|
|
6685
|
+
labelRules: {
|
|
6686
|
+
/** @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`). */
|
|
6687
|
+
prefix: string;
|
|
6688
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6689
|
+
}[];
|
|
6690
|
+
/** @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. */
|
|
6691
|
+
statusSource: {
|
|
6692
|
+
/** @constant */
|
|
6693
|
+
kind: "gitlab-native";
|
|
6694
|
+
} | {
|
|
6695
|
+
/** @constant */
|
|
6696
|
+
kind: "github-project";
|
|
6697
|
+
projectNumber: string | number;
|
|
6698
|
+
fieldName: string;
|
|
6699
|
+
} | null;
|
|
6700
|
+
statusRules: {
|
|
6701
|
+
/** @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. */
|
|
6702
|
+
value: string;
|
|
6703
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6704
|
+
}[];
|
|
6705
|
+
/** @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. */
|
|
6706
|
+
flowFamilies: string[];
|
|
6707
|
+
};
|
|
6708
|
+
"text/plain": {
|
|
6709
|
+
source: "github" | "gitlab";
|
|
6710
|
+
projectKey: string;
|
|
6711
|
+
labelRules: {
|
|
6712
|
+
/** @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`). */
|
|
6713
|
+
prefix: string;
|
|
6714
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6715
|
+
}[];
|
|
6716
|
+
/** @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. */
|
|
6717
|
+
statusSource: {
|
|
6718
|
+
/** @constant */
|
|
6719
|
+
kind: "gitlab-native";
|
|
6720
|
+
} | {
|
|
6721
|
+
/** @constant */
|
|
6722
|
+
kind: "github-project";
|
|
6723
|
+
projectNumber: string | number;
|
|
6724
|
+
fieldName: string;
|
|
6725
|
+
} | null;
|
|
6726
|
+
statusRules: {
|
|
6727
|
+
/** @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. */
|
|
6728
|
+
value: string;
|
|
6729
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6730
|
+
}[];
|
|
6731
|
+
/** @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. */
|
|
6732
|
+
flowFamilies: string[];
|
|
6733
|
+
};
|
|
6734
|
+
};
|
|
6735
|
+
};
|
|
6736
|
+
};
|
|
6737
|
+
};
|
|
6738
|
+
"putV1ProjectsBySourceByProjectKeyWorkflow-rules": {
|
|
6739
|
+
parameters: {
|
|
6740
|
+
query?: never;
|
|
6741
|
+
header?: never;
|
|
6742
|
+
path: {
|
|
6743
|
+
source: string;
|
|
6744
|
+
projectKey: string;
|
|
6745
|
+
};
|
|
6746
|
+
cookie?: never;
|
|
6747
|
+
};
|
|
6748
|
+
requestBody: {
|
|
6749
|
+
content: {
|
|
6750
|
+
"application/json": {
|
|
6751
|
+
labelRules: {
|
|
6752
|
+
/** @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`). */
|
|
6753
|
+
prefix: string;
|
|
6754
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6755
|
+
}[];
|
|
6756
|
+
/** @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. */
|
|
6757
|
+
statusSource: {
|
|
6758
|
+
/** @constant */
|
|
6759
|
+
kind: "gitlab-native";
|
|
6760
|
+
} | {
|
|
6761
|
+
/** @constant */
|
|
6762
|
+
kind: "github-project";
|
|
6763
|
+
projectNumber: string | number;
|
|
6764
|
+
fieldName: string;
|
|
6765
|
+
} | null;
|
|
6766
|
+
statusRules: {
|
|
6767
|
+
/** @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. */
|
|
6768
|
+
value: string;
|
|
6769
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6770
|
+
}[];
|
|
6771
|
+
flowFamilies: string[];
|
|
6772
|
+
};
|
|
6773
|
+
"multipart/form-data": {
|
|
6774
|
+
labelRules: {
|
|
6775
|
+
/** @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`). */
|
|
6776
|
+
prefix: string;
|
|
6777
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6778
|
+
}[];
|
|
6779
|
+
/** @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. */
|
|
6780
|
+
statusSource: {
|
|
6781
|
+
/** @constant */
|
|
6782
|
+
kind: "gitlab-native";
|
|
6783
|
+
} | {
|
|
6784
|
+
/** @constant */
|
|
6785
|
+
kind: "github-project";
|
|
6786
|
+
projectNumber: string | number;
|
|
6787
|
+
fieldName: string;
|
|
6788
|
+
} | null;
|
|
6789
|
+
statusRules: {
|
|
6790
|
+
/** @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. */
|
|
6791
|
+
value: string;
|
|
6792
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6793
|
+
}[];
|
|
6794
|
+
flowFamilies: string[];
|
|
6795
|
+
};
|
|
6796
|
+
"text/plain": {
|
|
6797
|
+
labelRules: {
|
|
6798
|
+
/** @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`). */
|
|
6799
|
+
prefix: string;
|
|
6800
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6801
|
+
}[];
|
|
6802
|
+
/** @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. */
|
|
6803
|
+
statusSource: {
|
|
6804
|
+
/** @constant */
|
|
6805
|
+
kind: "gitlab-native";
|
|
6806
|
+
} | {
|
|
6807
|
+
/** @constant */
|
|
6808
|
+
kind: "github-project";
|
|
6809
|
+
projectNumber: string | number;
|
|
6810
|
+
fieldName: string;
|
|
6811
|
+
} | null;
|
|
6812
|
+
statusRules: {
|
|
6813
|
+
/** @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. */
|
|
6814
|
+
value: string;
|
|
6815
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6816
|
+
}[];
|
|
6817
|
+
flowFamilies: string[];
|
|
6818
|
+
};
|
|
6819
|
+
};
|
|
6820
|
+
};
|
|
6821
|
+
responses: {
|
|
6822
|
+
200: {
|
|
6823
|
+
headers: {
|
|
6824
|
+
[name: string]: unknown;
|
|
6825
|
+
};
|
|
6826
|
+
content: {
|
|
6827
|
+
"application/json": {
|
|
6828
|
+
source: "github" | "gitlab";
|
|
6829
|
+
projectKey: string;
|
|
6830
|
+
labelRules: {
|
|
6831
|
+
/** @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`). */
|
|
6832
|
+
prefix: string;
|
|
6833
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6834
|
+
}[];
|
|
6835
|
+
/** @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. */
|
|
6836
|
+
statusSource: {
|
|
6837
|
+
/** @constant */
|
|
6838
|
+
kind: "gitlab-native";
|
|
6839
|
+
} | {
|
|
6840
|
+
/** @constant */
|
|
6841
|
+
kind: "github-project";
|
|
6842
|
+
projectNumber: string | number;
|
|
6843
|
+
fieldName: string;
|
|
6844
|
+
} | null;
|
|
6845
|
+
statusRules: {
|
|
6846
|
+
/** @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. */
|
|
6847
|
+
value: string;
|
|
6848
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6849
|
+
}[];
|
|
6850
|
+
/** @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. */
|
|
6851
|
+
flowFamilies: string[];
|
|
6852
|
+
};
|
|
6853
|
+
"multipart/form-data": {
|
|
6854
|
+
source: "github" | "gitlab";
|
|
6855
|
+
projectKey: string;
|
|
6856
|
+
labelRules: {
|
|
6857
|
+
/** @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`). */
|
|
6858
|
+
prefix: string;
|
|
6859
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6860
|
+
}[];
|
|
6861
|
+
/** @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. */
|
|
6862
|
+
statusSource: {
|
|
6863
|
+
/** @constant */
|
|
6864
|
+
kind: "gitlab-native";
|
|
6865
|
+
} | {
|
|
6866
|
+
/** @constant */
|
|
6867
|
+
kind: "github-project";
|
|
6868
|
+
projectNumber: string | number;
|
|
6869
|
+
fieldName: string;
|
|
6870
|
+
} | null;
|
|
6871
|
+
statusRules: {
|
|
6872
|
+
/** @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. */
|
|
6873
|
+
value: string;
|
|
6874
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6875
|
+
}[];
|
|
6876
|
+
/** @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. */
|
|
6877
|
+
flowFamilies: string[];
|
|
6878
|
+
};
|
|
6879
|
+
"text/plain": {
|
|
6880
|
+
source: "github" | "gitlab";
|
|
6881
|
+
projectKey: string;
|
|
6882
|
+
labelRules: {
|
|
6883
|
+
/** @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`). */
|
|
6884
|
+
prefix: string;
|
|
6885
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6886
|
+
}[];
|
|
6887
|
+
/** @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. */
|
|
6888
|
+
statusSource: {
|
|
6889
|
+
/** @constant */
|
|
6890
|
+
kind: "gitlab-native";
|
|
6891
|
+
} | {
|
|
6892
|
+
/** @constant */
|
|
6893
|
+
kind: "github-project";
|
|
6894
|
+
projectNumber: string | number;
|
|
6895
|
+
fieldName: string;
|
|
6896
|
+
} | null;
|
|
6897
|
+
statusRules: {
|
|
6898
|
+
/** @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. */
|
|
6899
|
+
value: string;
|
|
6900
|
+
state: "todo" | "doing" | "review" | "delivered" | "blocked" | "done";
|
|
6901
|
+
}[];
|
|
6902
|
+
/** @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. */
|
|
6903
|
+
flowFamilies: string[];
|
|
6904
|
+
};
|
|
6905
|
+
};
|
|
6906
|
+
};
|
|
6907
|
+
400: {
|
|
6908
|
+
headers: {
|
|
6909
|
+
[name: string]: unknown;
|
|
6910
|
+
};
|
|
6911
|
+
content: {
|
|
6912
|
+
"application/json": {
|
|
6913
|
+
error: string;
|
|
6914
|
+
};
|
|
6915
|
+
"multipart/form-data": {
|
|
6916
|
+
error: string;
|
|
6917
|
+
};
|
|
6918
|
+
"text/plain": {
|
|
6919
|
+
error: string;
|
|
6920
|
+
};
|
|
6921
|
+
};
|
|
6922
|
+
};
|
|
6923
|
+
};
|
|
6924
|
+
};
|
|
6471
6925
|
getV1Projects: {
|
|
6472
6926
|
parameters: {
|
|
6473
6927
|
query?: never;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cesar-richard/git-connector-sdk",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.12.0",
|
|
4
4
|
"description": "TypeScript SDK for the git-connector v1 API (work items + iterations aggregated from GitHub/GitLab). Version published on npm tracks server releases.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|