@gitkraken/core-gitlens 0.3.1 → 0.4.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 (230) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/README.md +13 -10
  3. package/dist/git/context.d.ts +4 -3
  4. package/dist/git/context.d.ts.map +1 -1
  5. package/dist/git/context.js.map +1 -1
  6. package/dist/git/providers/operations.d.ts +1 -0
  7. package/dist/git/providers/operations.d.ts.map +1 -1
  8. package/dist/git/providers/worktrees.d.ts +2 -0
  9. package/dist/git/providers/worktrees.d.ts.map +1 -1
  10. package/dist/git/utils/conflictResolution.utils.d.ts +32 -0
  11. package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -1
  12. package/dist/git/utils/conflictResolution.utils.js +95 -0
  13. package/dist/git/utils/conflictResolution.utils.js.map +1 -1
  14. package/dist/git-cli/providers/operations.d.ts +1 -0
  15. package/dist/git-cli/providers/operations.d.ts.map +1 -1
  16. package/dist/git-cli/providers/operations.js +22 -1
  17. package/dist/git-cli/providers/operations.js.map +1 -1
  18. package/dist/git-cli/providers/worktrees.d.ts +2 -0
  19. package/dist/git-cli/providers/worktrees.d.ts.map +1 -1
  20. package/dist/git-cli/providers/worktrees.js +3 -0
  21. package/dist/git-cli/providers/worktrees.js.map +1 -1
  22. package/dist/plus/ai/utils/ai.utils.js +5 -5
  23. package/dist/plus/ai/utils/ai.utils.js.map +1 -1
  24. package/dist/plus/git-github/api/github.d.ts +6 -13
  25. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  26. package/dist/plus/git-github/api/github.js +5 -10
  27. package/dist/plus/git-github/api/github.js.map +1 -1
  28. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +11 -0
  29. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +1 -0
  30. package/dist/plus/integrations/authentication/cloudIntegrationService.js +90 -0
  31. package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -0
  32. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +67 -0
  33. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +1 -0
  34. package/dist/plus/integrations/authentication/configuredIntegrationService.js +295 -0
  35. package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -0
  36. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +92 -0
  37. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +1 -0
  38. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +185 -0
  39. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -0
  40. package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts +62 -0
  41. package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +1 -0
  42. package/dist/plus/integrations/authentication/integrationAuthenticationService.js +122 -0
  43. package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -0
  44. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +15 -0
  45. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +1 -0
  46. package/dist/plus/integrations/authentication/manualTokenProvider.js +49 -0
  47. package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -0
  48. package/dist/plus/integrations/authentication/models.d.ts +87 -0
  49. package/dist/plus/integrations/authentication/models.d.ts.map +1 -0
  50. package/dist/plus/integrations/authentication/models.js +64 -0
  51. package/dist/plus/integrations/authentication/models.js.map +1 -0
  52. package/dist/plus/integrations/constants.d.ts +47 -0
  53. package/dist/plus/integrations/constants.d.ts.map +1 -0
  54. package/dist/plus/integrations/constants.js +128 -0
  55. package/dist/plus/integrations/constants.js.map +1 -0
  56. package/dist/plus/integrations/context.d.ts +354 -0
  57. package/dist/plus/integrations/context.d.ts.map +1 -0
  58. package/dist/plus/integrations/context.js +2 -0
  59. package/dist/plus/integrations/context.js.map +1 -0
  60. package/dist/plus/integrations/errors.d.ts +14 -0
  61. package/dist/plus/integrations/errors.d.ts.map +1 -0
  62. package/dist/plus/integrations/errors.js +19 -0
  63. package/dist/plus/integrations/errors.js.map +1 -0
  64. package/dist/plus/integrations/index.d.ts +32 -0
  65. package/dist/plus/integrations/index.d.ts.map +1 -0
  66. package/dist/plus/integrations/index.js +62 -0
  67. package/dist/plus/integrations/index.js.map +1 -0
  68. package/dist/plus/integrations/integrationService.d.ts +98 -0
  69. package/dist/plus/integrations/integrationService.d.ts.map +1 -0
  70. package/dist/plus/integrations/integrationService.js +627 -0
  71. package/dist/plus/integrations/integrationService.js.map +1 -0
  72. package/dist/plus/integrations/models/gitHostIntegration.d.ts +82 -0
  73. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -0
  74. package/dist/plus/integrations/models/gitHostIntegration.js +522 -0
  75. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -0
  76. package/dist/plus/integrations/models/integration.d.ts +127 -0
  77. package/dist/plus/integrations/models/integration.d.ts.map +1 -0
  78. package/dist/plus/integrations/models/integration.js +456 -0
  79. package/dist/plus/integrations/models/integration.js.map +1 -0
  80. package/dist/plus/integrations/models/issuesIntegration.d.ts +28 -0
  81. package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -0
  82. package/dist/plus/integrations/models/issuesIntegration.js +101 -0
  83. package/dist/plus/integrations/models/issuesIntegration.js.map +1 -0
  84. package/dist/plus/integrations/providers/apiClients.d.ts +25 -0
  85. package/dist/plus/integrations/providers/apiClients.d.ts.map +1 -0
  86. package/dist/plus/integrations/providers/apiClients.js +39 -0
  87. package/dist/plus/integrations/providers/apiClients.js.map +1 -0
  88. package/dist/plus/integrations/providers/azure/azure.d.ts +47 -0
  89. package/dist/plus/integrations/providers/azure/azure.d.ts.map +1 -0
  90. package/dist/plus/integrations/providers/azure/azure.js +444 -0
  91. package/dist/plus/integrations/providers/azure/azure.js.map +1 -0
  92. package/dist/plus/integrations/providers/azure/models.d.ts +286 -0
  93. package/dist/plus/integrations/providers/azure/models.d.ts.map +1 -0
  94. package/dist/plus/integrations/providers/azure/models.js +203 -0
  95. package/dist/plus/integrations/providers/azure/models.js.map +1 -0
  96. package/dist/plus/integrations/providers/azureDevOps.d.ts +95 -0
  97. package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -0
  98. package/dist/plus/integrations/providers/azureDevOps.js +432 -0
  99. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -0
  100. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +42 -0
  101. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +1 -0
  102. package/dist/plus/integrations/providers/bitbucket/bitbucket.js +513 -0
  103. package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -0
  104. package/dist/plus/integrations/providers/bitbucket/models.d.ts +222 -0
  105. package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +1 -0
  106. package/dist/plus/integrations/providers/bitbucket/models.js +158 -0
  107. package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -0
  108. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +120 -0
  109. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +1 -0
  110. package/dist/plus/integrations/providers/bitbucket-server/models.js +111 -0
  111. package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -0
  112. package/dist/plus/integrations/providers/bitbucket-server.d.ts +60 -0
  113. package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +1 -0
  114. package/dist/plus/integrations/providers/bitbucket-server.js +138 -0
  115. package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -0
  116. package/dist/plus/integrations/providers/bitbucket.d.ts +50 -0
  117. package/dist/plus/integrations/providers/bitbucket.d.ts.map +1 -0
  118. package/dist/plus/integrations/providers/bitbucket.js +181 -0
  119. package/dist/plus/integrations/providers/bitbucket.js.map +1 -0
  120. package/dist/plus/integrations/providers/github/github.d.ts +5 -0
  121. package/dist/plus/integrations/providers/github/github.d.ts.map +1 -0
  122. package/dist/plus/integrations/providers/github/github.js +47 -0
  123. package/dist/plus/integrations/providers/github/github.js.map +1 -0
  124. package/dist/plus/integrations/providers/github/github.utils.d.ts +11 -0
  125. package/dist/plus/integrations/providers/github/github.utils.d.ts.map +1 -0
  126. package/dist/plus/integrations/providers/github/github.utils.js +6 -0
  127. package/dist/plus/integrations/providers/github/github.utils.js.map +1 -0
  128. package/dist/plus/integrations/providers/github/models.d.ts +3 -0
  129. package/dist/plus/integrations/providers/github/models.d.ts.map +1 -0
  130. package/dist/plus/integrations/providers/github/models.js +2 -0
  131. package/dist/plus/integrations/providers/github/models.js.map +1 -0
  132. package/dist/plus/integrations/providers/github.d.ts +73 -0
  133. package/dist/plus/integrations/providers/github.d.ts.map +1 -0
  134. package/dist/plus/integrations/providers/github.js +160 -0
  135. package/dist/plus/integrations/providers/github.js.map +1 -0
  136. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +63 -0
  137. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +1 -0
  138. package/dist/plus/integrations/providers/gitlab/gitlab.js +828 -0
  139. package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -0
  140. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +21 -0
  141. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +1 -0
  142. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +45 -0
  143. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -0
  144. package/dist/plus/integrations/providers/gitlab/models.d.ts +128 -0
  145. package/dist/plus/integrations/providers/gitlab/models.d.ts.map +1 -0
  146. package/dist/plus/integrations/providers/gitlab/models.js +96 -0
  147. package/dist/plus/integrations/providers/gitlab/models.js.map +1 -0
  148. package/dist/plus/integrations/providers/gitlab.d.ts +79 -0
  149. package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -0
  150. package/dist/plus/integrations/providers/gitlab.js +253 -0
  151. package/dist/plus/integrations/providers/gitlab.js.map +1 -0
  152. package/dist/plus/integrations/providers/jira.d.ts +46 -0
  153. package/dist/plus/integrations/providers/jira.d.ts.map +1 -0
  154. package/dist/plus/integrations/providers/jira.js +255 -0
  155. package/dist/plus/integrations/providers/jira.js.map +1 -0
  156. package/dist/plus/integrations/providers/linear.d.ts +47 -0
  157. package/dist/plus/integrations/providers/linear.d.ts.map +1 -0
  158. package/dist/plus/integrations/providers/linear.js +198 -0
  159. package/dist/plus/integrations/providers/linear.js.map +1 -0
  160. package/dist/plus/integrations/providers/models.d.ts +433 -0
  161. package/dist/plus/integrations/providers/models.d.ts.map +1 -0
  162. package/dist/plus/integrations/providers/models.js +602 -0
  163. package/dist/plus/integrations/providers/models.js.map +1 -0
  164. package/dist/plus/integrations/providers/providersApi.d.ts +129 -0
  165. package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -0
  166. package/dist/plus/integrations/providers/providersApi.js +602 -0
  167. package/dist/plus/integrations/providers/providersApi.js.map +1 -0
  168. package/dist/plus/integrations/providers/utils.d.ts +54 -0
  169. package/dist/plus/integrations/providers/utils.d.ts.map +1 -0
  170. package/dist/plus/integrations/providers/utils.js +262 -0
  171. package/dist/plus/integrations/providers/utils.js.map +1 -0
  172. package/dist/plus/integrations/telemetry.d.ts +26 -0
  173. package/dist/plus/integrations/telemetry.d.ts.map +1 -0
  174. package/dist/plus/integrations/telemetry.js +11 -0
  175. package/dist/plus/integrations/telemetry.js.map +1 -0
  176. package/dist/plus/integrations/utils/integration.utils.d.ts +14 -0
  177. package/dist/plus/integrations/utils/integration.utils.d.ts.map +1 -0
  178. package/dist/plus/integrations/utils/integration.utils.js +111 -0
  179. package/dist/plus/integrations/utils/integration.utils.js.map +1 -0
  180. package/dist/utils/disposable.d.ts +15 -2
  181. package/dist/utils/disposable.d.ts.map +1 -1
  182. package/dist/utils/disposable.js.map +1 -1
  183. package/package.json +43 -2
  184. package/src/git/context.ts +4 -3
  185. package/src/git/providers/operations.ts +1 -1
  186. package/src/git/providers/worktrees.ts +14 -2
  187. package/src/git/utils/conflictResolution.utils.ts +126 -0
  188. package/src/git-cli/providers/operations.ts +22 -2
  189. package/src/git-cli/providers/worktrees.ts +17 -2
  190. package/src/plus/ai/utils/ai.utils.ts +5 -5
  191. package/src/plus/git-github/api/github.ts +13 -25
  192. package/src/plus/integrations/authentication/cloudIntegrationService.ts +120 -0
  193. package/src/plus/integrations/authentication/configuredIntegrationService.ts +414 -0
  194. package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +289 -0
  195. package/src/plus/integrations/authentication/integrationAuthenticationService.ts +144 -0
  196. package/src/plus/integrations/authentication/manualTokenProvider.ts +72 -0
  197. package/src/plus/integrations/authentication/models.ts +168 -0
  198. package/src/plus/integrations/constants.ts +169 -0
  199. package/src/plus/integrations/context.ts +383 -0
  200. package/src/plus/integrations/errors.ts +35 -0
  201. package/src/plus/integrations/index.ts +119 -0
  202. package/src/plus/integrations/integrationService.ts +924 -0
  203. package/src/plus/integrations/models/gitHostIntegration.ts +738 -0
  204. package/src/plus/integrations/models/integration.ts +657 -0
  205. package/src/plus/integrations/models/issuesIntegration.ts +124 -0
  206. package/src/plus/integrations/providers/apiClients.ts +72 -0
  207. package/src/plus/integrations/providers/azure/azure.ts +691 -0
  208. package/src/plus/integrations/providers/azure/models.ts +605 -0
  209. package/src/plus/integrations/providers/azureDevOps.ts +677 -0
  210. package/src/plus/integrations/providers/bitbucket/bitbucket.ts +774 -0
  211. package/src/plus/integrations/providers/bitbucket/models.ts +445 -0
  212. package/src/plus/integrations/providers/bitbucket-server/models.ts +252 -0
  213. package/src/plus/integrations/providers/bitbucket-server.ts +282 -0
  214. package/src/plus/integrations/providers/bitbucket.ts +350 -0
  215. package/src/plus/integrations/providers/github/github.ts +64 -0
  216. package/src/plus/integrations/providers/github/github.utils.ts +23 -0
  217. package/src/plus/integrations/providers/github/models.ts +29 -0
  218. package/src/plus/integrations/providers/github.ts +366 -0
  219. package/src/plus/integrations/providers/gitlab/gitlab.ts +1210 -0
  220. package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +71 -0
  221. package/src/plus/integrations/providers/gitlab/models.ts +257 -0
  222. package/src/plus/integrations/providers/gitlab.ts +473 -0
  223. package/src/plus/integrations/providers/jira.ts +359 -0
  224. package/src/plus/integrations/providers/linear.ts +275 -0
  225. package/src/plus/integrations/providers/models.ts +1114 -0
  226. package/src/plus/integrations/providers/providersApi.ts +1126 -0
  227. package/src/plus/integrations/providers/utils.ts +359 -0
  228. package/src/plus/integrations/telemetry.ts +29 -0
  229. package/src/plus/integrations/utils/integration.utils.ts +138 -0
  230. package/src/utils/disposable.ts +15 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/providers/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,602 @@
