1 | export declare enum Category {
|
2 | Build = "BUILD",
|
3 | CodeReview = "CODE_REVIEW",
|
4 | DevEx = "DEV_EX",
|
5 | Deploy = "DEPLOY",
|
6 | Security = "SECURITY",
|
7 | Dependencies = "DEPENDENCIES",
|
8 | Notifications = "NOTIFICATIONS",
|
9 | CI = "CI",
|
10 | CD = "CD",
|
11 | Productivity = "PRODUCTIVITY",
|
12 | CodeQuality = "CODE_QUALITY",
|
13 | Chat = "CHAT"
|
14 | }
|
15 | export declare enum Technology {
|
16 | Java = "JAVA",
|
17 | Maven = "MAVEN",
|
18 | Docker = "DOCKER",
|
19 | JavaScript = "JAVASCRIPT",
|
20 | NPM = "NPM",
|
21 | Leiningen = "LEIN",
|
22 | Clojure = "CLOJURE",
|
23 | Kubernetes = "KUBERNETES"
|
24 | }
|
25 | export declare enum DispatchStyle {
|
26 | Single = "single",
|
27 | Multiple = "multiple"
|
28 | }
|
29 | export declare enum Platform {
|
30 | NodeJs10 = "nodejs10",
|
31 | Python37 = "python37",
|
32 | Go113 = "go113"
|
33 | }
|
34 | export interface SkillRuntime {
|
35 | entryPoint?: string;
|
36 | platform?: Platform;
|
37 | url?: string;
|
38 | memory?: number;
|
39 | timeout?: number;
|
40 | }
|
41 | export interface SkillPackage {
|
42 | bundle?: boolean;
|
43 | minify?: boolean;
|
44 | sourceMaps?: boolean;
|
45 | }
|
46 | export interface SkillContainer {
|
47 | image: string;
|
48 | args?: string[];
|
49 | command?: string[];
|
50 | env?: Array<{
|
51 | name: string;
|
52 | value: string;
|
53 | }>;
|
54 | workingDir?: string;
|
55 | }
|
56 | export interface ResourceProvider {
|
57 | description?: string;
|
58 | maxAllowed?: number;
|
59 | minRequired?: number;
|
60 | typeName: string;
|
61 | }
|
62 | export declare enum ParameterVisibility {
|
63 | Hidden = "hidden",
|
64 | Advanced = "advanced",
|
65 | Normal = "normal"
|
66 | }
|
67 | export declare enum LineStyle {
|
68 | Single = "single",
|
69 | Multiple = "multiple"
|
70 | }
|
71 | export interface Parameter<T, D> {
|
72 | type: T;
|
73 | defaultValue?: D;
|
74 | description: string;
|
75 | displayName?: string;
|
76 | required: boolean;
|
77 | visibility?: ParameterVisibility;
|
78 | }
|
79 | export declare type BooleanParameter = Parameter<ParameterType.Boolean, boolean>;
|
80 | export interface FloatParameter extends Parameter<ParameterType.Float, number> {
|
81 | maximum?: number;
|
82 | minimum?: number;
|
83 | placeHolder?: string;
|
84 | }
|
85 | export interface IntParameter extends Parameter<ParameterType.Int, number> {
|
86 | maximum?: number;
|
87 | minimum?: number;
|
88 | placeHolder?: string;
|
89 | }
|
90 | export interface MultiChoiceParameter extends Omit<Parameter<ParameterType.MultiChoice, string>, "defaultValue"> {
|
91 | defaultValues?: string[];
|
92 | maxAllowed?: number;
|
93 | minRequired?: number;
|
94 | options: Array<{
|
95 | description?: string;
|
96 | text: string;
|
97 | value: string;
|
98 | }>;
|
99 | }
|
100 | export interface SingleChoiceParameter extends Parameter<ParameterType.SingleChoice, string> {
|
101 | maxAllowed?: number;
|
102 | minRequired?: number;
|
103 | options: Array<{
|
104 | description?: string;
|
105 | text: string;
|
106 | value: string;
|
107 | }>;
|
108 | }
|
109 | export declare type RepoFilterParameter = Omit<Parameter<ParameterType.RepoFilter, any>, "defaultValue" | "visibility">;
|
110 | export declare type ScheduleParameter = Parameter<ParameterType.Schedule, string>;
|
111 | export interface StringParameter extends Parameter<ParameterType.String, string> {
|
112 | lineStyle?: LineStyle;
|
113 | pattern?: string;
|
114 | placeHolder?: string;
|
115 | }
|
116 | export interface StringArrayParameter extends Parameter<ParameterType.StringArray, string[]> {
|
117 | maxAllowed?: number;
|
118 | minRequired?: number;
|
119 | pattern?: string;
|
120 | }
|
121 | export interface Metadata {
|
122 | name: string;
|
123 | namespace: string;
|
124 | version: string;
|
125 | author: string;
|
126 | displayName: string;
|
127 | description: string;
|
128 | longDescription: string;
|
129 | readme?: string;
|
130 | license: string;
|
131 | categories?: Category[];
|
132 | technologies?: Technology[];
|
133 | homepageUrl: string;
|
134 | repositoryUrl: string;
|
135 | iconUrl: string;
|
136 | videoUrl?: string;
|
137 | }
|
138 | export declare enum ParameterType {
|
139 | Boolean = "boolean",
|
140 | Float = "float",
|
141 | Int = "int",
|
142 | MultiChoice = "multiChoice",
|
143 | SingleChoice = "singleChoice",
|
144 | RepoFilter = "repoFilter",
|
145 | Schedule = "schedule",
|
146 | String = "string",
|
147 | StringArray = "stringArray"
|
148 | }
|
149 | export declare type ParametersIndexType = string;
|
150 | export declare type ParametersType = {
|
151 | [key in ParametersIndexType]?: number | boolean | string | number | string[];
|
152 | };
|
153 | export interface Configuration<PARAMS extends ParametersType = any> {
|
154 | dispatchStyle?: DispatchStyle;
|
155 | maxConfigurations?: number;
|
156 | runtime?: SkillRuntime;
|
157 | containers?: Record<string, SkillContainer>;
|
158 | package?: SkillPackage;
|
159 | parameters?: Record<keyof PARAMS, BooleanParameter | FloatParameter | IntParameter | MultiChoiceParameter | SingleChoiceParameter | RepoFilterParameter | ScheduleParameter | StringParameter | StringArrayParameter>;
|
160 | resourceProviders?: Record<string, ResourceProvider>;
|
161 | }
|
162 | export interface Command {
|
163 | name: string;
|
164 | displayName?: string;
|
165 | description: string;
|
166 | pattern: RegExp;
|
167 | }
|
168 | export interface Operations {
|
169 | commands?: Command[];
|
170 | subscriptions?: string[];
|
171 | }
|
172 | export declare type Skill<PARAMS = any> = Metadata & Configuration<PARAMS> & Operations;
|
173 | export declare function slackResourceProvider(options?: {
|
174 | minRequired: number;
|
175 | maxAllowed: number;
|
176 | }): ResourceProvider;
|
177 | export declare function gitHubResourceProvider(options?: {
|
178 | minRequired: number;
|
179 | maxAllowed: number;
|
180 | }): ResourceProvider;
|
181 | export declare function repoFilter(required?: boolean): RepoFilterParameter;
|
182 | export declare function packageJson(path?: string): Metadata;
|
183 | export declare function skill<PARAMS = any>(skill: Partial<Metadata> & Configuration<PARAMS> & Operations, p?: string): Skill<PARAMS>;
|
184 |
|
\ | No newline at end of file |