@gitkraken/core-gitlens 0.3.0 → 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.
- package/CHANGELOG.md +20 -1
- package/README.md +13 -10
- package/dist/git/cache.d.ts +12 -6
- package/dist/git/cache.d.ts.map +1 -1
- package/dist/git/cache.js +40 -39
- package/dist/git/cache.js.map +1 -1
- package/dist/git/context.d.ts +23 -3
- package/dist/git/context.d.ts.map +1 -1
- package/dist/git/context.js.map +1 -1
- package/dist/git/features.d.ts +1 -1
- package/dist/git/features.d.ts.map +1 -1
- package/dist/git/features.js +1 -0
- package/dist/git/features.js.map +1 -1
- package/dist/git/models/graph.d.ts +96 -0
- package/dist/git/models/graph.d.ts.map +1 -1
- package/dist/git/models/graph.js +24 -1
- package/dist/git/models/graph.js.map +1 -1
- package/dist/git/models/remoteProvider.d.ts +1 -0
- package/dist/git/models/remoteProvider.d.ts.map +1 -1
- package/dist/git/models/remoteProvider.js.map +1 -1
- package/dist/git/models/repository.d.ts +21 -12
- package/dist/git/models/repository.d.ts.map +1 -1
- package/dist/git/models/repository.js +70 -84
- package/dist/git/models/repository.js.map +1 -1
- package/dist/git/models/statusFile.d.ts +9 -0
- package/dist/git/models/statusFile.d.ts.map +1 -1
- package/dist/git/models/statusFile.js +11 -0
- package/dist/git/models/statusFile.js.map +1 -1
- package/dist/git/providers/commits.d.ts +4 -0
- package/dist/git/providers/commits.d.ts.map +1 -1
- package/dist/git/providers/config.d.ts +1 -3
- package/dist/git/providers/config.d.ts.map +1 -1
- package/dist/git/providers/operations.d.ts +40 -13
- package/dist/git/providers/operations.d.ts.map +1 -1
- package/dist/git/providers/worktrees.d.ts +2 -0
- package/dist/git/providers/worktrees.d.ts.map +1 -1
- package/dist/git/remotes/custom.d.ts +2 -0
- package/dist/git/remotes/custom.d.ts.map +1 -1
- package/dist/git/remotes/custom.js +20 -0
- package/dist/git/remotes/custom.js.map +1 -1
- package/dist/git/utils/conflictResolution.utils.d.ts +32 -0
- package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -1
- package/dist/git/utils/conflictResolution.utils.js +95 -0
- package/dist/git/utils/conflictResolution.utils.js.map +1 -1
- package/dist/git/utils/contributor.utils.d.ts +3 -0
- package/dist/git/utils/contributor.utils.d.ts.map +1 -1
- package/dist/git/utils/contributor.utils.js +22 -0
- package/dist/git/utils/contributor.utils.js.map +1 -1
- package/dist/git/utils/reachability.utils.d.ts +37 -0
- package/dist/git/utils/reachability.utils.d.ts.map +1 -0
- package/dist/git/utils/reachability.utils.js +96 -0
- package/dist/git/utils/reachability.utils.js.map +1 -0
- package/dist/git/watching/watchService.d.ts +4 -2
- package/dist/git/watching/watchService.d.ts.map +1 -1
- package/dist/git/watching/watchService.js +8 -3
- package/dist/git/watching/watchService.js.map +1 -1
- package/dist/git/watching/watchSession.d.ts +14 -12
- package/dist/git/watching/watchSession.d.ts.map +1 -1
- package/dist/git/watching/watchSession.js +56 -55
- package/dist/git/watching/watchSession.js.map +1 -1
- package/dist/git-cli/providers/branches.d.ts.map +1 -1
- package/dist/git-cli/providers/branches.js +1 -0
- package/dist/git-cli/providers/branches.js.map +1 -1
- package/dist/git-cli/providers/commits.d.ts +1 -0
- package/dist/git-cli/providers/commits.d.ts.map +1 -1
- package/dist/git-cli/providers/commits.js +12 -0
- package/dist/git-cli/providers/commits.js.map +1 -1
- package/dist/git-cli/providers/config.d.ts +8 -4
- package/dist/git-cli/providers/config.d.ts.map +1 -1
- package/dist/git-cli/providers/config.js +62 -39
- package/dist/git-cli/providers/config.js.map +1 -1
- package/dist/git-cli/providers/diff.d.ts.map +1 -1
- package/dist/git-cli/providers/diff.js +1 -1
- package/dist/git-cli/providers/diff.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts.map +1 -1
- package/dist/git-cli/providers/graph.js +132 -14
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/operations.d.ts +7 -5
- package/dist/git-cli/providers/operations.d.ts.map +1 -1
- package/dist/git-cli/providers/operations.js +118 -95
- package/dist/git-cli/providers/operations.js.map +1 -1
- package/dist/git-cli/providers/stash.d.ts.map +1 -1
- package/dist/git-cli/providers/stash.js +20 -2
- package/dist/git-cli/providers/stash.js.map +1 -1
- package/dist/git-cli/providers/status.d.ts.map +1 -1
- package/dist/git-cli/providers/status.js +5 -2
- package/dist/git-cli/providers/status.js.map +1 -1
- package/dist/git-cli/providers/worktrees.d.ts +2 -0
- package/dist/git-cli/providers/worktrees.d.ts.map +1 -1
- package/dist/git-cli/providers/worktrees.js +3 -0
- package/dist/git-cli/providers/worktrees.js.map +1 -1
- package/dist/ipc/discovery.d.ts +22 -0
- package/dist/ipc/discovery.d.ts.map +1 -1
- package/dist/ipc/discovery.js +111 -2
- package/dist/ipc/discovery.js.map +1 -1
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts +73 -20
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -1
- package/dist/plus/agents/providers/claudeCodeProvider.js +394 -88
- package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -1
- package/dist/plus/agents/types.d.ts +62 -11
- package/dist/plus/agents/types.d.ts.map +1 -1
- package/dist/plus/ai/models/model.d.ts +1 -1
- package/dist/plus/ai/models/model.d.ts.map +1 -1
- package/dist/plus/ai/models/model.js.map +1 -1
- package/dist/plus/ai/models/provider.d.ts +3 -0
- package/dist/plus/ai/models/provider.d.ts.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.js +4 -1
- package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +4 -3
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js +9 -6
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
- package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/ai.utils.js +6 -4
- package/dist/plus/ai/utils/ai.utils.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +8 -13
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +96 -14
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/providers/github/refs.js +1 -1
- package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +11 -0
- package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +1 -0
- package/dist/plus/integrations/authentication/cloudIntegrationService.js +90 -0
- package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -0
- package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +67 -0
- package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +1 -0
- package/dist/plus/integrations/authentication/configuredIntegrationService.js +295 -0
- package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -0
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +92 -0
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +1 -0
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +185 -0
- package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -0
- package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts +62 -0
- package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +1 -0
- package/dist/plus/integrations/authentication/integrationAuthenticationService.js +122 -0
- package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -0
- package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +15 -0
- package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +1 -0
- package/dist/plus/integrations/authentication/manualTokenProvider.js +49 -0
- package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -0
- package/dist/plus/integrations/authentication/models.d.ts +87 -0
- package/dist/plus/integrations/authentication/models.d.ts.map +1 -0
- package/dist/plus/integrations/authentication/models.js +64 -0
- package/dist/plus/integrations/authentication/models.js.map +1 -0
- package/dist/plus/integrations/constants.d.ts +47 -0
- package/dist/plus/integrations/constants.d.ts.map +1 -0
- package/dist/plus/integrations/constants.js +128 -0
- package/dist/plus/integrations/constants.js.map +1 -0
- package/dist/plus/integrations/context.d.ts +354 -0
- package/dist/plus/integrations/context.d.ts.map +1 -0
- package/dist/plus/integrations/context.js +2 -0
- package/dist/plus/integrations/context.js.map +1 -0
- package/dist/plus/integrations/errors.d.ts +14 -0
- package/dist/plus/integrations/errors.d.ts.map +1 -0
- package/dist/plus/integrations/errors.js +19 -0
- package/dist/plus/integrations/errors.js.map +1 -0
- package/dist/plus/integrations/index.d.ts +32 -0
- package/dist/plus/integrations/index.d.ts.map +1 -0
- package/dist/plus/integrations/index.js +62 -0
- package/dist/plus/integrations/index.js.map +1 -0
- package/dist/plus/integrations/integrationService.d.ts +98 -0
- package/dist/plus/integrations/integrationService.d.ts.map +1 -0
- package/dist/plus/integrations/integrationService.js +627 -0
- package/dist/plus/integrations/integrationService.js.map +1 -0
- package/dist/plus/integrations/models/gitHostIntegration.d.ts +82 -0
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -0
- package/dist/plus/integrations/models/gitHostIntegration.js +522 -0
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -0
- package/dist/plus/integrations/models/integration.d.ts +127 -0
- package/dist/plus/integrations/models/integration.d.ts.map +1 -0
- package/dist/plus/integrations/models/integration.js +456 -0
- package/dist/plus/integrations/models/integration.js.map +1 -0
- package/dist/plus/integrations/models/issuesIntegration.d.ts +28 -0
- package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -0
- package/dist/plus/integrations/models/issuesIntegration.js +101 -0
- package/dist/plus/integrations/models/issuesIntegration.js.map +1 -0
- package/dist/plus/integrations/providers/apiClients.d.ts +25 -0
- package/dist/plus/integrations/providers/apiClients.d.ts.map +1 -0
- package/dist/plus/integrations/providers/apiClients.js +39 -0
- package/dist/plus/integrations/providers/apiClients.js.map +1 -0
- package/dist/plus/integrations/providers/azure/azure.d.ts +47 -0
- package/dist/plus/integrations/providers/azure/azure.d.ts.map +1 -0
- package/dist/plus/integrations/providers/azure/azure.js +444 -0
- package/dist/plus/integrations/providers/azure/azure.js.map +1 -0
- package/dist/plus/integrations/providers/azure/models.d.ts +286 -0
- package/dist/plus/integrations/providers/azure/models.d.ts.map +1 -0
- package/dist/plus/integrations/providers/azure/models.js +203 -0
- package/dist/plus/integrations/providers/azure/models.js.map +1 -0
- package/dist/plus/integrations/providers/azureDevOps.d.ts +95 -0
- package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -0
- package/dist/plus/integrations/providers/azureDevOps.js +432 -0
- package/dist/plus/integrations/providers/azureDevOps.js.map +1 -0
- package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +42 -0
- package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +1 -0
- package/dist/plus/integrations/providers/bitbucket/bitbucket.js +513 -0
- package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -0
- package/dist/plus/integrations/providers/bitbucket/models.d.ts +222 -0
- package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +1 -0
- package/dist/plus/integrations/providers/bitbucket/models.js +158 -0
- package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -0
- package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +120 -0
- package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +1 -0
- package/dist/plus/integrations/providers/bitbucket-server/models.js +111 -0
- package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -0
- package/dist/plus/integrations/providers/bitbucket-server.d.ts +60 -0
- package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +1 -0
- package/dist/plus/integrations/providers/bitbucket-server.js +138 -0
- package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -0
- package/dist/plus/integrations/providers/bitbucket.d.ts +50 -0
- package/dist/plus/integrations/providers/bitbucket.d.ts.map +1 -0
- package/dist/plus/integrations/providers/bitbucket.js +181 -0
- package/dist/plus/integrations/providers/bitbucket.js.map +1 -0
- package/dist/plus/integrations/providers/github/github.d.ts +5 -0
- package/dist/plus/integrations/providers/github/github.d.ts.map +1 -0
- package/dist/plus/integrations/providers/github/github.js +47 -0
- package/dist/plus/integrations/providers/github/github.js.map +1 -0
- package/dist/plus/integrations/providers/github/github.utils.d.ts +11 -0
- package/dist/plus/integrations/providers/github/github.utils.d.ts.map +1 -0
- package/dist/plus/integrations/providers/github/github.utils.js +6 -0
- package/dist/plus/integrations/providers/github/github.utils.js.map +1 -0
- package/dist/plus/integrations/providers/github/models.d.ts +3 -0
- package/dist/plus/integrations/providers/github/models.d.ts.map +1 -0
- package/dist/plus/integrations/providers/github/models.js +2 -0
- package/dist/plus/integrations/providers/github/models.js.map +1 -0
- package/dist/plus/integrations/providers/github.d.ts +73 -0
- package/dist/plus/integrations/providers/github.d.ts.map +1 -0
- package/dist/plus/integrations/providers/github.js +160 -0
- package/dist/plus/integrations/providers/github.js.map +1 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +63 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +1 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.js +828 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +21 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +1 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +45 -0
- package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -0
- package/dist/plus/integrations/providers/gitlab/models.d.ts +128 -0
- package/dist/plus/integrations/providers/gitlab/models.d.ts.map +1 -0
- package/dist/plus/integrations/providers/gitlab/models.js +96 -0
- package/dist/plus/integrations/providers/gitlab/models.js.map +1 -0
- package/dist/plus/integrations/providers/gitlab.d.ts +79 -0
- package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -0
- package/dist/plus/integrations/providers/gitlab.js +253 -0
- package/dist/plus/integrations/providers/gitlab.js.map +1 -0
- package/dist/plus/integrations/providers/jira.d.ts +46 -0
- package/dist/plus/integrations/providers/jira.d.ts.map +1 -0
- package/dist/plus/integrations/providers/jira.js +255 -0
- package/dist/plus/integrations/providers/jira.js.map +1 -0
- package/dist/plus/integrations/providers/linear.d.ts +47 -0
- package/dist/plus/integrations/providers/linear.d.ts.map +1 -0
- package/dist/plus/integrations/providers/linear.js +198 -0
- package/dist/plus/integrations/providers/linear.js.map +1 -0
- package/dist/plus/integrations/providers/models.d.ts +433 -0
- package/dist/plus/integrations/providers/models.d.ts.map +1 -0
- package/dist/plus/integrations/providers/models.js +602 -0
- package/dist/plus/integrations/providers/models.js.map +1 -0
- package/dist/plus/integrations/providers/providersApi.d.ts +129 -0
- package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -0
- package/dist/plus/integrations/providers/providersApi.js +602 -0
- package/dist/plus/integrations/providers/providersApi.js.map +1 -0
- package/dist/plus/integrations/providers/utils.d.ts +54 -0
- package/dist/plus/integrations/providers/utils.d.ts.map +1 -0
- package/dist/plus/integrations/providers/utils.js +262 -0
- package/dist/plus/integrations/providers/utils.js.map +1 -0
- package/dist/plus/integrations/telemetry.d.ts +26 -0
- package/dist/plus/integrations/telemetry.d.ts.map +1 -0
- package/dist/plus/integrations/telemetry.js +11 -0
- package/dist/plus/integrations/telemetry.js.map +1 -0
- package/dist/plus/integrations/utils/integration.utils.d.ts +14 -0
- package/dist/plus/integrations/utils/integration.utils.d.ts.map +1 -0
- package/dist/plus/integrations/utils/integration.utils.js +111 -0
- package/dist/plus/integrations/utils/integration.utils.js.map +1 -0
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +6 -0
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/debounce.js +1 -1
- package/dist/utils/disposable.d.ts +15 -2
- package/dist/utils/disposable.d.ts.map +1 -1
- package/dist/utils/disposable.js.map +1 -1
- package/dist/utils/iterable.d.ts +7 -1
- package/dist/utils/iterable.d.ts.map +1 -1
- package/dist/utils/iterable.js +12 -4
- package/dist/utils/iterable.js.map +1 -1
- package/dist/utils/object.d.ts +22 -1
- package/dist/utils/object.d.ts.map +1 -1
- package/dist/utils/object.js +56 -3
- package/dist/utils/object.js.map +1 -1
- package/dist/utils/paging.js +14 -15
- package/dist/utils/paging.js.map +1 -1
- package/dist/utils/promiseCache.d.ts.map +1 -1
- package/dist/utils/promiseCache.js +12 -4
- package/dist/utils/promiseCache.js.map +1 -1
- package/dist/utils/string.js +1 -1
- package/package.json +43 -2
- package/src/git/cache.ts +58 -70
- package/src/git/context.ts +25 -3
- package/src/git/features.ts +2 -0
- package/src/git/models/graph.ts +97 -0
- package/src/git/models/remoteProvider.ts +1 -0
- package/src/git/models/repository.ts +84 -93
- package/src/git/models/statusFile.ts +12 -0
- package/src/git/providers/commits.ts +4 -0
- package/src/git/providers/config.ts +1 -5
- package/src/git/providers/operations.ts +42 -22
- package/src/git/providers/worktrees.ts +14 -2
- package/src/git/remotes/custom.ts +23 -0
- package/src/git/utils/conflictResolution.utils.ts +126 -0
- package/src/git/utils/contributor.utils.ts +24 -0
- package/src/git/utils/reachability.utils.ts +109 -0
- package/src/git/watching/watchService.ts +9 -4
- package/src/git/watching/watchSession.ts +61 -55
- package/src/git-cli/providers/branches.ts +1 -0
- package/src/git-cli/providers/commits.ts +24 -0
- package/src/git-cli/providers/config.ts +63 -49
- package/src/git-cli/providers/diff.ts +2 -1
- package/src/git-cli/providers/graph.ts +145 -14
- package/src/git-cli/providers/operations.ts +138 -130
- package/src/git-cli/providers/stash.ts +20 -2
- package/src/git-cli/providers/status.ts +11 -3
- package/src/git-cli/providers/worktrees.ts +17 -2
- package/src/ipc/discovery.ts +132 -2
- package/src/plus/agents/providers/claudeCodeProvider.ts +430 -90
- package/src/plus/agents/types.ts +59 -11
- package/src/plus/ai/models/model.ts +1 -0
- package/src/plus/ai/models/provider.ts +7 -1
- package/src/plus/ai/providers/gitkrakenProvider.ts +4 -0
- package/src/plus/ai/providers/openAICompatibleProviderBase.ts +21 -4
- package/src/plus/ai/utils/ai.utils.ts +6 -4
- package/src/plus/git-github/api/github.ts +131 -31
- package/src/plus/git-github/providers/github/refs.ts +1 -1
- package/src/plus/integrations/authentication/cloudIntegrationService.ts +120 -0
- package/src/plus/integrations/authentication/configuredIntegrationService.ts +414 -0
- package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +289 -0
- package/src/plus/integrations/authentication/integrationAuthenticationService.ts +144 -0
- package/src/plus/integrations/authentication/manualTokenProvider.ts +72 -0
- package/src/plus/integrations/authentication/models.ts +168 -0
- package/src/plus/integrations/constants.ts +169 -0
- package/src/plus/integrations/context.ts +383 -0
- package/src/plus/integrations/errors.ts +35 -0
- package/src/plus/integrations/index.ts +119 -0
- package/src/plus/integrations/integrationService.ts +924 -0
- package/src/plus/integrations/models/gitHostIntegration.ts +738 -0
- package/src/plus/integrations/models/integration.ts +657 -0
- package/src/plus/integrations/models/issuesIntegration.ts +124 -0
- package/src/plus/integrations/providers/apiClients.ts +72 -0
- package/src/plus/integrations/providers/azure/azure.ts +691 -0
- package/src/plus/integrations/providers/azure/models.ts +605 -0
- package/src/plus/integrations/providers/azureDevOps.ts +677 -0
- package/src/plus/integrations/providers/bitbucket/bitbucket.ts +774 -0
- package/src/plus/integrations/providers/bitbucket/models.ts +445 -0
- package/src/plus/integrations/providers/bitbucket-server/models.ts +252 -0
- package/src/plus/integrations/providers/bitbucket-server.ts +282 -0
- package/src/plus/integrations/providers/bitbucket.ts +350 -0
- package/src/plus/integrations/providers/github/github.ts +64 -0
- package/src/plus/integrations/providers/github/github.utils.ts +23 -0
- package/src/plus/integrations/providers/github/models.ts +29 -0
- package/src/plus/integrations/providers/github.ts +366 -0
- package/src/plus/integrations/providers/gitlab/gitlab.ts +1210 -0
- package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +71 -0
- package/src/plus/integrations/providers/gitlab/models.ts +257 -0
- package/src/plus/integrations/providers/gitlab.ts +473 -0
- package/src/plus/integrations/providers/jira.ts +359 -0
- package/src/plus/integrations/providers/linear.ts +275 -0
- package/src/plus/integrations/providers/models.ts +1114 -0
- package/src/plus/integrations/providers/providersApi.ts +1126 -0
- package/src/plus/integrations/providers/utils.ts +359 -0
- package/src/plus/integrations/telemetry.ts +29 -0
- package/src/plus/integrations/utils/integration.utils.ts +138 -0
- package/src/utils/date.ts +5 -0
- package/src/utils/debounce.ts +1 -1
- package/src/utils/disposable.ts +15 -2
- package/src/utils/iterable.ts +14 -3
- package/src/utils/object.ts +55 -4
- package/src/utils/paging.ts +14 -14
- package/src/utils/promiseCache.ts +24 -16
- package/src/utils/string.ts +1 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { GitRemote } from '../../../git/models/remote.js';
|
|
2
|
+
import type { Disposable } from '../../../utils/disposable.js';
|
|
3
|
+
import type { IntegrationIds, SupportedCloudIntegrationIds } from '../constants.js';
|
|
4
|
+
import type { IntegrationServiceContext } from '../context.js';
|
|
5
|
+
import type { IntegrationService } from '../integrationService.js';
|
|
6
|
+
import type { GitHostIntegration } from '../models/gitHostIntegration.js';
|
|
7
|
+
import type { ApiClients } from '../providers/apiClients.js';
|
|
8
|
+
import type { Source } from '../telemetry.js';
|
|
9
|
+
import type { CloudIntegrationService } from './cloudIntegrationService.js';
|
|
10
|
+
import type { ConfiguredIntegrationService } from './configuredIntegrationService.js';
|
|
11
|
+
import type { IntegrationAuthenticationProvider } from './integrationAuthenticationProvider.js';
|
|
12
|
+
export declare class IntegrationAuthenticationService implements Disposable {
|
|
13
|
+
private readonly configuredIntegrationService;
|
|
14
|
+
readonly ctx: IntegrationServiceContext;
|
|
15
|
+
/**
|
|
16
|
+
* Lazy accessor for the owning {@link IntegrationService}. Injected by the composition root
|
|
17
|
+
* ({@link createIntegrationManager}) to break the auth↔service construction cycle without a
|
|
18
|
+
* mutable setter or a host round-trip; only resolved at runtime (long after construction).
|
|
19
|
+
*/
|
|
20
|
+
private readonly getIntegrationService;
|
|
21
|
+
/** The package's cloud token-exchange client, constructed by the composition root. */
|
|
22
|
+
readonly cloudIntegrations: CloudIntegrationService;
|
|
23
|
+
private readonly providers;
|
|
24
|
+
constructor(configuredIntegrationService: ConfiguredIntegrationService, ctx: IntegrationServiceContext,
|
|
25
|
+
/**
|
|
26
|
+
* Lazy accessor for the owning {@link IntegrationService}. Injected by the composition root
|
|
27
|
+
* ({@link createIntegrationManager}) to break the auth↔service construction cycle without a
|
|
28
|
+
* mutable setter or a host round-trip; only resolved at runtime (long after construction).
|
|
29
|
+
*/
|
|
30
|
+
getIntegrationService: () => IntegrationService,
|
|
31
|
+
/** The package's cloud token-exchange client, constructed by the composition root. */
|
|
32
|
+
cloudIntegrations: CloudIntegrationService);
|
|
33
|
+
dispose(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Initiates the cloud-integration connect flow on the owning service. Cloud auth providers call
|
|
36
|
+
* this when they need a session that doesn't exist yet (see
|
|
37
|
+
* {@link CloudIntegrationAuthenticationProvider}).
|
|
38
|
+
*/
|
|
39
|
+
connectCloudIntegrations(connect: {
|
|
40
|
+
integrationIds: SupportedCloudIntegrationIds[];
|
|
41
|
+
skipIfConnected?: boolean;
|
|
42
|
+
skipPreSync?: boolean;
|
|
43
|
+
}, source?: Source): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Resolves the connected git-host integration for a `GitRemote`, via the owning service. Lets
|
|
46
|
+
* package-internal callers (e.g. the Bitbucket provider) resolve a remote's integration without a
|
|
47
|
+
* host round-trip.
|
|
48
|
+
*/
|
|
49
|
+
getByRemote(remote: GitRemote): Promise<GitHostIntegration | undefined>;
|
|
50
|
+
/** Resolves the per-integration `ignoreSSLErrors` flag via the owning service (host-config-backed). */
|
|
51
|
+
ignoreSSLErrors(integration: GitHostIntegration | {
|
|
52
|
+
id: IntegrationIds;
|
|
53
|
+
domain?: string;
|
|
54
|
+
}): boolean | 'force';
|
|
55
|
+
/** The package-built per-provider API clients, via the owning service (built once + memoized there). */
|
|
56
|
+
get apis(): ApiClients;
|
|
57
|
+
get(providerId: IntegrationIds): Promise<IntegrationAuthenticationProvider>;
|
|
58
|
+
reset(): Promise<void>;
|
|
59
|
+
supports(providerId: string): boolean;
|
|
60
|
+
private ensureProvider;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=integrationAuthenticationService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrationAuthenticationService.d.ts","sourceRoot":"","sources":["../../src/authentication/integrationAuthenticationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAMpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAGhG,qBAAa,gCAAiC,YAAW,UAAU;IAIjE,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAC7C,QAAQ,CAAC,GAAG,EAAE,yBAAyB;IACvC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,sFAAsF;IACtF,QAAQ,CAAC,iBAAiB,EAAE,uBAAuB;IAZpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgE;gBAGxE,4BAA4B,EAAE,4BAA4B,EAClE,GAAG,EAAE,yBAAyB;IACvC;;;;OAIG;IACc,qBAAqB,EAAE,MAAM,kBAAkB;IAChE,sFAAsF;IAC7E,iBAAiB,EAAE,uBAAuB;IAGpD,OAAO,IAAI,IAAI;IAKf;;;;OAIG;IACH,wBAAwB,CACvB,OAAO,EAAE;QAAE,cAAc,EAAE,4BAA4B,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,EAC7G,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC;IAInB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAIvE,uGAAuG;IACvG,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,GAAG,OAAO;IAI7G,wGAAwG;IACxG,IAAI,IAAI,IAAI,UAAU,CAErB;IAEK,GAAG,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAK3E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;YAevB,cAAc;CAyC5B"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { gate } from '../../../utils/decorators/gate.js';
|
|
8
|
+
import { debug } from '../../../utils/decorators/log.js';
|
|
9
|
+
import { GitCloudHostIntegrationId, GitSelfManagedHostIntegrationId, IssuesCloudHostIntegrationId, } from '../constants.js';
|
|
10
|
+
import { supportedIntegrationIds } from '../utils/integration.utils.js';
|
|
11
|
+
import { CloudIntegrationAuthenticationProvider } from './integrationAuthenticationProvider.js';
|
|
12
|
+
export class IntegrationAuthenticationService {
|
|
13
|
+
configuredIntegrationService;
|
|
14
|
+
ctx;
|
|
15
|
+
getIntegrationService;
|
|
16
|
+
cloudIntegrations;
|
|
17
|
+
providers = new Map();
|
|
18
|
+
constructor(configuredIntegrationService, ctx,
|
|
19
|
+
/**
|
|
20
|
+
* Lazy accessor for the owning {@link IntegrationService}. Injected by the composition root
|
|
21
|
+
* ({@link createIntegrationManager}) to break the auth↔service construction cycle without a
|
|
22
|
+
* mutable setter or a host round-trip; only resolved at runtime (long after construction).
|
|
23
|
+
*/
|
|
24
|
+
getIntegrationService,
|
|
25
|
+
/** The package's cloud token-exchange client, constructed by the composition root. */
|
|
26
|
+
cloudIntegrations) {
|
|
27
|
+
this.configuredIntegrationService = configuredIntegrationService;
|
|
28
|
+
this.ctx = ctx;
|
|
29
|
+
this.getIntegrationService = getIntegrationService;
|
|
30
|
+
this.cloudIntegrations = cloudIntegrations;
|
|
31
|
+
}
|
|
32
|
+
dispose() {
|
|
33
|
+
this.providers.forEach(p => p.dispose());
|
|
34
|
+
this.providers.clear();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Initiates the cloud-integration connect flow on the owning service. Cloud auth providers call
|
|
38
|
+
* this when they need a session that doesn't exist yet (see
|
|
39
|
+
* {@link CloudIntegrationAuthenticationProvider}).
|
|
40
|
+
*/
|
|
41
|
+
connectCloudIntegrations(connect, source) {
|
|
42
|
+
return this.getIntegrationService().connectCloudIntegrations(connect, source);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Resolves the connected git-host integration for a `GitRemote`, via the owning service. Lets
|
|
46
|
+
* package-internal callers (e.g. the Bitbucket provider) resolve a remote's integration without a
|
|
47
|
+
* host round-trip.
|
|
48
|
+
*/
|
|
49
|
+
getByRemote(remote) {
|
|
50
|
+
return this.getIntegrationService().getByRemote(remote);
|
|
51
|
+
}
|
|
52
|
+
/** Resolves the per-integration `ignoreSSLErrors` flag via the owning service (host-config-backed). */
|
|
53
|
+
ignoreSSLErrors(integration) {
|
|
54
|
+
return this.getIntegrationService().ignoreSSLErrors(integration);
|
|
55
|
+
}
|
|
56
|
+
/** The package-built per-provider API clients, via the owning service (built once + memoized there). */
|
|
57
|
+
get apis() {
|
|
58
|
+
return this.getIntegrationService().apis;
|
|
59
|
+
}
|
|
60
|
+
async get(providerId) {
|
|
61
|
+
return this.ensureProvider(providerId);
|
|
62
|
+
}
|
|
63
|
+
async reset() {
|
|
64
|
+
// TODO: This really isn't ideal, since it will only work for "cloud" providers as we won't have any more specific descriptors
|
|
65
|
+
await Promise.allSettled(supportedIntegrationIds.map(async (providerId) => (await this.ensureProvider(providerId)).deleteAllSessions()));
|
|
66
|
+
}
|
|
67
|
+
supports(providerId) {
|
|
68
|
+
switch (providerId) {
|
|
69
|
+
case GitCloudHostIntegrationId.AzureDevOps:
|
|
70
|
+
case GitSelfManagedHostIntegrationId.AzureDevOpsServer:
|
|
71
|
+
case GitCloudHostIntegrationId.Bitbucket:
|
|
72
|
+
case GitCloudHostIntegrationId.GitLab:
|
|
73
|
+
case IssuesCloudHostIntegrationId.Jira:
|
|
74
|
+
case GitCloudHostIntegrationId.GitHub:
|
|
75
|
+
return true;
|
|
76
|
+
default:
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async ensureProvider(providerId) {
|
|
81
|
+
let provider = this.providers.get(providerId);
|
|
82
|
+
if (provider != null)
|
|
83
|
+
return provider;
|
|
84
|
+
// Optional consumer override for custom auth (e.g. a manual-token provider). GitLens omits it —
|
|
85
|
+
// the package constructs its own cloud providers below (so GitLens's cloud auth needs no host hook).
|
|
86
|
+
const hostProvider = await this.ctx.hooks?.createAuthenticationProvider?.({
|
|
87
|
+
id: providerId,
|
|
88
|
+
auth: this,
|
|
89
|
+
configured: this.configuredIntegrationService,
|
|
90
|
+
});
|
|
91
|
+
if (hostProvider != null) {
|
|
92
|
+
this.providers.set(providerId, hostProvider);
|
|
93
|
+
return hostProvider;
|
|
94
|
+
}
|
|
95
|
+
// Every cloud integration shares one provider, parameterized by id (cloud-only).
|
|
96
|
+
switch (providerId) {
|
|
97
|
+
case GitCloudHostIntegrationId.GitHub:
|
|
98
|
+
case GitSelfManagedHostIntegrationId.CloudGitHubEnterprise:
|
|
99
|
+
case GitCloudHostIntegrationId.GitLab:
|
|
100
|
+
case GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted:
|
|
101
|
+
case GitCloudHostIntegrationId.AzureDevOps:
|
|
102
|
+
case GitSelfManagedHostIntegrationId.AzureDevOpsServer:
|
|
103
|
+
case GitCloudHostIntegrationId.Bitbucket:
|
|
104
|
+
case GitSelfManagedHostIntegrationId.BitbucketServer:
|
|
105
|
+
case IssuesCloudHostIntegrationId.Jira:
|
|
106
|
+
case IssuesCloudHostIntegrationId.Linear:
|
|
107
|
+
provider = new CloudIntegrationAuthenticationProvider(this, this.configuredIntegrationService, providerId);
|
|
108
|
+
break;
|
|
109
|
+
default:
|
|
110
|
+
throw new Error(`No authentication provider registered for integration '${providerId}'`);
|
|
111
|
+
}
|
|
112
|
+
this.providers.set(providerId, provider);
|
|
113
|
+
return provider;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
__decorate([
|
|
117
|
+
debug()
|
|
118
|
+
], IntegrationAuthenticationService.prototype, "reset", null);
|
|
119
|
+
__decorate([
|
|
120
|
+
gate()
|
|
121
|
+
], IntegrationAuthenticationService.prototype, "ensureProvider", null);
|
|
122
|
+
//# sourceMappingURL=integrationAuthenticationService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrationAuthenticationService.js","sourceRoot":"","sources":["../../src/authentication/integrationAuthenticationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { IntegrationIds } from '../constants.js';
|
|
2
|
+
import type { IntegrationAuthenticationProvider } from './integrationAuthenticationProvider.js';
|
|
3
|
+
export interface ManualTokenAuthProviderOptions {
|
|
4
|
+
readonly id: IntegrationIds;
|
|
5
|
+
readonly token: string;
|
|
6
|
+
readonly account: {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly label: string;
|
|
9
|
+
};
|
|
10
|
+
readonly scopes?: readonly string[];
|
|
11
|
+
readonly domain?: string;
|
|
12
|
+
readonly cloud?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function createManualTokenAuthProvider(options: ManualTokenAuthProviderOptions): IntegrationAuthenticationProvider;
|
|
15
|
+
//# sourceMappingURL=manualTokenProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manualTokenProvider.d.ts","sourceRoot":"","sources":["../../src/authentication/manualTokenProvider.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACX,iCAAiC,EAEjC,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,8BAA8B,GACrC,iCAAiC,CA4BnC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Convenience for "manual token" auth — when a consumer already has an access
|
|
2
|
+
// token (CLI flag, env var, secret manager) and just wants the package to use
|
|
3
|
+
// it without an OAuth dance. Wire it into the manager via the
|
|
4
|
+
// `createAuthenticationProvider` hook:
|
|
5
|
+
//
|
|
6
|
+
// const manager = createIntegrationManager({
|
|
7
|
+
// ...runtime,
|
|
8
|
+
// hooks: {
|
|
9
|
+
// createAuthenticationProvider: async ({ id }) =>
|
|
10
|
+
// id === GitCloudHostIntegrationId.GitHub
|
|
11
|
+
// ? createManualTokenAuthProvider({
|
|
12
|
+
// id: id,
|
|
13
|
+
// token: process.env.GITHUB_TOKEN!,
|
|
14
|
+
// account: { id: 'me', label: 'CLI Token' },
|
|
15
|
+
// })
|
|
16
|
+
// : undefined,
|
|
17
|
+
// },
|
|
18
|
+
// });
|
|
19
|
+
//
|
|
20
|
+
// The provider is intentionally minimal — sessions are non-cancellable, never
|
|
21
|
+
// expire, and persist for the lifetime of the manager. For OAuth flows or
|
|
22
|
+
// refreshable tokens, implement `IntegrationAuthenticationProvider` yourself.
|
|
23
|
+
import { Emitter } from '../../../utils/event.js';
|
|
24
|
+
export function createManualTokenAuthProvider(options) {
|
|
25
|
+
const onDidChange = new Emitter();
|
|
26
|
+
const session = {
|
|
27
|
+
id: `manual:${options.id}`,
|
|
28
|
+
accessToken: options.token,
|
|
29
|
+
account: options.account,
|
|
30
|
+
scopes: options.scopes ?? [],
|
|
31
|
+
cloud: options.cloud ?? true,
|
|
32
|
+
type: undefined,
|
|
33
|
+
domain: options.domain ?? '',
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
get onDidChange() {
|
|
37
|
+
return onDidChange.event;
|
|
38
|
+
},
|
|
39
|
+
getSession: (_descriptor, options) =>
|
|
40
|
+
// A manual token can't be refreshed; on a forced new session, fail safe by returning undefined
|
|
41
|
+
// rather than handing back the same (likely-rejected) token, which would loop a caller's
|
|
42
|
+
// reauthenticate-on-failure flow.
|
|
43
|
+
Promise.resolve(options?.forceNewSession ? undefined : session),
|
|
44
|
+
deleteSession: () => Promise.resolve(),
|
|
45
|
+
deleteAllSessions: () => Promise.resolve(),
|
|
46
|
+
dispose: () => onDidChange.dispose(),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=manualTokenProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manualTokenProvider.js","sourceRoot":"","sources":["../../src/authentication/manualTokenProvider.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,8DAA8D;AAC9D,uCAAuC;AACvC,EAAE;AACF,+CAA+C;AAC/C,oBAAoB;AACpB,iBAAiB;AACjB,4DAA4D;AAC5D,wDAAwD;AACxD,sDAAsD;AACtD,kCAAkC;AAClC,4DAA4D;AAC5D,qEAAqE;AACrE,yBAAyB;AACzB,iCAAiC;AACjC,WAAW;AACX,QAAQ;AACR,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAG9E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAiBlD,MAAM,UAAU,6BAA6B,CAC5C,OAAuC;IAEvC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;IACxC,MAAM,OAAO,GAAkC;QAC9C,EAAE,EAAE,UAAU,OAAO,CAAC,EAAE,EAAE;QAC1B,WAAW,EAAE,OAAO,CAAC,KAAK;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;QAC5B,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;KAC5B,CAAC;IAEF,OAAO;QACN,IAAI,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,UAAU,EAAE,CACX,WAAuD,EACvD,OAAwE,EACvE,EAAE;QACH,+FAA+F;QAC/F,yFAAyF;QACzF,kCAAkC;QAClC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;QACtC,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;QAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE;KACpC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { IntegrationIds, SupportedCloudIntegrationIds } from '../constants.js';
|
|
2
|
+
import { IssuesCloudHostIntegrationId } from '../constants.js';
|
|
3
|
+
/**
|
|
4
|
+
* Mirrors the shape of `vscode.AuthenticationSession` so the integrations
|
|
5
|
+
* package can stay vscode-free. Host adapters bridge VS Code sessions to
|
|
6
|
+
* this shape via {@link AuthenticationProvider}.
|
|
7
|
+
*/
|
|
8
|
+
export interface AuthenticationSessionLike {
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly accessToken: string;
|
|
11
|
+
readonly account: {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly label: string;
|
|
14
|
+
};
|
|
15
|
+
readonly scopes: readonly string[];
|
|
16
|
+
}
|
|
17
|
+
export interface ProviderAuthenticationSession extends AuthenticationSessionLike {
|
|
18
|
+
readonly cloud: boolean;
|
|
19
|
+
readonly type: CloudIntegrationAuthType | undefined;
|
|
20
|
+
readonly expiresAt?: Date;
|
|
21
|
+
readonly domain: string;
|
|
22
|
+
readonly protocol?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface TokenInfo<T extends IntegrationIds | 'gitkraken' = IntegrationIds | 'gitkraken'> {
|
|
25
|
+
readonly providerId: T;
|
|
26
|
+
/**
|
|
27
|
+
* The first 3 characters of the md5 hash of the token.
|
|
28
|
+
* It's a very obfuscated representation of the token that we can use in logs
|
|
29
|
+
* to see whether the token survives refreshing or gets updated.
|
|
30
|
+
*/
|
|
31
|
+
readonly microHash: string | undefined;
|
|
32
|
+
readonly cloud: boolean;
|
|
33
|
+
readonly type: CloudIntegrationAuthType | undefined;
|
|
34
|
+
readonly scopes: readonly string[] | undefined;
|
|
35
|
+
readonly expiresAt?: Date;
|
|
36
|
+
}
|
|
37
|
+
export interface TokenWithInfo<T extends IntegrationIds = IntegrationIds> extends TokenInfo<T> {
|
|
38
|
+
readonly accessToken: string;
|
|
39
|
+
}
|
|
40
|
+
export declare function toTokenInfo<T extends IntegrationIds | 'gitkraken'>(providerId: T, accessToken: string | undefined, info: {
|
|
41
|
+
cloud: boolean;
|
|
42
|
+
type: CloudIntegrationAuthType | undefined;
|
|
43
|
+
scopes?: readonly string[];
|
|
44
|
+
expiresAt?: Date;
|
|
45
|
+
}): TokenInfo<T>;
|
|
46
|
+
export declare function toTokenWithInfo<T extends IntegrationIds>(providerId: T, session: ProviderAuthenticationSession, altToken?: string): TokenWithInfo<T>;
|
|
47
|
+
export type TokenOptInfo<T extends IntegrationIds = IntegrationIds> = TokenWithInfo<T> | {
|
|
48
|
+
providerId: T;
|
|
49
|
+
accessToken?: undefined;
|
|
50
|
+
};
|
|
51
|
+
export interface ConfiguredIntegrationDescriptor {
|
|
52
|
+
readonly cloud: boolean;
|
|
53
|
+
readonly integrationId: IntegrationIds;
|
|
54
|
+
readonly scopes: string;
|
|
55
|
+
readonly domain?: string;
|
|
56
|
+
readonly expiresAt?: string | Date;
|
|
57
|
+
}
|
|
58
|
+
export interface CloudIntegrationAuthenticationSession {
|
|
59
|
+
type: CloudIntegrationAuthType;
|
|
60
|
+
accessToken: string;
|
|
61
|
+
domain: string;
|
|
62
|
+
expiresIn: number;
|
|
63
|
+
scopes: string;
|
|
64
|
+
}
|
|
65
|
+
export interface CloudIntegrationAuthorization {
|
|
66
|
+
url: string;
|
|
67
|
+
}
|
|
68
|
+
export interface CloudIntegrationConnection {
|
|
69
|
+
type: CloudIntegrationAuthType;
|
|
70
|
+
provider: CloudIntegrationType;
|
|
71
|
+
domain: string;
|
|
72
|
+
}
|
|
73
|
+
export type CloudIntegrationType = 'jira' | 'linear' | 'trello' | 'gitlab' | 'github' | 'bitbucket' | 'bitbucketServer' | 'azure' | 'azureDevopsServer' | 'githubEnterprise' | 'gitlabSelfHosted';
|
|
74
|
+
export type CloudIntegrationAuthType = 'oauth' | 'pat';
|
|
75
|
+
export declare const CloudIntegrationAuthenticationUriPathPrefix = "did-authenticate-cloud-integration";
|
|
76
|
+
/** Returns all supported cloud integration ids. */
|
|
77
|
+
export declare function getSupportedCloudIntegrationIds(): readonly SupportedCloudIntegrationIds[];
|
|
78
|
+
/** Whether `id` is a supported cloud integration id. */
|
|
79
|
+
export declare function isSupportedCloudIntegrationId(id: string): id is SupportedCloudIntegrationIds;
|
|
80
|
+
export declare function isIssueCloudIntegrationId(id: string): id is IssuesCloudHostIntegrationId;
|
|
81
|
+
export declare const toIntegrationId: {
|
|
82
|
+
[key in CloudIntegrationType]: IntegrationIds;
|
|
83
|
+
};
|
|
84
|
+
export declare const toCloudIntegrationType: {
|
|
85
|
+
[key in IntegrationIds]: CloudIntegrationType | undefined;
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/authentication/models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAGN,4BAA4B,EAE5B,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW;IAC/F,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC7F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,cAAc,GAAG,WAAW,EACjE,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,IAAI,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,GAChH,SAAS,CAAC,CAAC,CAAC,CASd;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,cAAc,EACvD,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,6BAA6B,EACtC,QAAQ,CAAC,EAAE,MAAM,GACf,aAAa,CAAC,CAAC,CAAC,CASlB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAC/D,aAAa,CAAC,CAAC,CAAC,GAChB;IAAE,UAAU,EAAE,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE9C,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,qCAAqC;IACrD,IAAI,EAAE,wBAAwB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,6BAA6B;IAC7C,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oBAAoB,GAC7B,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,KAAK,CAAC;AAEvD,eAAO,MAAM,2CAA2C,uCAAuC,CAAC;AAEhG,mDAAmD;AACnD,wBAAgB,+BAA+B,IAAI,SAAS,4BAA4B,EAAE,CAIzF;AAED,wDAAwD;AACxD,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,4BAA4B,CAE5F;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,4BAA4B,CAGxF;AAED,eAAO,MAAM,eAAe,EAAE;KAAG,GAAG,IAAI,oBAAoB,GAAG,cAAc;CAY5E,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE;KAAG,GAAG,IAAI,cAAc,GAAG,oBAAoB,GAAG,SAAS;CAY/F,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { microhash } from '../../../utils/hash.js';
|
|
2
|
+
import { GitCloudHostIntegrationId, GitSelfManagedHostIntegrationId, IssuesCloudHostIntegrationId, supportedOrderedCloudIntegrationIds, } from '../constants.js';
|
|
3
|
+
export function toTokenInfo(providerId, accessToken, info) {
|
|
4
|
+
return {
|
|
5
|
+
providerId: providerId,
|
|
6
|
+
microHash: microhash(accessToken, 3),
|
|
7
|
+
cloud: info.cloud,
|
|
8
|
+
type: info.type,
|
|
9
|
+
scopes: info.scopes,
|
|
10
|
+
expiresAt: info.expiresAt,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function toTokenWithInfo(providerId, session, altToken) {
|
|
14
|
+
const { accessToken: sessionToken, ...sessionInfo } = session;
|
|
15
|
+
const accessToken = altToken ?? session.accessToken;
|
|
16
|
+
return {
|
|
17
|
+
// pass original token info to form the correlated microhash
|
|
18
|
+
...toTokenInfo(providerId, sessionToken, sessionInfo),
|
|
19
|
+
// use the actual token used for the request
|
|
20
|
+
accessToken: accessToken,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export const CloudIntegrationAuthenticationUriPathPrefix = 'did-authenticate-cloud-integration';
|
|
24
|
+
/** Returns all supported cloud integration ids. */
|
|
25
|
+
export function getSupportedCloudIntegrationIds() {
|
|
26
|
+
// Return the shared const directly (readonly so callers can't mutate it) — this runs on hot,
|
|
27
|
+
// per-integration membership paths, so avoid allocating a fresh array per call.
|
|
28
|
+
return supportedOrderedCloudIntegrationIds;
|
|
29
|
+
}
|
|
30
|
+
/** Whether `id` is a supported cloud integration id. */
|
|
31
|
+
export function isSupportedCloudIntegrationId(id) {
|
|
32
|
+
return getSupportedCloudIntegrationIds().includes(id);
|
|
33
|
+
}
|
|
34
|
+
export function isIssueCloudIntegrationId(id) {
|
|
35
|
+
const issueIds = Object.values(IssuesCloudHostIntegrationId);
|
|
36
|
+
return issueIds.includes(id);
|
|
37
|
+
}
|
|
38
|
+
export const toIntegrationId = {
|
|
39
|
+
jira: IssuesCloudHostIntegrationId.Jira,
|
|
40
|
+
linear: IssuesCloudHostIntegrationId.Linear,
|
|
41
|
+
trello: IssuesCloudHostIntegrationId.Trello,
|
|
42
|
+
gitlab: GitCloudHostIntegrationId.GitLab,
|
|
43
|
+
github: GitCloudHostIntegrationId.GitHub,
|
|
44
|
+
githubEnterprise: GitSelfManagedHostIntegrationId.CloudGitHubEnterprise,
|
|
45
|
+
gitlabSelfHosted: GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted,
|
|
46
|
+
bitbucket: GitCloudHostIntegrationId.Bitbucket,
|
|
47
|
+
bitbucketServer: GitSelfManagedHostIntegrationId.BitbucketServer,
|
|
48
|
+
azure: GitCloudHostIntegrationId.AzureDevOps,
|
|
49
|
+
azureDevopsServer: GitSelfManagedHostIntegrationId.AzureDevOpsServer,
|
|
50
|
+
};
|
|
51
|
+
export const toCloudIntegrationType = {
|
|
52
|
+
[IssuesCloudHostIntegrationId.Jira]: 'jira',
|
|
53
|
+
[IssuesCloudHostIntegrationId.Linear]: 'linear',
|
|
54
|
+
[IssuesCloudHostIntegrationId.Trello]: 'trello',
|
|
55
|
+
[GitCloudHostIntegrationId.GitLab]: 'gitlab',
|
|
56
|
+
[GitCloudHostIntegrationId.GitHub]: 'github',
|
|
57
|
+
[GitCloudHostIntegrationId.Bitbucket]: 'bitbucket',
|
|
58
|
+
[GitCloudHostIntegrationId.AzureDevOps]: 'azure',
|
|
59
|
+
[GitSelfManagedHostIntegrationId.AzureDevOpsServer]: 'azureDevopsServer',
|
|
60
|
+
[GitSelfManagedHostIntegrationId.CloudGitHubEnterprise]: 'githubEnterprise',
|
|
61
|
+
[GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted]: 'gitlabSelfHosted',
|
|
62
|
+
[GitSelfManagedHostIntegrationId.BitbucketServer]: 'bitbucketServer',
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/authentication/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare enum GitCloudHostIntegrationId {
|
|
2
|
+
GitHub = "github",
|
|
3
|
+
GitLab = "gitlab",
|
|
4
|
+
Bitbucket = "bitbucket",
|
|
5
|
+
AzureDevOps = "azureDevOps"
|
|
6
|
+
}
|
|
7
|
+
export declare enum GitSelfManagedHostIntegrationId {
|
|
8
|
+
BitbucketServer = "bitbucket-server",
|
|
9
|
+
CloudGitHubEnterprise = "cloud-github-enterprise",
|
|
10
|
+
CloudGitLabSelfHosted = "cloud-gitlab-self-hosted",
|
|
11
|
+
AzureDevOpsServer = "azure-devops-server"
|
|
12
|
+
}
|
|
13
|
+
export declare enum IssuesCloudHostIntegrationId {
|
|
14
|
+
Jira = "jira",
|
|
15
|
+
Linear = "linear",
|
|
16
|
+
Trello = "trello"
|
|
17
|
+
}
|
|
18
|
+
export type CloudGitSelfManagedHostIntegrationIds = GitSelfManagedHostIntegrationId.CloudGitHubEnterprise | GitSelfManagedHostIntegrationId.BitbucketServer | GitSelfManagedHostIntegrationId.AzureDevOpsServer | GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted;
|
|
19
|
+
export type GitHostIntegrationIds = GitCloudHostIntegrationId | GitSelfManagedHostIntegrationId;
|
|
20
|
+
export type IssuesHostIntegrationIds = IssuesCloudHostIntegrationId;
|
|
21
|
+
export type IntegrationIds = GitHostIntegrationIds | IssuesHostIntegrationIds;
|
|
22
|
+
export declare const supportedOrderedCloudIssuesIntegrationIds: IssuesCloudHostIntegrationId[];
|
|
23
|
+
export declare const supportedOrderedCloudIntegrationIds: (GitSelfManagedHostIntegrationId | GitCloudHostIntegrationId | IssuesCloudHostIntegrationId)[];
|
|
24
|
+
export declare const integrationIds: (GitSelfManagedHostIntegrationId | GitCloudHostIntegrationId | IssuesCloudHostIntegrationId)[];
|
|
25
|
+
export type SupportedCloudIntegrationIds = (typeof supportedOrderedCloudIntegrationIds)[number];
|
|
26
|
+
export declare function isSupportedCloudIntegrationId(id: IntegrationIds): id is SupportedCloudIntegrationIds;
|
|
27
|
+
export declare function isIntegrationId(id: string): id is IntegrationIds;
|
|
28
|
+
export type IntegrationFeatures = 'prs' | 'issues';
|
|
29
|
+
export interface IntegrationDescriptor {
|
|
30
|
+
id: SupportedCloudIntegrationIds;
|
|
31
|
+
name: string;
|
|
32
|
+
icon: string;
|
|
33
|
+
supports: IntegrationFeatures[];
|
|
34
|
+
requiresPro: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** Stored shape of a configured-integration descriptor in workspace state. */
|
|
37
|
+
export interface StoredConfiguredIntegrationDescriptor {
|
|
38
|
+
cloud: boolean;
|
|
39
|
+
integrationId: IntegrationIds;
|
|
40
|
+
domain?: string;
|
|
41
|
+
expiresAt?: string;
|
|
42
|
+
scopes: string;
|
|
43
|
+
}
|
|
44
|
+
/** Stored shape of the `integrations:configured` storage key. */
|
|
45
|
+
export type StoredIntegrationConfigurations = Record<IntegrationIds, StoredConfiguredIntegrationDescriptor[] | undefined>;
|
|
46
|
+
export declare const supportedCloudIntegrationDescriptors: IntegrationDescriptor[];
|
|
47
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/plus/integrations/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,yBAAyB;IACpC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,WAAW,gBAAgB;CAC3B;AAED,oBAAY,+BAA+B;IAC1C,eAAe,qBAAqB;IACpC,qBAAqB,4BAA4B;IACjD,qBAAqB,6BAA6B;IAClD,iBAAiB,wBAAwB;CACzC;AAED,oBAAY,4BAA4B;IACvC,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB;AAED,MAAM,MAAM,qCAAqC,GAC9C,+BAA+B,CAAC,qBAAqB,GACrD,+BAA+B,CAAC,eAAe,GAC/C,+BAA+B,CAAC,iBAAiB,GACjD,+BAA+B,CAAC,qBAAqB,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,GAAG,+BAA+B,CAAC;AAChG,MAAM,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,wBAAwB,CAAC;AAE9E,eAAO,MAAM,yCAAyC,gCAGrD,CAAC;AACF,eAAO,MAAM,mCAAmC,gGAW/C,CAAC;AAEF,eAAO,MAAM,cAAc,gGAY1B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhG,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,cAAc,GAAG,EAAE,IAAI,4BAA4B,CAEpG;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,cAAc,CAEhE;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,4BAA4B,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;CACrB;AAED,8EAA8E;AAC9E,MAAM,WAAW,qCAAqC;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,MAAM,+BAA+B,GAAG,MAAM,CACnD,cAAc,EACd,qCAAqC,EAAE,GAAG,SAAS,CACnD,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,qBAAqB,EAuEvE,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
export var GitCloudHostIntegrationId;
|
|
2
|
+
(function (GitCloudHostIntegrationId) {
|
|
3
|
+
GitCloudHostIntegrationId["GitHub"] = "github";
|
|
4
|
+
GitCloudHostIntegrationId["GitLab"] = "gitlab";
|
|
5
|
+
GitCloudHostIntegrationId["Bitbucket"] = "bitbucket";
|
|
6
|
+
GitCloudHostIntegrationId["AzureDevOps"] = "azureDevOps";
|
|
7
|
+
})(GitCloudHostIntegrationId || (GitCloudHostIntegrationId = {}));
|
|
8
|
+
export var GitSelfManagedHostIntegrationId;
|
|
9
|
+
(function (GitSelfManagedHostIntegrationId) {
|
|
10
|
+
GitSelfManagedHostIntegrationId["BitbucketServer"] = "bitbucket-server";
|
|
11
|
+
GitSelfManagedHostIntegrationId["CloudGitHubEnterprise"] = "cloud-github-enterprise";
|
|
12
|
+
GitSelfManagedHostIntegrationId["CloudGitLabSelfHosted"] = "cloud-gitlab-self-hosted";
|
|
13
|
+
GitSelfManagedHostIntegrationId["AzureDevOpsServer"] = "azure-devops-server";
|
|
14
|
+
})(GitSelfManagedHostIntegrationId || (GitSelfManagedHostIntegrationId = {}));
|
|
15
|
+
export var IssuesCloudHostIntegrationId;
|
|
16
|
+
(function (IssuesCloudHostIntegrationId) {
|
|
17
|
+
IssuesCloudHostIntegrationId["Jira"] = "jira";
|
|
18
|
+
IssuesCloudHostIntegrationId["Linear"] = "linear";
|
|
19
|
+
IssuesCloudHostIntegrationId["Trello"] = "trello";
|
|
20
|
+
})(IssuesCloudHostIntegrationId || (IssuesCloudHostIntegrationId = {}));
|
|
21
|
+
export const supportedOrderedCloudIssuesIntegrationIds = [
|
|
22
|
+
IssuesCloudHostIntegrationId.Jira,
|
|
23
|
+
IssuesCloudHostIntegrationId.Linear,
|
|
24
|
+
];
|
|
25
|
+
export const supportedOrderedCloudIntegrationIds = [
|
|
26
|
+
GitCloudHostIntegrationId.GitHub,
|
|
27
|
+
GitSelfManagedHostIntegrationId.CloudGitHubEnterprise,
|
|
28
|
+
GitCloudHostIntegrationId.GitLab,
|
|
29
|
+
GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted,
|
|
30
|
+
GitCloudHostIntegrationId.AzureDevOps,
|
|
31
|
+
GitSelfManagedHostIntegrationId.AzureDevOpsServer,
|
|
32
|
+
GitCloudHostIntegrationId.Bitbucket,
|
|
33
|
+
GitSelfManagedHostIntegrationId.BitbucketServer,
|
|
34
|
+
IssuesCloudHostIntegrationId.Jira,
|
|
35
|
+
IssuesCloudHostIntegrationId.Linear,
|
|
36
|
+
];
|
|
37
|
+
export const integrationIds = [
|
|
38
|
+
GitCloudHostIntegrationId.GitHub,
|
|
39
|
+
GitCloudHostIntegrationId.GitLab,
|
|
40
|
+
GitCloudHostIntegrationId.Bitbucket,
|
|
41
|
+
GitCloudHostIntegrationId.AzureDevOps,
|
|
42
|
+
GitSelfManagedHostIntegrationId.AzureDevOpsServer,
|
|
43
|
+
GitSelfManagedHostIntegrationId.BitbucketServer,
|
|
44
|
+
GitSelfManagedHostIntegrationId.CloudGitHubEnterprise,
|
|
45
|
+
GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted,
|
|
46
|
+
IssuesCloudHostIntegrationId.Jira,
|
|
47
|
+
IssuesCloudHostIntegrationId.Linear,
|
|
48
|
+
IssuesCloudHostIntegrationId.Trello,
|
|
49
|
+
];
|
|
50
|
+
export function isSupportedCloudIntegrationId(id) {
|
|
51
|
+
return supportedOrderedCloudIntegrationIds.includes(id);
|
|
52
|
+
}
|
|
53
|
+
export function isIntegrationId(id) {
|
|
54
|
+
return integrationIds.includes(id);
|
|
55
|
+
}
|
|
56
|
+
export const supportedCloudIntegrationDescriptors = [
|
|
57
|
+
{
|
|
58
|
+
id: GitCloudHostIntegrationId.GitHub,
|
|
59
|
+
name: 'GitHub',
|
|
60
|
+
icon: 'gl-provider-github',
|
|
61
|
+
supports: ['prs', 'issues'],
|
|
62
|
+
requiresPro: false,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: GitSelfManagedHostIntegrationId.CloudGitHubEnterprise,
|
|
66
|
+
name: 'GitHub Enterprise',
|
|
67
|
+
icon: 'gl-provider-github',
|
|
68
|
+
supports: ['prs', 'issues'],
|
|
69
|
+
requiresPro: true,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: GitCloudHostIntegrationId.GitLab,
|
|
73
|
+
name: 'GitLab',
|
|
74
|
+
icon: 'gl-provider-gitlab',
|
|
75
|
+
supports: ['prs', 'issues'],
|
|
76
|
+
requiresPro: false,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted,
|
|
80
|
+
name: 'GitLab Self-Hosted',
|
|
81
|
+
icon: 'gl-provider-gitlab',
|
|
82
|
+
supports: ['prs', 'issues'],
|
|
83
|
+
requiresPro: true,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: GitCloudHostIntegrationId.AzureDevOps,
|
|
87
|
+
name: 'Azure DevOps',
|
|
88
|
+
icon: 'gl-provider-azdo',
|
|
89
|
+
supports: ['prs', 'issues'],
|
|
90
|
+
requiresPro: true,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
id: GitSelfManagedHostIntegrationId.AzureDevOpsServer,
|
|
94
|
+
name: 'Azure DevOps Server',
|
|
95
|
+
icon: 'gl-provider-azdo',
|
|
96
|
+
supports: ['prs', 'issues'],
|
|
97
|
+
requiresPro: true,
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: GitCloudHostIntegrationId.Bitbucket,
|
|
101
|
+
name: 'Bitbucket',
|
|
102
|
+
icon: 'gl-provider-bitbucket',
|
|
103
|
+
supports: ['prs', 'issues'],
|
|
104
|
+
requiresPro: false,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: GitSelfManagedHostIntegrationId.BitbucketServer,
|
|
108
|
+
name: 'Bitbucket Data Center',
|
|
109
|
+
icon: 'gl-provider-bitbucket',
|
|
110
|
+
supports: ['prs'],
|
|
111
|
+
requiresPro: true,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: IssuesCloudHostIntegrationId.Jira,
|
|
115
|
+
name: 'Jira',
|
|
116
|
+
icon: 'gl-provider-jira',
|
|
117
|
+
supports: ['issues'],
|
|
118
|
+
requiresPro: true,
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: IssuesCloudHostIntegrationId.Linear,
|
|
122
|
+
name: 'Linear',
|
|
123
|
+
icon: 'gl-provider-linear',
|
|
124
|
+
supports: ['issues'],
|
|
125
|
+
requiresPro: true,
|
|
126
|
+
},
|
|
127
|
+
];
|
|
128
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/plus/integrations/constants.ts"],"names":[],"mappings":"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"}
|