@gitkraken/core-gitlens 0.16.1 → 0.16.2

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.
Files changed (29) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/dist/plus/integrations/integrationService.d.ts +1 -0
  3. package/dist/plus/integrations/integrationService.js +18 -5
  4. package/dist/plus/integrations/integrationService.js.map +1 -1
  5. package/dist/plus/integrations/providers/apiClients.d.ts +2 -0
  6. package/dist/plus/integrations/providers/apiClients.js +12 -3
  7. package/dist/plus/integrations/providers/apiClients.js.map +1 -1
  8. package/dist/plus/integrations/providers/azure/azure.d.ts +13 -11
  9. package/dist/plus/integrations/providers/azure/azure.js +128 -47
  10. package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
  11. package/dist/plus/integrations/providers/azure/models.d.ts +4 -10
  12. package/dist/plus/integrations/providers/azure/models.js +25 -9
  13. package/dist/plus/integrations/providers/azure/models.js.map +1 -1
  14. package/dist/plus/integrations/providers/azure/workItemDescriptions.d.ts +10 -0
  15. package/dist/plus/integrations/providers/azure/workItemDescriptions.js +48 -0
  16. package/dist/plus/integrations/providers/azure/workItemDescriptions.js.map +1 -0
  17. package/dist/plus/integrations/providers/azure/workItemStateCategories.d.ts +20 -19
  18. package/dist/plus/integrations/providers/azure/workItemStateCategories.js +65 -40
  19. package/dist/plus/integrations/providers/azure/workItemStateCategories.js.map +1 -1
  20. package/dist/plus/integrations/providers/issueSorts.d.ts +0 -1
  21. package/dist/plus/integrations/providers/providerApiClient.d.ts +9 -0
  22. package/dist/plus/integrations/providers/providerApiClient.js +66 -0
  23. package/dist/plus/integrations/providers/providerApiClient.js.map +1 -0
  24. package/dist/plus/integrations/providers/providersApi.d.ts +10 -9
  25. package/dist/plus/integrations/providers/providersApi.js +163 -145
  26. package/dist/plus/integrations/providers/providersApi.js.map +1 -1
  27. package/dist/plus/integrations/reads/drains.d.ts +0 -1
  28. package/docs/integrations.md +30 -13
  29. package/package.json +2 -2
@@ -2,7 +2,6 @@ import { ResourceDescriptor } from "../../../git/models/resourceDescriptor.js";
2
2
  import { PullRequest, PullRequestFilter, PullRequestStateFilter } from "../../../git/models/pullRequest.js";
3
3
  import { IntegrationIds } from "../constants.js";
4
4
  import { ProviderWarning } from "../results.js";
5
- import "../providerFilters.js";
6
5
  import { ProviderPullRequest, ProviderReposInput, ProviderRepository } from "../providers/models.js";
7
6
  import { GitHostIntegration } from "../models/gitHostIntegration.js";
8
7
  import { IssuesIntegration } from "../models/issuesIntegration.js";
@@ -1285,8 +1285,8 @@ Linear reports its canceled and duplicate states as `CANCELED`.
1285
1285
  Azure DevOps reports a state in its `Removed` category as `CANCELED`, `Completed` and `Resolved` as `DONE`,
1286
1286
  `InProgress` as `IN_PROGRESS` and `Proposed` as `TO_DO`. No work item read carries the category, so every one (by id,
1287
1287
  the cheap etag check and the project list, on Azure DevOps Server too) classifies its rows from their type's states
1288
- (`GET …/_apis/wit/workItemTypes/{type}/states?api-version=6.0-preview.1`, the preview version Azure DevOps Server 2020
1289
- requires), keyed on the raw `System.State`, and caches each read for five minutes per host, project, type and
1288
+ (`GET …/_apis/wit/workItemTypes/{type}/states`, with a version selected from the installation's REST resource metadata;
1289
+ Services and Server 2020 use `6.0-preview.1`), keyed on the raw `System.State`, and caches each read for five minutes per host, project, type and
1290
1290
  credential. The category, never the name, decides: a state named `Canceled` in the `Completed` category is `DONE`, and
1291
1291
  a state its type doesn't list has no category. When a states read fails, a project list keeps its rows (the failed
1292
1292
  type's without a category) and reports the project as a partial collection with a failure scoped to it; a read by id
@@ -1296,14 +1296,25 @@ or resolved dates. Failed workflows fall back to dates with partial metadata; fa
1296
1296
  before retrying. List, identity and native presentation reads share one cache, including workflow expiry and HTTP
1297
1297
  proxy invalidation.
1298
1298
 
1299
+ TFS 2018 uses its advertised REST versions and collection-level work item routes. A work item must report the
1300
+ requested project, so a collection-level read cannot answer for another project's coordinate. If the type's states
1301
+ omit categories, core supplements them from the project's `backlogconfiguration.workItemTypeMappedStates`, using
1302
+ only explicit type/state pairs. Unmapped states, including Removed on some processes, remain unknown; neither
1303
+ state names, colors nor absence from the backlog imply a category. A point or etag read of such a state fails.
1304
+ Project lists retain mapped row categories and report incomplete workflows as partial collections; selection for
1305
+ an incomplete workflow retains the SDK's date fallback. Exact state-filtered searches and counts refuse incomplete
1306
+ workflow metadata. `criteria.state: 'all'` skips that selection requirement, although search hydration still fails
1307
+ if a returned row's state has no category. Legacy identity strings remain opaque values, never inferred GUIDs.
1308
+
1299
1309
  `listIssuesPage` accepts `state: 'open' | 'closed' | 'all'` for Azure DevOps Services and Server, on repository,
