faros-airbyte-common 0.14.13 → 0.15.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 (80) hide show
  1. package/lib/azure-devops/azure-devops.d.ts +40 -0
  2. package/lib/azure-devops/azure-devops.js +264 -0
  3. package/lib/azure-devops/azure-devops.js.map +1 -0
  4. package/lib/azure-devops/index.d.ts +2 -0
  5. package/lib/azure-devops/index.js +21 -0
  6. package/lib/azure-devops/index.js.map +1 -0
  7. package/lib/azure-devops/types.d.ts +111 -0
  8. package/lib/azure-devops/types.js +3 -0
  9. package/lib/azure-devops/types.js.map +1 -0
  10. package/lib/bitbucket/index.d.ts +1 -0
  11. package/lib/bitbucket/index.js +18 -0
  12. package/lib/bitbucket/index.js.map +1 -0
  13. package/lib/bitbucket/types.d.ts +547 -0
  14. package/lib/bitbucket/types.js +3 -0
  15. package/lib/bitbucket/types.js.map +1 -0
  16. package/lib/bitbucket-server/index.d.ts +127 -0
  17. package/lib/bitbucket-server/index.js +23 -0
  18. package/lib/bitbucket-server/index.js.map +1 -0
  19. package/lib/circleci/index.d.ts +1 -0
  20. package/lib/circleci/index.js +18 -0
  21. package/lib/circleci/index.js.map +1 -0
  22. package/lib/circleci/types.d.ts +86 -0
  23. package/lib/circleci/types.js +3 -0
  24. package/lib/circleci/types.js.map +1 -0
  25. package/lib/clickup/index.d.ts +1 -0
  26. package/lib/clickup/index.js +18 -0
  27. package/lib/clickup/index.js.map +1 -0
  28. package/lib/clickup/types.d.ts +292 -0
  29. package/lib/clickup/types.js +3 -0
  30. package/lib/clickup/types.js.map +1 -0
  31. package/lib/common/bucket-set.d.ts +6 -0
  32. package/lib/common/bucket-set.js +71 -0
  33. package/lib/common/bucket-set.js.map +1 -0
  34. package/lib/common/bucketing.d.ts +20 -0
  35. package/lib/common/bucketing.js +67 -0
  36. package/lib/common/bucketing.js.map +1 -0
  37. package/lib/common/index.d.ts +25 -0
  38. package/lib/common/index.js +126 -0
  39. package/lib/common/index.js.map +1 -0
  40. package/lib/github/codegen.d.ts +3 -0
  41. package/lib/github/codegen.js +39 -0
  42. package/lib/github/codegen.js.map +1 -0
  43. package/lib/github/generated/index.d.ts +8241 -0
  44. package/lib/github/generated/index.js +3257 -0
  45. package/lib/github/generated/index.js.map +1 -0
  46. package/lib/github/index.d.ts +1 -0
  47. package/lib/github/index.js +18 -0
  48. package/lib/github/index.js.map +1 -0
  49. package/lib/github/queries.d.ts +16 -0
  50. package/lib/github/queries.js +47 -0
  51. package/lib/github/queries.js.map +1 -0
  52. package/lib/github/types.d.ts +213 -0
  53. package/lib/github/types.js +10 -0
  54. package/lib/github/types.js.map +1 -0
  55. package/lib/jira/index.d.ts +1 -0
  56. package/lib/jira/index.js +18 -0
  57. package/lib/jira/index.js.map +1 -0
  58. package/lib/jira/types.d.ts +140 -0
  59. package/lib/jira/types.js +12 -0
  60. package/lib/jira/types.js.map +1 -0
  61. package/lib/tsconfig.tsbuildinfo +1 -0
  62. package/lib/vanta/index.d.ts +1 -0
  63. package/lib/vanta/index.js +18 -0
  64. package/lib/vanta/index.js.map +1 -0
  65. package/lib/vanta/types.d.ts +73 -0
  66. package/lib/vanta/types.js +3 -0
  67. package/lib/vanta/types.js.map +1 -0
  68. package/lib/wolken/index.d.ts +1 -0
  69. package/lib/wolken/index.js +18 -0
  70. package/lib/wolken/index.js.map +1 -0
  71. package/lib/wolken/types.d.ts +130 -0
  72. package/lib/wolken/types.js +3 -0
  73. package/lib/wolken/types.js.map +1 -0
  74. package/lib/xray/index.d.ts +1 -0
  75. package/lib/xray/index.js +18 -0
  76. package/lib/xray/index.js.map +1 -0
  77. package/lib/xray/types.d.ts +73 -0
  78. package/lib/xray/types.js +3 -0
  79. package/lib/xray/types.js.map +1 -0
  80. package/package.json +1 -1
