@gitkraken/core-gitlens 0.11.0 → 0.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/dist/git/cache.js +2 -0
  3. package/dist/git/cache.js.map +1 -1
  4. package/dist/git/models/issue.d.ts +3 -1
  5. package/dist/git/models/issue.js.map +1 -1
  6. package/dist/git/providers/branches.d.ts +4 -2
  7. package/dist/git/utils/issue.utils.d.ts +3 -1
  8. package/dist/git/utils/issue.utils.js +5 -1
  9. package/dist/git/utils/issue.utils.js.map +1 -1
  10. package/dist/git/watching/worktreeSummary.d.ts +20 -9
  11. package/dist/git/watching/worktreeSummary.js +24 -22
  12. package/dist/git/watching/worktreeSummary.js.map +1 -1
  13. package/dist/git-cli/providers/branches.js +26 -4
  14. package/dist/git-cli/providers/branches.js.map +1 -1
  15. package/dist/plus/integrations/models/gitHostIntegration.js +3 -1
  16. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  17. package/dist/plus/integrations/models/integration.js +1 -1
  18. package/dist/plus/integrations/providers/azure/azure.js +3 -2
  19. package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
  20. package/dist/plus/integrations/providers/azure/models.d.ts +27 -10
  21. package/dist/plus/integrations/providers/azure/models.js +39 -19
  22. package/dist/plus/integrations/providers/azure/models.js.map +1 -1
  23. package/dist/plus/integrations/providers/azure/workItemStateCategories.d.ts +19 -0
  24. package/dist/plus/integrations/providers/azure/workItemStateCategories.js +32 -0
  25. package/dist/plus/integrations/providers/azure/workItemStateCategories.js.map +1 -0
  26. package/dist/plus/integrations/providers/azureDevOps.js +5 -5
  27. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
  28. package/dist/plus/integrations/providers/issueSorts.d.ts +0 -1
  29. package/dist/plus/integrations/providers/jira-server.js +11 -5
  30. package/dist/plus/integrations/providers/jira-server.js.map +1 -1
  31. package/dist/plus/integrations/providers/jira.d.ts +5 -2
  32. package/dist/plus/integrations/providers/jira.js +45 -30
  33. package/dist/plus/integrations/providers/jira.js.map +1 -1
  34. package/dist/plus/integrations/providers/jiraIssueByKey.d.ts +3 -4
  35. package/dist/plus/integrations/providers/jiraIssueByKey.js +3 -4
  36. package/dist/plus/integrations/providers/jiraIssueByKey.js.map +1 -1
  37. package/dist/plus/integrations/providers/linearIssuesEtag.d.ts +5 -5
  38. package/dist/plus/integrations/providers/linearIssuesEtag.js +6 -6
  39. package/dist/plus/integrations/providers/linearIssuesEtag.js.map +1 -1
  40. package/dist/plus/integrations/providers/models.d.ts +11 -1
  41. package/dist/plus/integrations/providers/models.js +9 -9
  42. package/dist/plus/integrations/providers/models.js.map +1 -1
  43. package/dist/plus/integrations/providers/providersApi.d.ts +30 -32
  44. package/dist/plus/integrations/providers/providersApi.js +149 -46
  45. package/dist/plus/integrations/providers/providersApi.js.map +1 -1
  46. package/dist/plus/integrations/providers/utils/jiraIssueDrains.d.ts +27 -15
  47. package/dist/plus/integrations/providers/utils/jiraIssueDrains.js +72 -10
  48. package/dist/plus/integrations/providers/utils/jiraIssueDrains.js.map +1 -1
  49. package/dist/plus/integrations/reads/batchEtags.d.ts +5 -2
  50. package/dist/plus/integrations/reads/batchEtags.js +31 -10
  51. package/dist/plus/integrations/reads/batchEtags.js.map +1 -1
  52. package/dist/plus/integrations/reads/cursors.js +1 -1
  53. package/dist/plus/integrations/reads/drains.d.ts +0 -1
  54. package/dist/plus/integrations/reads/hierarchy.js +2 -2
  55. package/dist/plus/integrations/reads/hierarchy.js.map +1 -1
  56. package/dist/plus/integrations/reads/hierarchy.utils.d.ts +13 -0
  57. package/dist/plus/integrations/reads/hierarchy.utils.js +26 -1
  58. package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -1
  59. package/dist/plus/integrations/reads/issueTracker.js +4 -4
  60. package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
  61. package/dist/plus/integrations/reads/issues.js +1 -1
  62. package/dist/plus/integrations/reads/pullRequestBranches.js +10 -3
  63. package/dist/plus/integrations/reads/pullRequestBranches.js.map +1 -1
  64. package/dist/plus/integrations/results.d.ts +28 -3
  65. package/dist/plus/integrations/results.js +22 -3
  66. package/dist/plus/integrations/results.js.map +1 -1
  67. package/dist/plus/integrations/utils/integration.utils.d.ts +6 -1
  68. package/dist/plus/integrations/utils/integration.utils.js +8 -1
  69. package/dist/plus/integrations/utils/integration.utils.js.map +1 -1
  70. package/docs/integrations.md +54 -19
  71. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -6,6 +6,44 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.12.0] - 2026-10-16