1300
1310
  project and account-wide reads. Omitted means open only. `getSupportedFilters(providerId).issueStates` declares this
1301
1311
  capability. Other git hosts retain their open-only list default and refuse non-open state requests on this facade.
1302
1312
 
1303
1313
  A known Azure workflow category determines normalized `state` and `closed`, with `CANCELED` closing like `DONE`.
1304
1314
  A historical closed date remains available as data but does not close an issue whose category is now open.
1305
- Identity and list reads fall back to the closed date only when the category is unknown. Other providers keep their
1306
- existing derivation.
1315
+ Identity and list reads fall back to the closed date only when the category is unknown. Legacy workflows that
1316
+ needed backlog mappings instead refuse point reads and cheap etag checks for an absent or uncategorized current
1317
+ state, even when all returned states received mappings. Other providers keep their existing derivation.
1307
1318
 
1308
1319
  ### Sprints and iterations
1309
1320
 
@@ -1341,14 +1352,17 @@ Two exceptions carry HTML with `bodyFormat` omitted: Azure DevOps work items and
1341
1352
  (`content.html`). Their `bodyFormat` is left unset rather than changed, so check the provider before treating either
1342
1353
  as Markdown.
1343
1354
 
1344
- An Azure DevOps work item's body is its first rich text field with content, since its type decides where the content
1345
- lives: `System.Description`, then the built-in description fields (`Microsoft.VSTS.TCM.ReproSteps` on Agile, Scrum and
1346
- CMMI Bugs, `Microsoft.VSTS.Common.AcceptanceCriteria`, `Microsoft.VSTS.CMMI.Symptom`), then any other `html` field
1347
- of the organization's field catalog, custom fields first (provider-apis' `getAzureWorkItemDescription`, which every
1348
- read applies). `bodyField` names the field (`{ id: 'Microsoft.VSTS.TCM.ReproSteps', name: 'Repro Steps' }`) so a
1349
- host can label the body; it is absent for other providers. The catalog is read only for a work item no built-in field
1350
- describes, and kept for an hour per organization, credential and client (provider-apis keeps its own for list rows); when it can't be read the body falls back to the built-in
1351
- fields.
1355
+ An Azure DevOps work item's body is its first rich text field with content: `System.Description`, then the built-in
1356
+ description fields (`Microsoft.VSTS.TCM.ReproSteps`, `Microsoft.VSTS.Common.AcceptanceCriteria`,
1357
+ `Microsoft.VSTS.CMMI.Symptom`), then additional HTML fields declared by the organization's field catalog, custom fields
1358
+ first. Every read uses provider-apis' shared selector. `bodyField` names the selected field
1359
+ (`{ id: 'Microsoft.VSTS.TCM.ReproSteps', name: 'Repro Steps' }`) so a host can label the body; it is absent when no body
1360
+ is available and for other providers. The catalog is read only when no built-in field describes the work item, and
1361
+ kept for an hour per organization, credential and client (provider-apis keeps its own for list rows). An unavailable
1362
+ or malformed catalog leaves the body to the built-in fields rather than failing the work item; the caller's
1363
+ cancellation still propagates.
1364
+ An empty Description is preserved when no field has visible content. Direct reads share a catalog cache scoped to
1365
+ the installation, collection, credential and authentication mode, cleared on HTTP proxy changes.
1352
1366
 
1353
1367
  Rendering and conversion remain consumer concerns. In particular, the Jira body is neither ADF nor converted to
1354
1368
  Markdown by this package.
@@ -1433,7 +1447,10 @@ Markdown by this package.
1433
1447
  replaces it. A continuation whose snapshot is gone is refused (warning + `fetchFailed`) rather than resumed
1434
1448
  against a fresh query, where an item moved by the `updated` order could be skipped. Restart without the cursor.
1435
1449
  A cursor is bound to its query and refused under another one. `page` without a cursor walks from page 1 against
1436
- a fresh query. Requests use REST `api-version=5.0`, so Azure DevOps Server 2019 or later is required.
1450
+ a fresh query. Requests negotiate REST versions from the installation's resource metadata, including TFS 2018.
1451
+ Exact state-filtered searches and counts require complete workflow categories; `state: 'all'` skips that
1452
+ selection requirement, but every hydrated row in a legacy workflow that needed backlog mappings still needs an
1453
+ authoritative category.
1437
1454
  - **Pull requests** (`searchPullRequestsPage` / `countPullRequests`) drain every facet — each repository, or each
1438
1455
  project of the `org` (every visible project when only relationships bound the search), times each
1439
1456
  relationship — reading up to 1,000 pull requests per facet, then apply text, draft and dates, union by repository
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gitkraken/core-gitlens",
3
3
  "description": "GitLens core — shared Git / AI / GitHub primitives for internal GitKraken consumption",
4
- "version": "0.16.1",
4
+ "version": "0.16.2",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": {
7
7
  "name": "GitKraken",
@@ -239,7 +239,7 @@
239
239
  }
240
240
  },
241
241
  "dependencies": {
242
- "@gitkraken/provider-apis": "0.65.4",
242
+ "@gitkraken/provider-apis": "0.65.5",
243
243
  "@octokit/graphql": "9.0.4",
244
244
  "@octokit/request": "10.0.14",
245
245
  "@octokit/request-error": "7.1.1",