@gitkraken/core-gitlens 0.17.0 → 0.19.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 (56) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/git/cache.d.ts +7 -0
  3. package/dist/git/cache.js +21 -3
  4. package/dist/git/cache.js.map +1 -1
  5. package/dist/git/models/issue.d.ts +13 -3
  6. package/dist/git/models/issue.js +3 -1
  7. package/dist/git/models/issue.js.map +1 -1
  8. package/dist/git/models/pullRequest.d.ts +13 -2
  9. package/dist/git/models/pullRequest.js +3 -1
  10. package/dist/git/models/pullRequest.js.map +1 -1
  11. package/dist/git/utils/issue.utils.js +2 -1
  12. package/dist/git/utils/issue.utils.js.map +1 -1
  13. package/dist/git/utils/pullRequest.utils.js +1 -0
  14. package/dist/git/utils/pullRequest.utils.js.map +1 -1
  15. package/dist/git/watching/gitIgnoreFilter.d.ts +21 -3
  16. package/dist/git/watching/gitIgnoreFilter.js +74 -14
  17. package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
  18. package/dist/git/watching/provider.d.ts +9 -1
  19. package/dist/git/watching/watchService.d.ts +14 -1
  20. package/dist/git/watching/watchService.js +57 -16
  21. package/dist/git/watching/watchService.js.map +1 -1
  22. package/dist/git/watching/worktreeSummary.d.ts +38 -10
  23. package/dist/git/watching/worktreeSummary.js +164 -50
  24. package/dist/git/watching/worktreeSummary.js.map +1 -1
  25. package/dist/git-cli/cliGitProvider.js +4 -4
  26. package/dist/git-cli/cliGitProvider.js.map +1 -1
  27. package/dist/git-cli/providers/branches.js +1 -32
  28. package/dist/git-cli/providers/branches.js.map +1 -1
  29. package/dist/git-cli/providers/config.d.ts +21 -0
  30. package/dist/git-cli/providers/config.js +72 -1
  31. package/dist/git-cli/providers/config.js.map +1 -1
  32. package/dist/plus/integrations/models/gitHostIntegration.d.ts +7 -6
  33. package/dist/plus/integrations/models/gitHostIntegration.js +4 -3
  34. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  35. package/dist/plus/integrations/models/integration.d.ts +5 -0
  36. package/dist/plus/integrations/models/integration.js.map +1 -1
  37. package/dist/plus/integrations/providers/azure/azure.d.ts +8 -6
  38. package/dist/plus/integrations/providers/azure/azure.js +3 -2
  39. package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
  40. package/dist/plus/integrations/providers/azure/models.d.ts +4 -2
  41. package/dist/plus/integrations/providers/azure/models.js +6 -5
  42. package/dist/plus/integrations/providers/azure/models.js.map +1 -1
  43. package/dist/plus/integrations/providers/azureDevOps.d.ts +15 -13
  44. package/dist/plus/integrations/providers/azureDevOps.js +26 -22
  45. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
  46. package/dist/plus/integrations/providers/azureDevOpsServer.js +6 -3
  47. package/dist/plus/integrations/providers/azureDevOpsServer.js.map +1 -1
  48. package/dist/plus/integrations/providers/models.d.ts +26 -4
  49. package/dist/plus/integrations/providers/models.js +27 -5
  50. package/dist/plus/integrations/providers/models.js.map +1 -1
  51. package/dist/plus/integrations/reads/drains.d.ts +1 -1
  52. package/dist/plus/integrations/reads/drains.js.map +1 -1
  53. package/dist/plus/integrations/reads/etag.js +3 -1
  54. package/dist/plus/integrations/reads/etag.js.map +1 -1
  55. package/docs/integrations.md +21 -2
  56. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.19.0] - 2026-10-26
