-
Notifications
You must be signed in to change notification settings - Fork 1.4k
/
Copy pathconstants.integrations.ts
68 lines (60 loc) · 1.78 KB
/
constants.integrations.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
export enum HostingIntegrationId {
GitHub = 'github',
GitLab = 'gitlab',
Bitbucket = 'bitbucket',
AzureDevOps = 'azureDevOps',
}
export enum SelfHostedIntegrationId {
GitHubEnterprise = 'github-enterprise',
CloudGitHubEnterprise = 'cloud-github-enterprise',
GitLabSelfHosted = 'gitlab-self-hosted',
}
export enum IssueIntegrationId {
Jira = 'jira',
Trello = 'trello',
}
export type IntegrationId = HostingIntegrationId | IssueIntegrationId | SelfHostedIntegrationId;
export const supportedOrderedCloudIssueIntegrationIds = [IssueIntegrationId.Jira];
export const supportedOrderedCloudIntegrationIds = [
HostingIntegrationId.GitHub,
SelfHostedIntegrationId.CloudGitHubEnterprise,
HostingIntegrationId.GitLab,
IssueIntegrationId.Jira,
];
export type SupportedCloudIntegrationIds = (typeof supportedOrderedCloudIntegrationIds)[number];
export function isSupportedCloudIntegrationId(id: IntegrationId): id is SupportedCloudIntegrationIds {
return supportedOrderedCloudIntegrationIds.includes(id as SupportedCloudIntegrationIds);
}
export type IntegrationFeatures = 'prs' | 'issues';
export interface IntegrationDescriptor {
id: SupportedCloudIntegrationIds;
name: string;
icon: string;
supports: IntegrationFeatures[];
}
export const supportedCloudIntegrationDescriptors: IntegrationDescriptor[] = [
{
id: HostingIntegrationId.GitHub,
name: 'GitHub',
icon: 'gl-provider-github',
supports: ['prs', 'issues'],
},
{
id: SelfHostedIntegrationId.CloudGitHubEnterprise,
name: 'GitHub Enterprise',
icon: 'gl-provider-github',
supports: ['prs', 'issues'],
},
{
id: HostingIntegrationId.GitLab,
name: 'GitLab',
icon: 'gl-provider-gitlab',
supports: ['prs', 'issues'],
},
{
id: IssueIntegrationId.Jira,
name: 'Jira',
icon: 'gl-provider-jira',
supports: ['issues'],
},
];