1
+ import { GitBuildStatusState, GitPullRequestMergeableState, GitPullRequestReviewState, GitPullRequestState, } from '@gitkraken/provider-apis';
2
+ import { EntityIdentifierUtils } from '@gitkraken/provider-apis/entity-identifiers';
3
+ import { GitProviderUtils } from '@gitkraken/provider-apis/provider-utils';
4
+ import { Issue, RepositoryAccessLevel } from '../../../git/models/issue.js';
5
+ import { PullRequest, PullRequestMergeableState, PullRequestReviewDecision, PullRequestReviewState, PullRequestStatusCheckRollupState, } from '../../../git/models/pullRequest.js';
6
+ import { gitSuffixRegex } from '../../../git/utils/remote.utils.js';
7
+ import { equalsIgnoreCase } from '../../../utils/string.js';
8
+ import { GitCloudHostIntegrationId, GitSelfManagedHostIntegrationId, IssuesCloudHostIntegrationId, } from '../constants.js';
9
+ import { getEntityIdentifierInput } from './utils.js';
10
+ export const ProviderPullRequestReviewState = GitPullRequestReviewState;
11
+ export const ProviderBuildStatusState = GitBuildStatusState;
12
+ export var PullRequestFilter;
13
+ (function (PullRequestFilter) {
14
+ PullRequestFilter["Author"] = "author";
15
+ PullRequestFilter["Assignee"] = "assignee";
16
+ PullRequestFilter["ReviewRequested"] = "review-requested";
17
+ PullRequestFilter["Mention"] = "mention";
18
+ })(PullRequestFilter || (PullRequestFilter = {}));
19
+ export var IssueFilter;
20
+ (function (IssueFilter) {
21
+ IssueFilter["Author"] = "author";
22
+ IssueFilter["Assignee"] = "assignee";
23
+ IssueFilter["Mention"] = "mention";
24
+ })(IssueFilter || (IssueFilter = {}));
25
+ export var PagingMode;
26
+ (function (PagingMode) {
27
+ PagingMode["Project"] = "project";
28
+ PagingMode["Repo"] = "repo";
29
+ PagingMode["Repos"] = "repos";
30
+ })(PagingMode || (PagingMode = {}));
31
+ export const providersMetadata = {
32
+ [GitCloudHostIntegrationId.GitHub]: {
33
+ domain: 'github.com',
34
+ id: GitCloudHostIntegrationId.GitHub,
35
+ name: 'GitHub',
36
+ type: 'git',
37
+ iconKey: GitCloudHostIntegrationId.GitHub,
38
+ issuesPagingMode: PagingMode.Repos,
39
+ pullRequestsPagingMode: PagingMode.Repos,
40
+ // Use 'username' property on account for PR filters
41
+ supportedPullRequestFilters: [
42
+ PullRequestFilter.Author,
43
+ PullRequestFilter.Assignee,
44
+ PullRequestFilter.ReviewRequested,
45
+ PullRequestFilter.Mention,
46
+ ],
47
+ // Use 'username' property on account for issue filters
48
+ supportedIssueFilters: [IssueFilter.Author, IssueFilter.Assignee, IssueFilter.Mention],
49
+ scopes: ['repo', 'read:user', 'user:email'],
50
+ },
51
+ [GitSelfManagedHostIntegrationId.CloudGitHubEnterprise]: {
52
+ domain: '',
53
+ id: GitSelfManagedHostIntegrationId.CloudGitHubEnterprise,
54
+ name: 'GitHub Enterprise',
55
+ type: 'git',
56
+ iconKey: 'github-enterprise',
57
+ issuesPagingMode: PagingMode.Repos,
58
+ pullRequestsPagingMode: PagingMode.Repos,
59
+ // Use 'username' property on account for PR filters
60
+ supportedPullRequestFilters: [
61
+ PullRequestFilter.Author,
62
+ PullRequestFilter.Assignee,
63
+ PullRequestFilter.ReviewRequested,
64
+ PullRequestFilter.Mention,
65
+ ],
66
+ // Use 'username' property on account for issue filters
67
+ supportedIssueFilters: [IssueFilter.Author, IssueFilter.Assignee, IssueFilter.Mention],
68
+ scopes: ['repo', 'read:user', 'user:email'],
69
+ },
70
+ [GitCloudHostIntegrationId.GitLab]: {
71
+ domain: 'gitlab.com',
72
+ id: GitCloudHostIntegrationId.GitLab,
73
+ name: 'GitLab',
74
+ type: 'git',
75
+ iconKey: GitCloudHostIntegrationId.GitLab,
76
+ issuesPagingMode: PagingMode.Repo,
77
+ pullRequestsPagingMode: PagingMode.Repo,
78
+ // Use 'username' property on account for PR filters
79
+ supportedPullRequestFilters: [
80
+ PullRequestFilter.Author,
81
+ PullRequestFilter.Assignee,
82
+ PullRequestFilter.ReviewRequested,
83
+ ],
84
+ // Use 'username' property on account for issue filters
85
+ supportedIssueFilters: [IssueFilter.Author, IssueFilter.Assignee],
86
+ scopes: ['api', 'read_user', 'read_repository'],
87
+ },
88
+ [GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted]: {
89
+ domain: '',
90
+ id: GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted,
91
+ name: 'GitLab Self-Hosted',
92
+ type: 'git',
93
+ iconKey: 'gitlab-self-hosted',
94
+ issuesPagingMode: PagingMode.Repo,
95
+ pullRequestsPagingMode: PagingMode.Repo,
96
+ // Use 'username' property on account for PR filters
97
+ supportedPullRequestFilters: [
98
+ PullRequestFilter.Author,
99
+ PullRequestFilter.Assignee,
100
+ PullRequestFilter.ReviewRequested,
101
+ ],
102
+ // Use 'username' property on account for issue filters
103
+ supportedIssueFilters: [IssueFilter.Author, IssueFilter.Assignee],
104
+ scopes: ['api', 'read_user', 'read_repository'],
105
+ },
106
+ [GitCloudHostIntegrationId.Bitbucket]: {
107
+ domain: 'bitbucket.org',
108
+ id: GitCloudHostIntegrationId.Bitbucket,
109
+ name: 'Bitbucket',
110
+ type: 'git',
111
+ iconKey: GitCloudHostIntegrationId.Bitbucket,
112
+ pullRequestsPagingMode: PagingMode.Repo,
113
+ // Use 'id' property on account for PR filters
114
+ supportedPullRequestFilters: [PullRequestFilter.Author],
115
+ scopes: ['account:read', 'repository:read', 'pullrequest:read', 'issue:read'],
116
+ },
117
+ [GitSelfManagedHostIntegrationId.BitbucketServer]: {
118
+ domain: '',
119
+ id: GitSelfManagedHostIntegrationId.BitbucketServer,
120
+ name: 'Bitbucket Data Center',
121
+ type: 'git',
122
+ iconKey: GitSelfManagedHostIntegrationId.BitbucketServer,
123
+ supportedPullRequestFilters: [PullRequestFilter.Author, PullRequestFilter.ReviewRequested],
124
+ scopes: ['Project (Read)', 'Repository (Write)'],
125
+ },
126
+ [GitCloudHostIntegrationId.AzureDevOps]: {
127
+ domain: 'dev.azure.com',
128
+ id: GitCloudHostIntegrationId.AzureDevOps,
129
+ name: 'Azure DevOps',
130
+ type: 'git',
131
+ iconKey: GitCloudHostIntegrationId.AzureDevOps,
132
+ issuesPagingMode: PagingMode.Project,
133
+ pullRequestsPagingMode: PagingMode.Repo,
134
+ // Use 'id' property on account for PR filters
135
+ supportedPullRequestFilters: [PullRequestFilter.Author, PullRequestFilter.Assignee],
136
+ // Use 'name' property on account for issue filters
137
+ supportedIssueFilters: [IssueFilter.Author, IssueFilter.Assignee, IssueFilter.Mention],
138
+ scopes: ['vso.code', 'vso.identity', 'vso.project', 'vso.profile', 'vso.work'],
139
+ },
140
+ [GitSelfManagedHostIntegrationId.AzureDevOpsServer]: {
141
+ domain: '',
142
+ id: GitSelfManagedHostIntegrationId.AzureDevOpsServer,
143
+ name: 'Azure DevOps Server',
144
+ type: 'git',
145
+ iconKey: GitCloudHostIntegrationId.AzureDevOps,
146
+ issuesPagingMode: PagingMode.Project,
147
+ pullRequestsPagingMode: PagingMode.Repo,
148
+ // Use 'id' property on account for PR filters
149
+ supportedPullRequestFilters: [PullRequestFilter.Author, PullRequestFilter.Assignee],
150
+ // Use 'name' property on account for issue filters
151
+ supportedIssueFilters: [IssueFilter.Author, IssueFilter.Assignee, IssueFilter.Mention],
152
+ scopes: ['vso.code', 'vso.identity', 'vso.project', 'vso.profile', 'vso.work'],
153
+ },
154
+ [IssuesCloudHostIntegrationId.Jira]: {
155
+ domain: 'atlassian.net',
156
+ id: IssuesCloudHostIntegrationId.Jira,
157
+ name: 'Jira',
158
+ type: 'issues',
159
+ iconKey: IssuesCloudHostIntegrationId.Jira,
160
+ scopes: [
161
+ 'read:status:jira',
162
+ 'read:application-role:jira',
163
+ 'write:attachment:jira',
164
+ 'read:comment:jira',
165
+ 'read:project-category:jira',
166
+ 'read:project:jira',
167
+ 'read:issue.vote:jira',
168
+ 'read:field-configuration:jira',
169
+ 'write:issue:jira',
170
+ 'read:issue-security-level:jira',
171
+ 'write:issue.property:jira',
172
+ 'read:issue.changelog:jira',
173
+ 'read:avatar:jira',
174
+ 'read:issue-meta:jira',
175
+ 'read:permission:jira',
176
+ 'offline_access',
177
+ 'read:issue:jira',
178
+ 'read:me',
179
+ 'read:audit-log:jira',
180
+ 'read:project.component:jira',
181
+ 'read:group:jira',
182
+ 'read:project-role:jira',
183
+ 'write:comment:jira',
184
+ 'read:label:jira',
185
+ 'write:comment.property:jira',
186
+ 'read:issue-details:jira',
187
+ 'read:issue-type-hierarchy:jira',
188
+ 'read:issue.transition:jira',
189
+ 'read:user:jira',
190
+ 'read:field:jira',
191
+ 'read:issue-type:jira',
192
+ 'read:project.property:jira',
193
+ 'read:comment.property:jira',
194
+ 'read:project-version:jira',
195
+ ],
196
+ supportedIssueFilters: [IssueFilter.Author, IssueFilter.Assignee, IssueFilter.Mention],
197
+ },
198
+ [IssuesCloudHostIntegrationId.Linear]: {
199
+ domain: 'linear.app',
200
+ id: IssuesCloudHostIntegrationId.Linear,
201
+ name: 'Linear',
202
+ type: 'issues',
203
+ iconKey: IssuesCloudHostIntegrationId.Linear,
204
+ scopes: [],
205
+ },
206
+ [IssuesCloudHostIntegrationId.Trello]: {
207
+ domain: 'trello.com',
208
+ id: IssuesCloudHostIntegrationId.Trello,
209
+ name: 'Trello',
210
+ type: 'issues',
211
+ iconKey: IssuesCloudHostIntegrationId.Trello,
212
+ scopes: [],
213
+ },
214
+ };
215
+ export function getReasonsForUserIssue(issue, userLogin) {
216
+ const reasons = [];
217
+ let isAuthor = false;
218
+ let isAssignee = false;
219
+ if (issue.author?.username === userLogin || issue.author?.name === userLogin) {
220
+ reasons.push('authored');
221
+ isAuthor = true;
222
+ }
223
+ if (issue.assignees?.some(assignee => assignee.username === userLogin || assignee.name === userLogin)) {
224
+ reasons.push('assigned');
225
+ isAssignee = true;
226
+ }
227
+ // TODO: Impossible to denote all issues we are mentioned on given their properties. for now just
228
+ // assume we are mentioned on any of our issues we are not the author or assignee on
229
+ if (!isAuthor && !isAssignee) {
230
+ reasons.push('mentioned');
231
+ }
232
+ return reasons;
233
+ }
234
+ export function toIssueShape(issue, provider) {
235
+ // TODO: Add some protections/baselines rather than killing the transformation here
236
+ if (issue.updatedDate == null || issue.author == null || issue.url == null)
237
+ return undefined;
238
+ return {
239
+ type: 'issue',
240
+ provider: provider,
241
+ id: issue.number,
242
+ nodeId: issue.graphQLId ?? issue.id,
243
+ title: issue.title,
244
+ url: issue.url,
245
+ createdDate: issue.createdDate,
246
+ updatedDate: issue.updatedDate,
247
+ closedDate: issue.closedDate ?? undefined,
248
+ closed: issue.closedDate != null,
249
+ state: issue.closedDate != null ? 'closed' : 'opened',
250
+ author: {
251
+ id: issue.author.id ?? '',
252
+ name: issue.author.name ?? '',
253
+ avatarUrl: issue.author.avatarUrl ?? undefined,
254
+ url: issue.author.url ?? undefined,
255
+ },
256
+ assignees: issue.assignees?.map(assignee => ({
257
+ id: assignee.id ?? '',
258
+ name: assignee.name ?? '',
259
+ avatarUrl: assignee.avatarUrl ?? undefined,
260
+ url: assignee.url ?? undefined,
261
+ })) ?? [],
262
+ project: {
263
+ id: issue.project?.id ?? '',
264
+ name: issue.project?.name ?? '',
265
+ resourceId: issue.project?.resourceId ?? '',
266
+ resourceName: issue.project?.namespace ?? '',
267
+ },
268
+ repository: issue.repository?.owner?.login != null
269
+ ? {
270
+ owner: issue.repository.owner.login,
271
+ repo: issue.repository.name,
272
+ }
273
+ : undefined,
274
+ labels: issue.labels.map(label => ({ color: label.color ?? undefined, name: label.name })),
275
+ commentsCount: issue.commentCount ?? undefined,
276
+ thumbsUpCount: issue.upvoteCount ?? undefined,
277
+ body: issue.description ?? undefined,
278
+ };
279
+ }
280
+ export function issueFilterToReason(filter) {
281
+ switch (filter) {
282
+ case IssueFilter.Author:
283
+ return 'authored';
284
+ case IssueFilter.Assignee:
285
+ return 'assigned';
286
+ case IssueFilter.Mention:
287
+ return 'mentioned';
288
+ }
289
+ }
290
+ export function toAccount(account, provider) {
291
+ return {
292
+ provider: provider,
293
+ id: account.id,
294
+ name: account.name ?? undefined,
295
+ email: account.email ?? undefined,
296
+ avatarUrl: account.avatarUrl ?? undefined,
297
+ username: account.username ?? undefined,
298
+ };
299
+ }
300
+ export const toProviderBuildStatusState = {
301
+ [PullRequestStatusCheckRollupState.Success]: GitBuildStatusState.Success,
302
+ [PullRequestStatusCheckRollupState.Failed]: GitBuildStatusState.Failed,
303
+ [PullRequestStatusCheckRollupState.Pending]: GitBuildStatusState.Pending,
304
+ };
305
+ export const fromProviderBuildStatusState = {
306
+ [GitBuildStatusState.Success]: PullRequestStatusCheckRollupState.Success,
307
+ [GitBuildStatusState.Failed]: PullRequestStatusCheckRollupState.Failed,
308
+ [GitBuildStatusState.Pending]: PullRequestStatusCheckRollupState.Pending,
309
+ [GitBuildStatusState.ActionRequired]: PullRequestStatusCheckRollupState.Failed,
310
+ // TODO: The rest of these are defaulted because we don't have a matching state for them
311
+ [GitBuildStatusState.Error]: undefined,
312
+ [GitBuildStatusState.Cancelled]: undefined,
313
+ [GitBuildStatusState.OptionalActionRequired]: undefined,
314
+ [GitBuildStatusState.Skipped]: undefined,
315
+ [GitBuildStatusState.Running]: undefined,
316
+ [GitBuildStatusState.Warning]: undefined,
317
+ };
318
+ export const toProviderPullRequestReviewState = {
319
+ [PullRequestReviewState.Approved]: GitPullRequestReviewState.Approved,
320
+ [PullRequestReviewState.ChangesRequested]: GitPullRequestReviewState.ChangesRequested,
321
+ [PullRequestReviewState.Commented]: GitPullRequestReviewState.Commented,
322
+ [PullRequestReviewState.ReviewRequested]: GitPullRequestReviewState.ReviewRequested,
323
+ [PullRequestReviewState.Dismissed]: null,
324
+ [PullRequestReviewState.Pending]: null,
325
+ };
326
+ export const fromProviderPullRequestReviewState = {
327
+ [GitPullRequestReviewState.Approved]: PullRequestReviewState.Approved,
328
+ [GitPullRequestReviewState.ChangesRequested]: PullRequestReviewState.ChangesRequested,
329
+ [GitPullRequestReviewState.Commented]: PullRequestReviewState.Commented,
330
+ [GitPullRequestReviewState.ReviewRequested]: PullRequestReviewState.ReviewRequested,
331
+ };
332
+ export const toProviderPullRequestMergeableState = {
333
+ [PullRequestMergeableState.Mergeable]: GitPullRequestMergeableState.Mergeable,
334
+ [PullRequestMergeableState.Conflicting]: GitPullRequestMergeableState.Conflicts,
335
+ [PullRequestMergeableState.Unknown]: GitPullRequestMergeableState.Unknown,
336
+ [PullRequestMergeableState.FailingChecks]: GitPullRequestMergeableState.FailingChecks,
337
+ [PullRequestMergeableState.BlockedByPolicy]: GitPullRequestMergeableState.Blocked,
338
+ };
339
+ export const fromProviderPullRequestMergeableState = {
340
+ [GitPullRequestMergeableState.Mergeable]: PullRequestMergeableState.Mergeable,
341
+ [GitPullRequestMergeableState.Conflicts]: PullRequestMergeableState.Conflicting,
342
+ [GitPullRequestMergeableState.Blocked]: PullRequestMergeableState.BlockedByPolicy,
343
+ [GitPullRequestMergeableState.FailingChecks]: PullRequestMergeableState.FailingChecks,
344
+ [GitPullRequestMergeableState.Unknown]: PullRequestMergeableState.Unknown,
345
+ [GitPullRequestMergeableState.Behind]: PullRequestMergeableState.Unknown,
346
+ [GitPullRequestMergeableState.UnknownAndBlocked]: PullRequestMergeableState.Unknown,
347
+ [GitPullRequestMergeableState.Unstable]: PullRequestMergeableState.Unknown,
348
+ };
349
+ export function toProviderReviews(reviewers) {
350
+ return reviewers
351
+ .filter(r => r.state !== PullRequestReviewState.Dismissed && r.state !== PullRequestReviewState.Pending)
352
+ .map(reviewer => ({
353
+ reviewer: toProviderAccount(reviewer.reviewer),
354
+ state: toProviderPullRequestReviewState[reviewer.state] ?? GitPullRequestReviewState.ReviewRequested,
355
+ }));
356
+ }
357
+ export function toReviewRequests(reviews) {
358
+ return reviews == null
359
+ ? undefined
360
+ : reviews
361
+ ?.filter(r => r.state === GitPullRequestReviewState.ReviewRequested)
362
+ .map(r => ({
363
+ isCodeOwner: false, // TODO: Find this value, and implement in the shared lib if needed
364
+ reviewer: fromProviderAccount(r.reviewer),
365
+ state: PullRequestReviewState.ReviewRequested,
366
+ }));
367
+ }
368
+ export function toCompletedReviews(reviews) {
369
+ return reviews == null
370
+ ? undefined
371
+ : reviews
372
+ ?.filter(r => r.state !== GitPullRequestReviewState.ReviewRequested)
373
+ .map(r => ({
374
+ isCodeOwner: false, // TODO: Find this value, and implement in the shared lib if needed
375
+ reviewer: fromProviderAccount(r.reviewer),
376
+ state: fromProviderPullRequestReviewState[r.state],
377
+ }));
378
+ }
379
+ export function toProviderReviewDecision(reviewDecision, reviewers) {
380
+ switch (reviewDecision) {
381
+ case PullRequestReviewDecision.Approved:
382
+ return GitPullRequestReviewState.Approved;
383
+ case PullRequestReviewDecision.ChangesRequested:
384
+ return GitPullRequestReviewState.ChangesRequested;
385
+ case PullRequestReviewDecision.ReviewRequired:
386
+ return GitPullRequestReviewState.ReviewRequested;
387
+ default: {
388
+ if (reviewers?.some(r => r.state === PullRequestReviewState.ReviewRequested)) {
389
+ return GitPullRequestReviewState.ReviewRequested;
390
+ }
391
+ else if (reviewers?.some(r => r.state === PullRequestReviewState.Commented)) {
392
+ return GitPullRequestReviewState.Commented;
393
+ }
394
+ return null;
395
+ }
396
+ }
397
+ }
398
+ export const fromPullRequestReviewDecision = {
399
+ [GitPullRequestReviewState.Approved]: PullRequestReviewDecision.Approved,
400
+ [GitPullRequestReviewState.ChangesRequested]: PullRequestReviewDecision.ChangesRequested,
401
+ [GitPullRequestReviewState.Commented]: undefined,
402
+ [GitPullRequestReviewState.ReviewRequested]: PullRequestReviewDecision.ReviewRequired,
403
+ };
404
+ export function toProviderPullRequestState(state) {
405
+ return state === 'opened'
406
+ ? GitPullRequestState.Open
407
+ : state === 'closed'
408
+ ? GitPullRequestState.Closed
409
+ : GitPullRequestState.Merged;
410
+ }
411
+ export function fromProviderPullRequestState(state) {
412
+ return state === GitPullRequestState.Open ? 'opened' : state === GitPullRequestState.Closed ? 'closed' : 'merged';
413
+ }
414
+ export function toProviderPullRequest(pr) {
415
+ const prReviews = [...(pr.reviewRequests ?? []), ...(pr.latestReviews ?? [])];
416
+ return {
417
+ id: pr.id,
418
+ graphQLId: pr.nodeId,
419
+ number: Number.parseInt(pr.id, 10),
420
+ title: pr.title,
421
+ description: null,
422
+ url: pr.url,
423
+ state: toProviderPullRequestState(pr.state),
424
+ isDraft: pr.isDraft ?? false,
425
+ createdDate: pr.createdDate,
426
+ updatedDate: pr.updatedDate,
427
+ closedDate: pr.closedDate ?? null,
428
+ mergedDate: pr.mergedDate ?? null,
429
+ commentCount: pr.commentsCount ?? null,
430
+ upvoteCount: pr.thumbsUpCount ?? null,
431
+ commitCount: null,
432
+ fileCount: null,
433
+ additions: pr.additions ?? null,
434
+ deletions: pr.deletions ?? null,
435
+ author: toProviderAccount(pr.author),
436
+ assignees: pr.assignees?.map(toProviderAccount) ?? null,
437
+ baseRef: pr.refs?.base == null
438
+ ? null
439
+ : {
440
+ name: pr.refs.base.branch,
441
+ oid: pr.refs.base.sha,
442
+ },
443
+ headRef: pr.refs?.head == null
444
+ ? null
445
+ : {
446
+ name: pr.refs.head.branch,
447
+ oid: pr.refs.head.sha,
448
+ },
449
+ reviews: toProviderReviews(prReviews),
450
+ reviewDecision: toProviderReviewDecision(pr.reviewDecision, prReviews),
451
+ repository: pr.repository != null
452
+ ? {
453
+ id: pr.repository.repo,
454
+ name: pr.repository.repo,
455
+ owner: {
456
+ login: pr.repository.owner,
457
+ },
458
+ remoteInfo: null, // TODO: Add the urls to our model
459
+ }
460
+ : {
461
+ id: '',
462
+ name: '',
463
+ owner: {
464
+ login: '',
465
+ },
466
+ remoteInfo: null,
467
+ },
468
+ headRepository: pr.refs?.head != null
469
+ ? {
470
+ id: pr.refs.head.repo,
471
+ name: pr.refs.head.repo,
472
+ owner: {
473
+ login: pr.refs.head.owner,
474
+ },
475
+ remoteInfo: null,
476
+ }
477
+ : null,
478
+ headCommit: pr.statusCheckRollupState != null
479
+ ? {
480
+ buildStatuses: [
481
+ {
482
+ completedAt: null,
483
+ description: '',
484
+ name: '',
485
+ state: toProviderBuildStatusState[pr.statusCheckRollupState],
486
+ startedAt: null,
487
+ stage: null,
488
+ url: '',
489
+ },
490
+ ],
491
+ }
492
+ : null,
493
+ permissions: pr.viewerCanUpdate == null
494
+ ? null
495
+ : {
496
+ canMerge: pr.viewerCanUpdate === true &&
497
+ pr.repository.accessLevel != null &&
498
+ pr.repository.accessLevel >= RepositoryAccessLevel.Write,
499
+ canMergeAndBypassProtections: pr.viewerCanUpdate === true &&
500
+ pr.repository.accessLevel != null &&
501
+ pr.repository.accessLevel >= RepositoryAccessLevel.Admin,
502
+ },
503
+ mergeableState: pr.mergeableState
504
+ ? toProviderPullRequestMergeableState[pr.mergeableState]
505
+ : GitPullRequestMergeableState.Unknown,
506
+ };
507
+ }
508
+ export function fromProviderPullRequest(pr, provider, options) {
509
+ return new PullRequest(provider, fromProviderAccount(pr.author), pr.id, pr.graphQLId || pr.id, pr.title, pr.url ?? '', {
510
+ owner: pr.repository.owner.login,
511
+ repo: pr.repository.name,
512
+ // This has to be here until we can take this information from ProviderPullRequest:
513
+ accessLevel: RepositoryAccessLevel.Write,
514
+ id: pr.repository.id,
515
+ }, fromProviderPullRequestState(pr.state), pr.createdDate, pr.updatedDate, pr.closedDate ?? undefined, pr.mergedDate ?? undefined, pr.mergeableState ? fromProviderPullRequestMergeableState[pr.mergeableState] : undefined, pr.permissions?.canMerge || pr.permissions?.canMergeAndBypassProtections ? true : undefined, {
516
+ base: {
517
+ branch: pr.baseRef?.name ?? '',
518
+ sha: pr.baseRef?.oid ?? '',
519
+ repo: pr.repository.name,
520
+ owner: pr.repository.owner.login,
521
+ exists: pr.baseRef != null,
522
+ url: pr.repository.remoteInfo?.cloneUrlHTTPS
523
+ ? pr.repository.remoteInfo.cloneUrlHTTPS.replace(gitSuffixRegex, '')
524
+ : '',
525
+ },
526
+ head: {
527
+ branch: pr.headRef?.name ?? '',
528
+ sha: pr.headRef?.oid ?? '',
529
+ repo: pr.headRepository?.name ?? '',
530
+ owner: pr.headRepository?.owner.login ?? '',
531
+ exists: pr.headRef != null,
532
+ url: pr.headRepository?.remoteInfo?.cloneUrlHTTPS
533
+ ? pr.headRepository.remoteInfo.cloneUrlHTTPS.replace(gitSuffixRegex, '')
534
+ : '',
535
+ },
536
+ isCrossRepository: pr.headRepository?.id !== pr.repository.id,
537
+ }, pr.isDraft, pr.additions ?? undefined, pr.deletions ?? undefined, pr.commentCount ?? undefined, pr.upvoteCount ?? undefined, pr.reviewDecision ? fromPullRequestReviewDecision[pr.reviewDecision] : undefined, toReviewRequests(pr.reviews), toCompletedReviews(pr.reviews), pr.assignees?.map(fromProviderAccount) ?? undefined, pr.headCommit?.buildStatuses?.[0]?.state
538
+ ? fromProviderBuildStatusState[pr.headCommit.buildStatuses[0].state]
539
+ : undefined, options?.project, pr.version);
540
+ }
541
+ export function fromProviderIssue(issue, integration, options) {
542
+ return new Issue(integration, issue.id, issue.graphQLId, issue.title, issue.url ?? '', issue.createdDate, issue.updatedDate ?? issue.closedDate ?? issue.createdDate, issue.closedDate != null, issue.closedDate != null ? 'closed' : 'opened', fromProviderAccount(issue.author), issue.assignees?.map(fromProviderAccount) ?? undefined, undefined, // TODO: issue repo
543
+ issue.closedDate ?? undefined, undefined, issue.commentCount ?? undefined, issue.upvoteCount ?? undefined, issue.description ?? undefined, options?.project != null
544
+ ? {
545
+ id: options.project.id,
546
+ name: options.project.name,
547
+ resourceId: options.project.resourceId,
548
+ resourceName: options.project.resourceName,
549
+ }
550
+ : issue.project?.id && issue.project?.resourceId && issue.project?.namespace
551
+ ? {
552
+ id: issue.project.id,
553
+ name: issue.project.name,
554
+ resourceId: issue.project.resourceId,
555
+ resourceName: issue.project.namespace,
556
+ }
557
+ : undefined, issue.number);
558
+ }
559
+ export function toProviderPullRequestWithUniqueId(pr) {
560
+ return {
561
+ ...toProviderPullRequest(pr),
562
+ uuid: EntityIdentifierUtils.encode(getEntityIdentifierInput(pr)),
563
+ };
564
+ }
565
+ export function toProviderAccount(account) {
566
+ return {
567
+ id: account.id ?? null,
568
+ avatarUrl: account.avatarUrl ?? null,
569
+ name: account.name ?? null,
570
+ url: account.url ?? null,
571
+ // TODO: Implement these in our own model
572
+ email: '',
573
+ username: account.name ?? null,
574
+ };
575
+ }
576
+ export function fromProviderAccount(account) {
577
+ return {
578
+ id: account?.id ?? '',
579
+ name: account?.name ?? 'unknown',
580
+ avatarUrl: account?.avatarUrl ?? undefined,
581
+ url: account?.url ?? '',
582
+ };
583
+ }
584
+ export const getActionablePullRequests = GitProviderUtils.getActionablePullRequests;
585
+ export function isGitHubDotCom(domain) {
586
+ return equalsIgnoreCase(domain, 'github.com');
587
+ }
588
+ export function isGitLabDotCom(domain) {
589
+ return equalsIgnoreCase(domain, 'gitlab.com');
590
+ }
591
+ const azureCloudDomainRegex = /^dev\.azure\.com$|\bvisualstudio\.com$/i;
592
+ export function isAzureCloudDomain(domain) {
593
+ return domain != null && azureCloudDomainRegex.test(domain);
594
+ }
595
+ const bitbucketCloudDomainRegex = /^bitbucket\.org$/i;
596
+ export function isBitbucketCloudDomain(domain) {
597
+ return domain != null && bitbucketCloudDomainRegex.test(domain);
598
+ }
599
+ export function supportsCodeSuggest(provider) {
600
+ return isGitHubDotCom(provider.domain);
601
+ }
602
+ //# sourceMappingURL=models.js.map