10
+
11
+ ### Added
12
+
13
+ - Adds `viewerUnresolved?: true` to `IssueShape`/`Issue` and `PullRequestShape`/`PullRequest`: set on an Azure DevOps or Azure DevOps Server work item or pull request that names someone when the user's identity in its organization (collection) couldn't be read, because its `ConnectionData` failed, answered without an identity or took more than 10 seconds. Such a row has no `viewer` and, on a pull request, no `authoredByMe`, and a host should treat whether it's the user's as unknown rather than match it against `getCurrentAccount`, whose id is the one that may not match there. Every read that stamps `viewer` on those rows sets it: `listIssuesPage`, `getIssuesBatch`, the work item point read and Azure DevOps Server's `searchIssuesPage`; the repository-scoped `listPullRequestsPage` and sweeps, `getPullRequestsBatch`, `getPullRequestsForBranches` and Azure DevOps Server's `searchPullRequestsPage` without a current-user relationship. The account-wide pull request reads and a relationship search still report such an organization as a failed scope instead, since they filter by that identity. Absent on every other row, so a row with neither field still means what it did. A pull request row marked this way never compares unchanged on `getPullRequestsBatch`'s etag check, as a work item already didn't, so it's read in full again once the identity can be read ([#6083](https://github.com/gitkraken/vscode-gitlens/issues/6083)) (git, plus/integrations)
14
+
15
+ ### Fixed
16
+
17
+ - Fixes Azure DevOps Server's `searchPullRequestsPage` without a current-user relationship leaving its rows without `viewer` and `authoredByMe`: it now resolves the user's identity in the collection of each row it serves, as the other pull request reads do ([#6083](https://github.com/gitkraken/vscode-gitlens/issues/6083)) (plus/integrations)
18
+
19
+ ## [0.18.0] - 2026-10-25
20
+
9
21
  ## [0.17.0] - 2026-10-25
10
22
 
11
23
  ### Added
@@ -956,7 +968,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
956
968
 
957
969
  - 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.
958
970
 
959
- [unreleased]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.17.0...HEAD
971
+ [unreleased]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.19.0...HEAD
972
+ [0.19.0]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.18.0...gitkraken:releases/core/v0.19.0
973
+ [0.18.0]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.17.0...gitkraken:releases/core/v0.18.0
960
974
  [0.17.0]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.16.5...gitkraken:releases/core/v0.17.0
961
975
  [0.16.5]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.16.4...gitkraken:releases/core/v0.16.5
962
976
  [0.16.4]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.16.3...gitkraken:releases/core/v0.16.4
@@ -191,6 +191,7 @@ export declare class Cache implements Disposable {
191
191
  get gitDir(): Map<RepoPath, GitDir>;
192
192
  get gitIgnore(): Map<RepoPath, GitIgnoreFilter>;
193
193
  get gitResults(): RepoPromiseCacheMap<RepoPath, GitResult>;
194
+ get ignoreConfigListing(): PromiseMap<RepoPath, string | undefined>;
194
195
  get initialCommitSha(): PromiseMap<RepoPath, string | undefined>;
195
196
  get lastFetched(): PromiseCache<RepoPath, number | undefined>;
196
197
  get leftRightCommitCount(): RepoPromiseCacheMap<string, LeftRightCommitCountResult | undefined>;
@@ -488,6 +489,12 @@ export declare class Cache implements Disposable {
488
489
  * before it.
489
490
  */
490
491
  getAheadOfBaseConfigListing(repoPath: string, factory: (commonPath: string, cacheable: CacheController, cancellation?: AbortSignal) => PromiseOrValue<string | undefined>, cancellation?: AbortSignal): Promise<string | undefined>;
492
+ /**
493
+ * One listing of the gitignore filter's config inputs for every checkout of a repository, which serves a checkout's
494
+ * filter while nothing makes config differ by checkout. Evicted hard, so a read after a change never joins one
495
+ * from before it.
496
+ */
497
+ getIgnoreConfigListing(repoPath: string, factory: (commonPath: string, cacheable: CacheController, cancellation?: AbortSignal) => PromiseOrValue<string | undefined>, cancellation?: AbortSignal): Promise<string | undefined>;
491
498
  getBranchMetadataMap(repoPath: string, factory: (commonPath: string) => PromiseOrValue<Map<string, BranchMetadata>>): Promise<Map<string, BranchMetadata>>;
492
499
  getDefaultBranchName(repoPath: string, remote: string, factory: (commonPath: string, cacheable: CacheController, cancellation?: AbortSignal) => PromiseOrValue<string | undefined>, cancellation?: AbortSignal): Promise<string | undefined>;
493
500
  /** The cached default branch for one `remote` key, without reading it; `undefined` when none is cached */
package/dist/git/cache.js CHANGED
@@ -73,6 +73,7 @@ const sharedCacheKeys = new Set(exhaustiveArray()([
73
73
  "emptyTreeSha",
74
74
  "gitResults",
75
75
  "gkConfigMap",
76
+ "ignoreConfigListing",
76
77
  "initialCommitSha",
77
78
  "lastFetched",
78
79
  "logShas",
@@ -121,6 +122,7 @@ function createEmptyCaches() {
121
122
  gitIgnore: void 0,
122
123
  gitResults: void 0,
123
124
  gkConfigMap: void 0,
125
+ ignoreConfigListing: void 0,
124
126
  initialCommitSha: void 0,
125
127
  lastFetched: void 0,
126
128
  logShas: void 0,
@@ -302,6 +304,9 @@ var Cache = class Cache {
302
304
  get gitResults() {
303
305
  return this._caches.gitResults ??= new RepoPromiseCacheMap({ capacity: 200 });
304
306
  }
307
+ get ignoreConfigListing() {
308
+ return this._caches.ignoreConfigListing ??= new PromiseMap();
309
+ }
305
310
  get initialCommitSha() {
306
311
  return this._caches.initialCommitSha ??= new PromiseMap();
307
312
  }
@@ -442,6 +447,7 @@ var Cache = class Cache {
442
447
  if (types.includes("branch")) {
443
448
  keysToClear.add("aheadOfBaseConfigKey");
444
449
  keysToClear.add("aheadOfBaseConfigListing");
450
+ keysToClear.add("ignoreConfigListing");
445
451
  keysToClear.add("baseBranchName");
446
452
  }
447
453
  if (!worktreeOnly && (types.includes("branch") || types.includes("worktrees"))) this.evictMergeTargetsOnCheckout(repoPath);
@@ -458,6 +464,7 @@ var Cache = class Cache {
458
464
  if (types.includes("config")) {
459
465
  keysToClear.add("aheadOfBaseConfigKey");
460
466
  keysToClear.add("aheadOfBaseConfigListing");
467
+ keysToClear.add("ignoreConfigListing");
461
468
  keysToClear.add("baseBranchName");
462
469
  keysToClear.add("configKeys");
463
470
  keysToClear.add("configPatterns");
@@ -517,7 +524,7 @@ var Cache = class Cache {
517
524
  else if (key === "aheadOfBaseConfigKey" && !worktreeOnly && (!types.length || types.includes("config"))) this.evictShared(key, repoPath, "evict");
518
525
  else if (sharedCacheKeys.has(key)) {
519
526
  if (!worktreeOnly) {
520
- const hardEvict = key === "aheadOfBaseConfigListing" || key === "gitResults" && (types.includes("config") || types.includes("branch"));
527
+ const hardEvict = key === "aheadOfBaseConfigListing" || key === "ignoreConfigListing" || key === "gitResults" && (types.includes("config") || types.includes("branch"));
521
528
  this.evictShared(key, repoPath, hardEvict ? "evict" : inFlight);
522
529
  }
523
530
  } else cache.delete(repoPath);
@@ -630,7 +637,10 @@ var Cache = class Cache {
630
637
  if (previousCommonPath != null && previousCommonPath !== commonPath) this.unregisterRepoPath(normalizedPath);
631
638
  if (previousCommonPath !== commonPath) {
632
639
  this._caches.aheadOfBaseConfigKey?.delete(normalizedPath);
633
- if (normalizedPath === commonPath) this._caches.aheadOfBaseConfigListing?.delete(commonPath);
640
+ if (normalizedPath === commonPath) {
641
+ this._caches.aheadOfBaseConfigListing?.delete(commonPath);
642
+ this._caches.ignoreConfigListing?.delete(commonPath);
643
+ }
634
644
  this._caches.gitResults?.delete(normalizedPath);
635
645
  }
636
646
  this._commonPathRegistry.set(normalizedPath, commonPath);
@@ -674,7 +684,7 @@ var Cache = class Cache {
674
684
  if (key === "gitResults" && isLastWorktree && repoPath !== commonPath) cache.delete(commonPath);
675
685
  continue;
676
686
  }
677
- if (key === "aheadOfBaseConfigListing") {
687
+ if (key === "aheadOfBaseConfigListing" || key === "ignoreConfigListing") {
678
688
  if (repoPath === commonPath || isLastWorktree) cache.delete(commonPath);
679
689
  continue;
680
690
  }
@@ -1188,6 +1198,14 @@ var Cache = class Cache {
1188
1198
  getAheadOfBaseConfigListing(repoPath, factory, cancellation) {
1189
1199
  return this.getSharedSimple(this.aheadOfBaseConfigListing, repoPath, factory, cancellation);
1190
1200
  }
1201
+ /**
1202
+ * One listing of the gitignore filter's config inputs for every checkout of a repository, which serves a checkout's
1203
+ * filter while nothing makes config differ by checkout. Evicted hard, so a read after a change never joins one
1204
+ * from before it.
1205
+ */
1206
+ getIgnoreConfigListing(repoPath, factory, cancellation) {
1207
+ return this.getSharedSimple(this.ignoreConfigListing, repoPath, factory, cancellation);
1208
+ }
1191
1209
  getBranchMetadataMap(repoPath, factory) {
1192
1210
  return this.getSharedSimple(this.branchMetadataMap, repoPath, factory);
1193
1211
  }