10
+
11
+ ### Added
12
+
13
+ - Adds `orgId` to `ProviderOrganization`: the parent's stable id where `org` is only its label. `listProjects` sets it on Jira projects (the site's id, or the Data Center instance's domain), which is what `listIssueTrackerIssuesPage` takes as `org` for Jira (plus/integrations)
14
+ - Adds `isTerminalIssueStateCategory`, whether an issue state category ends the issue: `DONE` or `CANCELED` (git)
15
+ - Adds the workflow state and its category to Azure DevOps work items (`providerState`, and `issueType` on the native point and search reads), with `Removed` reported as `CANCELED`. The category is read from the work item type's states endpoint (`api-version=6.0-preview.1`, which Azure DevOps Server 2020 requires) and cached per host, project, type and credential for 5 minutes (GKDEV-3655) (plus/integrations)
16
+
17
+ ### Changed
18
+
19
+ - Changes `listProjects` to publish a Jira project's key as its `name`, where it published the display name, so the item names what the project reads take; the display name is no longer on the item (plus/integrations)
20
+ - Changes `listIssueTrackerIssuesPage`'s `org` and `project` to select Jira sites and projects only by their canonical key (a site's id, a project's key), no longer also by a site's label or a project's name or id: a remembered selection whose site or project was removed selected another one that carried the old value as a name or id. Linear and Trello still match any identifier (plus/integrations)
21
+ - Changes `IssueProviderState.category` to also be `CANCELED`, for abandoned work (canceled, duplicate, removed): `toIssueShape` and `fromProviderIssue` close it as they close `DONE`. Linear's canceled and duplicate states now report `CANCELED` where they reported `DONE`, so a consumer that tests `category === 'DONE'` for a closed issue should test `isTerminalIssueStateCategory` instead (git, plus/integrations)
22
+ - Changes a user-scoped Jira Cloud read of a single project to read that project on its own instead of through the multi-project search, at the same cost, so a failure partway through its pages is attributed to the project rather than only to the site, and its truncation is reported per project (plus/integrations)
23
+ - Changes Azure DevOps work items to close by their state's category as well as their closed date, on the full reads and the cheap etag check alike: a work item in a `Completed`, `Resolved` or `Removed` state with no closed date now reads closed, and its etag changes once. Every work item read now needs its type's states: when that read fails, a project list keeps its rows (the failed type's without a category) as a partial collection with a failure scoped to the project, while a read by id (`getIssuesBatch`) and the cheap etag check fail. A project list keeps only the work items in the states it asked for: provider-apis selects open ones by their dates, so a `Removed` work item with no closed or resolved date is now left out of an open list rather than listed closed, and a closed-only list still doesn't select it. The native work item path asks for the states endpoint with the same `api-version`. Snapshots cached before this change carry no category and can't be reclassified until they are refreshed (GKDEV-3655) (plus/integrations)
24
+ - Changes Jira Data Center projects to carry their project key, which `listProjects` publishes as `name` and `listIssueTrackerIssuesPage` selects by, where they carried the display name (provider-apis now reports the key of `/rest/api/2/project`, GKDEV-3654); a project without one falls back to its numeric id. A Data Center project selection saved as its display name must be picked again, and a page cursor from before this change is best restarted: it re-reads the projects it had completed and no longer recognizes the ones it was retrying (plus/integrations)
25
+
26
+ ### Fixed
27
+
28
+ - Fixes Jira and Jira Data Center issues in a done status category reading as open (`closed: false`, `state: 'opened'`) on every read but the batch read by key, with no `providerState.category`, so a closed lookup missed them and an open one returned them (gitkraken/kepler#4010). `@gitkraken/provider-apis` 0.65.1 maps the category from the status category's stable `key` rather than its localized `name`, and no longer reads an unrecognized one as `DONE` (GKDEV-3656), so `toIssueShape` now trusts it for Jira as for every other tracker: an issue closes when its category is `done`, and stays open in any other, Jira's "No Category" included, whatever language the instance uses. Every Jira read now reports `providerState.category`, and a Jira Data Center issue in a done category changes its `getIssuesBatch` etag once (plus/integrations)
29
+ - Fixes Jira and Jira Data Center searches failing a whole page when one issue's type hides a field such as Fix versions or Comment, so Stories and Sub-tasks vanished from issue lists while Epics showed: such an issue is now read, one that still can't be read is dropped and reported (next entry) instead of failing its page, and a page whose every issue is unreadable comes back partial instead of ending the drain. By bumping `@gitkraken/provider-apis` to 0.65.0, which also brings the Linear and Jira Data Center changes above (GKDEV-3652, GKDEV-3653) (plus/integrations)
30
+ - Fixes Jira and Jira Data Center issue reads discarding the collection metadata of each search page, so an issue `@gitkraken/provider-apis` drops because it can't read it (GKDEV-3652, e.g. one whose type hides a field the normalizer needed) vanished with no warning. Project reads (`listIssueTrackerIssuesPage`, `IssuesIntegration.getIssuesForProject*`) keep its siblings and now report the drop as a `provider` failure scoped to its project: `fetchFailed`, a warning, and the project `truncated` with recovery `none`. A user-scoped search across projects that hits one is read project by project; on Jira Data Center a search that names a single project is read as that project from the start, so a dropped issue costs no second read. A run of pages that dropped issues is reported once per scope, naming the first page's keys and how many more pages dropped issues, rather than once per page. A page whose every issue was unreadable no longer loses its failure to a later page error, and a project read the page backstop stopped after such a page also reports the backstop. `searchMyIssuesWithTruncationResult` (account-wide, which no facade read reaches for these trackers) carries the same metadata on both hosts; on Jira Cloud each site is drained on its own, so a site whose read failed keeps what it read and is reported as that site's failure (a refused one going through the scoped auth check) instead of being only logged, and a site the page backstop stopped makes the read `truncated`. The metadata comes from `@gitkraken/provider-apis` 0.65.0 ([#5992](https://github.com/gitkraken/vscode-gitlens/issues/5992)) (plus/integrations)
31
+ - Fixes Jira Cloud's per-project issue read addressing the project by its display name, which JQL resolves against project keys first, so a project named like another project's key read that project's issues; it now reads by key, as the multi-project search does, and attributes its failures to the key (plus/integrations)
32
+ - Fixes Azure DevOps repository-scoped issue reads (`listIssuesPage({ repos })`, `getMyIssuesForRepos`) dropping a project read's own collection metadata and truncation, so a project read that came back incomplete was reported as complete (plus/integrations)
33
+ - Fixes the Linear cheap etag check treating a `duplicate` issue as open while the full read closes it, which made the two compute different etags (plus/integrations)
34
+
35
+ ## [0.11.1] - 2026-10-16
36
+
37
+ ### Added
38
+
39
+ - Adds tip commits to `WorktreeSummary`: `sha` is HEAD's commit (`undefined` before the first commit) and `base.sha` is the base ref's tip, so a host can key on commits rather than counts. A commit and a fast-forward of the base that leave every count the same now change the summary and fire. `getAheadOfBase` answers the tip as `base.sha`, resolved from the cached ref list in git's own order (a tag before a same-named branch), and its `dependsOn` now names that tag too, so the tag moving recomputes the base. Both come from reads the summary already does, except that a recompute of only the base re-reads the shared ref list when the ref move that triggered it cleared that list (git, git-cli)
40
+ - Adds `baseDependsOn` to `WorktreeSummary`: the full ref names whose movement can change the base answer, as `getAheadOfBase` reports them, taken from the summary's own base read and given with or without a base. A host can narrow a watch subscription's `relevantRefs` to it without reading the base again, and a change to the list alone fires (git)
41
+ - Adds `targetKeys` to `ProviderWarning`: a batch read's warning (`getPullRequestsBatch`, `getIssuesBatch`, `getPullRequestsForBranches`) names the keys of the targets it concerns — the target that was refused or failed, or every target of an integration call that failed as a whole — so a caller that merges several callers' targets into one call can hand each failure only to its own targets. A warning without it refused the whole call before any target was read. Equal warnings merge their keys rather than one being dropped (plus/integrations)
42
+
43
+ ### Fixed
44
+
45
+ - Fixes `getAheadOfBase` answering a stale count against a tag-named base after the tag moved: a tag change now clears the cached commit counts and merge bases, which are keyed by ref name, as a branch move already did (git)
46
+
9
47
  ## [0.11.0] - 2026-10-15
10
48
 
11
49
  ### Added
@@ -637,7 +675,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
637
675
 
638
676
  - Initial release. Bundles `@gitlens/utils`, `@gitlens/git`, `@gitlens/git-cli`, `@gitlens/ai`, and `@gitlens/git-github` into a single core npm package with subpath exports.
639
677
 
640
- [unreleased]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.11.0...HEAD
678
+ [unreleased]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.12.0...HEAD
679
+ [0.12.0]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.11.1...gitkraken:releases/core/v0.12.0
680
+ [0.11.1]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.11.0...gitkraken:releases/core/v0.11.1
641
681
  [0.11.0]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.10.7...gitkraken:releases/core/v0.11.0
642
682
  [0.10.7]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.10.6...gitkraken:releases/core/v0.10.7
643
683
  [0.10.6]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.10.5...gitkraken:releases/core/v0.10.6
package/dist/git/cache.js CHANGED
@@ -453,6 +453,8 @@ var Cache = class Cache {
453
453
  keysToClear.add("commitCount");
454
454
  keysToClear.add("logShas");
455
455
  keysToClear.add("resolvedRevisions");
456
+ keysToClear.add("leftRightCommitCount");
457
+ keysToClear.add("mergeBase");
456
458
  }
457
459
  if (types.includes("tracking")) {
458
460
  keysToClear.add("fileExistence");