@@ -0,0 +1,40 @@
1
+ import { AxiosInstance } from 'axios';
2
+ import { WebApi } from 'azure-devops-node-api';
3
+ import { IdentityRef } from 'azure-devops-node-api/interfaces/common/VSSInterfaces';
4
+ import { TeamProject, WebApiTeam } from 'azure-devops-node-api/interfaces/CoreInterfaces';
5
+ import { AirbyteLogger } from 'faros-airbyte-cdk';
6
+ import * as types from './types';
7
+ /**
8
+ * This abstract class is used to create Azure DevOps clients.
9
+ * Extended by Azure DevOps sources that need to access Azure DevOps APIs,
10
+ * such as Azure Repos, Azure Pipelines, Azure Work Items, etc.
11
+ *
12
+ * @abstract
13
+ * @class AzureDevOps
14
+ */
15
+ export declare abstract class AzureDevOps {
16
+ protected readonly client: types.AzureDevOpsClient;
17
+ protected readonly cutoffDays: number;
18
+ protected readonly top: number;
19
+ protected readonly logger: AirbyteLogger;
20
+ private static azureDevOps;
21
+ constructor(client: types.AzureDevOpsClient, cutoffDays: number, top: number, logger: AirbyteLogger);
22
+ static instance<T extends AzureDevOps>(this: new (...args: any[]) => T, config: types.AzureDevOpsConfig, logger: AirbyteLogger, ...rest: any[]): Promise<T>;
23
+ static getApiUrl(instance: types.AzureDevOpsInstance): string;
24
+ static validateAuth(config: types.AzureDevOpsConfig): void;
25
+ static createWebAPI(apiUrl: string, organization: string, accessToken: string, timeout?: number, maxRetries?: number): Promise<WebApi>;
26
+ static createGraphAPI(instance: types.AzureDevOpsInstance, organization: string, access_token: string, timeout: number, maxRetries: number, logger: AirbyteLogger): AxiosInstance | undefined;
27
+ protected getPaginated<T>(getFn: (top: number, skipOrToken: number | string) => Promise<Array<T>>, options?: {
28
+ useContinuationToken: boolean;
29
+ continuationTokenParam: string;
30
+ }): AsyncGenerator<T>;
31
+ private paginateWithSkip;
32
+ private paginateWithContinuationToken;
33
+ getProjects(projects?: ReadonlyArray<string>): Promise<ReadonlyArray<TeamProject>>;
34
+ private getAllProjects;
35
+ protected getTeams(projectId: string): AsyncGenerator<WebApiTeam>;
36
+ protected getTeamMembers(projectId: string, teamId: string): AsyncGenerator<IdentityRef>;
37
+ getUsers(projects?: ReadonlyArray<string>): AsyncGenerator<types.User>;
38
+ private getGraphUsers;
39
+ private getTeamUsers;
40
+ }
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AzureDevOps = void 0;
13
+ const azure_devops_node_api_1 = require("azure-devops-node-api");
14
+ const faros_airbyte_cdk_1 = require("faros-airbyte-cdk");
15
+ const faros_js_client_1 = require("faros-js-client");
16
+ const typescript_memoize_1 = require("typescript-memoize");
17
+ const verror_1 = __importDefault(require("verror"));
18
+ const CLOUD_API_URL = 'https://dev.azure.com';
19
+ const DEFAULT_GRAPH_API_URL = 'https://vssps.dev.azure.com';
20
+ const DEFAULT_GRAPH_API_VERSION = '7.1-preview.1';
21
+ const DEFAULT_REQUEST_TIMEOUT = 300000;
22
+ const DEFAULT_MAX_RETRIES = 3;
23
+ const DEFAULT_PAGE_SIZE = 100;
24
+ const DEFAULT_CUTOFF_DAYS = 90;
25
+ /**
26
+ * This abstract class is used to create Azure DevOps clients.
27
+ * Extended by Azure DevOps sources that need to access Azure DevOps APIs,
28
+ * such as Azure Repos, Azure Pipelines, Azure Work Items, etc.
29
+ *
30
+ * @abstract
31
+ * @class AzureDevOps
32
+ */
33
+ class AzureDevOps {
34
+ constructor(client, cutoffDays = DEFAULT_CUTOFF_DAYS, top = DEFAULT_PAGE_SIZE, logger) {
35
+ this.client = client;
36
+ this.cutoffDays = cutoffDays;
37
+ this.top = top;
38
+ this.logger = logger;
39
+ }
40
+ static async instance(config, logger, ...rest) {
41
+ var _a, _b, _c, _d;
42
+ if (AzureDevOps.azureDevOps) {
43
+ return AzureDevOps.azureDevOps;
44
+ }
45
+ AzureDevOps.validateAuth(config);
46
+ if ((_a = config.instance) === null || _a === void 0 ? void 0 : _a.type) {
47
+ logger.info(`Azure DevOps instance type: ${config.instance.type}`);
48
+ }
49
+ else {
50
+ logger.info('No Azure DevOps instance type provided, will attempt to use ' +
51
+ 'Azure DevOps Services (cloud)');
52
+ }
53
+ const apiUrl = AzureDevOps.getApiUrl(config === null || config === void 0 ? void 0 : config.instance);
54
+ const timeout = (_b = config.request_timeout) !== null && _b !== void 0 ? _b : DEFAULT_REQUEST_TIMEOUT;
55
+ const maxRetries = (_c = config.max_retries) !== null && _c !== void 0 ? _c : DEFAULT_MAX_RETRIES;
56
+ const webApi = await AzureDevOps.createWebAPI(apiUrl, config.organization, config.access_token, timeout, maxRetries);
57
+ const graphApi = AzureDevOps.createGraphAPI(config.instance, config.organization, config.access_token, timeout, maxRetries, logger);
58
+ const client = {
59
+ build: await webApi.getBuildApi(),
60
+ core: await webApi.getCoreApi(),
61
+ wit: await webApi.getWorkItemTrackingApi(),
62
+ git: await webApi.getGitApi(),
63
+ pipelines: await webApi.getPipelinesApi(),
64
+ release: await webApi.getReleaseApi(),
65
+ test: await webApi.getTestApi(),
66
+ graph: graphApi,
67
+ };
68
+ const pageSize = isNaN(config.page_size) ? undefined : config.page_size;
69
+ if (pageSize && pageSize <= 1) {
70
+ logger.warn('Page size must be greater than 1, will use default minimum of 2');
71
+ }
72
+ const top = Math.max(2, pageSize !== null && pageSize !== void 0 ? pageSize : DEFAULT_PAGE_SIZE);
73
+ const cutoffDays = (_d = config.cutoff_days) !== null && _d !== void 0 ? _d : DEFAULT_CUTOFF_DAYS;
74
+ AzureDevOps.azureDevOps = new this(client, cutoffDays, top, logger, ...rest);
75
+ return AzureDevOps.azureDevOps;
76
+ }
77
+ static getApiUrl(instance) {
78
+ var _a;
79
+ if ((instance === null || instance === void 0 ? void 0 : instance.type) !== 'server') {
80
+ return CLOUD_API_URL;
81
+ }
82
+ const apiUrl = (_a = instance === null || instance === void 0 ? void 0 : instance.api_url) === null || _a === void 0 ? void 0 : _a.trim();
83
+ if (!apiUrl) {
84
+ throw new verror_1.default('api_url must not be an empty string for server instance type');
85
+ }
86
+ try {
87
+ new URL(apiUrl);
88
+ }
89
+ catch (error) {
90
+ throw new verror_1.default(`Invalid URL: ${instance === null || instance === void 0 ? void 0 : instance.api_url}`);
91
+ }
92
+ return apiUrl;
93
+ }
94
+ static validateAuth(config) {
95
+ if (!config.access_token) {
96
+ throw new verror_1.default('access_token must not be an empty string');
97
+ }
98
+ if (!config.organization) {
99
+ throw new verror_1.default('organization must not be an empty string');
100
+ }
101
+ }
102
+ // Create Azure DevOps Node API clients
103
+ static async createWebAPI(apiUrl, organization, accessToken, timeout = DEFAULT_REQUEST_TIMEOUT, maxRetries = DEFAULT_MAX_RETRIES) {
104
+ const baseUrl = `${apiUrl}/${organization}`;
105
+ const authHandler = (0, azure_devops_node_api_1.getPersonalAccessTokenHandler)(accessToken);
106
+ return new azure_devops_node_api_1.WebApi(baseUrl, authHandler, {
107
+ socketTimeout: timeout,
108
+ allowRetries: true,
109
+ maxRetries,
110
+ globalAgentOptions: {
111
+ keepAlive: true,
112
+ timeout,
113
+ },
114
+ });
115
+ }
116
+ static createGraphAPI(instance, organization, access_token, timeout, maxRetries, logger) {
117
+ if ((instance === null || instance === void 0 ? void 0 : instance.type) === 'server') {
118
+ return undefined;
119
+ }
120
+ const base64EncodedToken = (0, faros_airbyte_cdk_1.base64Encode)(`:${access_token}`);
121
+ return (0, faros_js_client_1.makeAxiosInstanceWithRetry)({
122
+ baseURL: `${DEFAULT_GRAPH_API_URL}/${organization}/_apis/graph`,
123
+ timeout,
124
+ maxContentLength: Infinity,
125
+ maxBodyLength: Infinity,
126
+ params: { 'api-version': DEFAULT_GRAPH_API_VERSION },
127
+ headers: { Authorization: `Basic ${base64EncodedToken}` },
128
+ }, logger.asPino(), maxRetries, 1000 // Default retry delay
129
+ );
130
+ }
131
+ async *getPaginated(getFn, options) {
132
+ if (options === null || options === void 0 ? void 0 : options.useContinuationToken) {
133
+ yield* this.paginateWithContinuationToken(getFn, options.continuationTokenParam);
134
+ }
135
+ else {
136
+ yield* this.paginateWithSkip(getFn);
137
+ }
138
+ }
139
+ async *paginateWithSkip(getFn) {
140
+ let resCount = 0;
141
+ let skip = 0;
142
+ const top = this.top;
143
+ do {
144
+ const result = await getFn(top, skip);
145
+ if (result.length)
146
+ yield* result;
147
+ resCount = result.length;
148
+ skip += resCount;
149
+ } while (resCount >= top);
150
+ }
151
+ // Workaround for Azure DevOps API pagination not returning the continuation token
152
+ // https://github.com/microsoft/azure-devops-node-api/issues/609
153
+ async *paginateWithContinuationToken(getFn, continuationTokenParam) {
154
+ const top = this.top;
155
+ let hasNext = false;
156
+ let pages = 0;
157
+ let continuationToken = undefined;
158
+ do {
159
+ const result = await getFn(top, continuationToken);
160
+ if (!result) {
161
+ this.logger.warn('Failed to fetch results, received empty result. Skipping...');
162
+ return;
163
+ }
164
+ if (!Array.isArray(result)) {
165
+ throw new verror_1.default(`Expected array result but got ${typeof result} ${JSON.stringify(result)}`);
166
+ }
167
+ // Remove the first record when we have a continuation token to avoid duplication
168
+ // since we already processed it in the previous page
169
+ const records = continuationToken ? result.slice(1) : result;
170
+ yield* records;
171
+ continuationToken =
172
+ result.length === top
173
+ ? result.at(-1)[continuationTokenParam]
174
+ : undefined;
175
+ hasNext = Boolean(continuationToken);
176
+ pages++;
177
+ this.logger.debug(hasNext
178
+ ? `Fetching next page using continuation token ${continuationToken}`
179
+ : `Finished fetching ${pages} pages`);
180
+ } while (hasNext);
181
+ }
182
+ async getProjects(projects) {
183
+ if (!(projects === null || projects === void 0 ? void 0 : projects.length)) {
184
+ return await this.getAllProjects();
185
+ }
186
+ const allProjects = [];
187
+ for (const project of projects) {
188
+ const res = await this.client.core.getProject(project);
189
+ if (res) {
190
+ allProjects.push(res);
191
+ }
192
+ else {
193
+ this.logger.warn(`Project ${project} in config not found. Skipping`);
194
+ }
195
+ }
196
+ return allProjects;
197
+ }
198
+ async getAllProjects() {
199
+ const projects = [];
200
+ const getProjectsFn = async (top, skip) => {
201
+ const res = await this.client.core.getProjects('wellFormed', top, skip);
202
+ return Array.from(res.values());
203
+ };
204
+ for await (const project of this.getPaginated(getProjectsFn)) {
205
+ projects.push(project);
206
+ }
207
+ return projects;
208
+ }
209
+ async *getTeams(projectId) {
210
+ const getTeamsFn = (pageSize, skip) => this.client.core.getTeams(projectId, false, pageSize, skip);
211
+ yield* this.getPaginated(getTeamsFn);
212
+ }
213
+ async *getTeamMembers(projectId, teamId) {
214
+ const getMembersFn = (top, skip) => this.client.core.getTeamMembersWithExtendedProperties(projectId, teamId, top, skip);
215
+ for await (const member of this.getPaginated(getMembersFn)) {
216
+ yield member.identity;
217
+ }
218
+ }
219
+ // If graph API is available, i.e. Azure DevOps Services (cloud) instance,
220
+ // use it to fetch users. Otherwise, fetch users through teams and
221
+ // team members (Azure DevOps Server)
222
+ async *getUsers(projects) {
223
+ if (this.client.graph) {
224
+ yield* this.getGraphUsers();
225
+ return;
226
+ }
227
+ yield* this.getTeamUsers(projects);
228
+ }
229
+ async *getGraphUsers() {
230
+ var _a, _b, _c;
231
+ let continuationToken;
232
+ do {
233
+ const res = await this.client.graph.get('users', {
234
+ params: { subjectTypes: 'msa,aad,imp', continuationToken },
235
+ });
236
+ continuationToken = (_a = res === null || res === void 0 ? void 0 : res.headers) === null || _a === void 0 ? void 0 : _a['X-MS-ContinuationToken'];
237
+ for (const item of (_c = (_b = res === null || res === void 0 ? void 0 : res.data) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : []) {
238
+ yield item;
239
+ }
240
+ } while (continuationToken);
241
+ }
242
+ async *getTeamUsers(projects) {
243
+ const seenUsers = new Set();
244
+ let teams = 0;
245
+ for (const project of await this.getProjects(projects)) {
246
+ for await (const team of this.getTeams(project.id)) {
247
+ teams++;
248
+ for await (const member of this.getTeamMembers(project.id, team.id)) {
249
+ if (!seenUsers.has(member.uniqueName)) {
250
+ seenUsers.add(member.uniqueName);
251
+ yield member;
252
+ }
253
+ }
254
+ }
255
+ }
256
+ this.logger.debug(`Fetched ${seenUsers.size} members from ${teams} teams`);
257
+ }
258
+ }
259
+ exports.AzureDevOps = AzureDevOps;
260
+ AzureDevOps.azureDevOps = null;
261
+ __decorate([
262
+ (0, typescript_memoize_1.Memoize)()
263
+ ], AzureDevOps.prototype, "getProjects", null);
264
+ //# sourceMappingURL=azure-devops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-devops.js","sourceRoot":"","sources":["../../src/azure-devops/azure-devops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export { AzureDevOps } from './azure-devops';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.AzureDevOps = void 0;
18
+ __exportStar(require("./types"), exports);
19
+ var azure_devops_1 = require("./azure-devops");
20
+ Object.defineProperty(exports, "AzureDevOps", { enumerable: true, get: function () { return azure_devops_1.AzureDevOps; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/azure-devops/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+CAA2C;AAAnC,2GAAA,WAAW,OAAA"}
@@ -0,0 +1,111 @@
1
+ import { AxiosInstance } from 'axios';
2
+ import { IBuildApi } from 'azure-devops-node-api/BuildApi';
3
+ import { ICoreApi } from 'azure-devops-node-api/CoreApi';
4
+ import { IGitApi } from 'azure-devops-node-api/GitApi';
5
+ import { Build as BaseBuild, BuildArtifact, TimelineRecord as BaseTimelineRecord } from 'azure-devops-node-api/interfaces/BuildInterfaces';
6
+ import { IdentityRef } from 'azure-devops-node-api/interfaces/common/VSSInterfaces';
7
+ import * as GitInterfaces from 'azure-devops-node-api/interfaces/GitInterfaces';
8
+ import { GraphUser } from 'azure-devops-node-api/interfaces/GraphInterfaces';
9
+ import { Pipeline as BasePipeline } from 'azure-devops-node-api/interfaces/PipelinesInterfaces';
10
+ import { ProjectReference } from 'azure-devops-node-api/interfaces/ReleaseInterfaces';
11
+ import { CodeCoverageStatistics } from 'azure-devops-node-api/interfaces/TestInterfaces';
12
+ import { WorkItem } from 'azure-devops-node-api/interfaces/WorkItemTrackingInterfaces';
13
+ import { IPipelinesApi } from 'azure-devops-node-api/PipelinesApi';
14
+ import { IReleaseApi } from 'azure-devops-node-api/ReleaseApi';
15
+ import { ITestApi } from 'azure-devops-node-api/TestApi';
16
+ import { IWorkItemTrackingApi } from 'azure-devops-node-api/WorkItemTrackingApi';
17
+ export type DevOpsCloud = {
18
+ type: 'cloud';
19
+ };
20
+ export type DevOpsServer = {
21
+ type: 'server';
22
+ api_url: string;
23
+ };
24
+ export type AzureDevOpsInstance = DevOpsCloud | DevOpsServer;
25
+ export interface AzureDevOpsConfig {
26
+ readonly instance?: AzureDevOpsInstance;
27
+ readonly access_token: string;
28
+ readonly organization: string;
29
+ readonly projects?: ReadonlyArray<string>;
30
+ readonly cutoff_days?: number;
31
+ readonly page_size?: number;
32
+ readonly max_retries?: number;
33
+ readonly request_timeout?: number;
34
+ }
35
+ export interface AzureDevOpsClient {
36
+ readonly build: IBuildApi;
37
+ readonly core: ICoreApi;
38
+ readonly git: IGitApi;
39
+ readonly wit: IWorkItemTrackingApi;
40
+ readonly pipelines: IPipelinesApi;
41
+ readonly release: IReleaseApi;
42
+ readonly test: ITestApi;
43
+ readonly graph?: AxiosInstance;
44
+ }
45
+ export type User = GraphUser | IdentityRef;
46
+ export interface GraphUserResponse {
47
+ count: number;
48
+ value: GraphUser[];
49
+ }
50
+ export interface Pipeline extends BasePipeline {
51
+ project: ProjectReference;
52
+ }
53
+ export interface Build extends Omit<BaseBuild, 'reason' | 'status' | 'result'> {
54
+ artifacts: BuildArtifact[];
55
+ coverageStats: CodeCoverageStatistics[];
56
+ jobs: TimelineRecord[];
57
+ reason: string;
58
+ status: string;
59
+ result: string;
60
+ }
61
+ export interface TimelineRecord extends Omit<BaseTimelineRecord, 'result' | 'state'> {
62
+ result: string;
63
+ state: string;
64
+ }
65
+ export interface Tag extends GitInterfaces.GitRef {
66
+ commit?: GitInterfaces.GitAnnotatedTag;
67
+ }
68
+ export interface Repository extends GitInterfaces.GitRepository {
69
+ branches?: GitInterfaces.GitBranchStats[];
70
+ tags?: Tag[];
71
+ }
72
+ export interface PullRequest extends Omit<GitInterfaces.GitPullRequest, 'status' | 'mergeStatus'> {
73
+ status: string;
74
+ mergeStatus: string;
75
+ threads: GitInterfaces.GitPullRequestCommentThread[];
76
+ }
77
+ export interface Commit extends GitInterfaces.GitCommitRef {
78
+ repository?: Repository;
79
+ branch?: string;
80
+ }
81
+ export interface WorkItemState {
82
+ name: string;
83
+ category: string;
84
+ }
85
+ export interface WorkItemStateRevision {
86
+ readonly state: WorkItemState;
87
+ readonly changedDate: string;
88
+ }
89
+ export interface WorkItemAssigneeRevision {
90
+ readonly assignee: IdentityRef;
91
+ readonly changedDate: string;
92
+ }
93
+ export interface WorkItemIterationRevision {
94
+ readonly iteration: number;
95
+ readonly addedAt: string;
96
+ readonly removedAt?: string;
97
+ }
98
+ export interface WorkItemRevisions {
99
+ readonly states: ReadonlyArray<WorkItemStateRevision>;
100
+ readonly assignees: ReadonlyArray<WorkItemAssigneeRevision>;
101
+ readonly iterations: ReadonlyArray<WorkItemIterationRevision>;
102
+ }
103
+ export interface WorkItemWithRevisions extends WorkItem {
104
+ revisions: WorkItemRevisions;
105
+ additionalFields: ReadonlyArray<AdditionalField>;
106
+ projectId: string;
107
+ }
108
+ export interface AdditionalField {
109
+ name: string;
110
+ value: string;
111
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/azure-devops/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bitbucket/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}