@elisra-devops/docgen-data-provider 1.11.0 → 1.12.1

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.
@@ -168,6 +168,7 @@ export interface PipelineLinks {
168
168
  }
169
169
  export interface PipelineResources {
170
170
  repositories: any;
171
+ pipelines: any;
171
172
  }
172
173
  export interface PipelineRun {
173
174
  _links: PipelineLinks;
@@ -4,16 +4,127 @@ export default class PipelinesDataProvider {
4
4
  orgUrl: string;
5
5
  token: string;
6
6
  constructor(orgUrl: string, token: string);
7
- findPreviousPipeline(projectName: string, pipeLineId: string, toPipelineRunId: number, toPipeline: any, searchPrevPipelineFromDifferentCommit: boolean): Promise<any>;
7
+ findPreviousPipeline(teamProject: string, pipelineId: string, toPipelineRunId: number, targetPipeline: any, searchPrevPipelineFromDifferentCommit: boolean, fromStage?: string): Promise<any>;
8
+ /**
9
+ * Determines if a pipeline run is invalid based on various conditions.
10
+ *
11
+ * @param pipelineRun - The pipeline run object to evaluate.
12
+ * @param toPipelineRunId - The pipeline run ID to compare against.
13
+ * @param fromStage - The stage from which the pipeline run originated.
14
+ * @returns `true` if the pipeline run is considered invalid, `false` otherwise.
15
+ */
16
+ private isInvalidPipelineRun;
17
+ /**
18
+ * Checks if a specific stage in a pipeline run was successful.
19
+ *
20
+ * @param pipelineRun - The pipeline run object containing details of the run.
21
+ * @param teamProject - The name of the team project.
22
+ * @param fromStage - The name of the stage to check.
23
+ * @returns A promise that resolves to a boolean indicating whether the stage was successful.
24
+ */
25
+ private isStageSuccessful;
26
+ /**
27
+ * Determines if two pipelines match based on their repository and version information.
28
+ *
29
+ * @param fromPipeline - The source pipeline to compare.
30
+ * @param targetPipeline - The target pipeline to compare against.
31
+ * @param searchPrevPipelineFromDifferentCommit - A flag indicating whether to search for a previous pipeline from a different commit.
32
+ * @returns `true` if the pipelines match based on the repository and version criteria; otherwise, `false`.
33
+ */
34
+ private isMatchingPipeline;
35
+ /**
36
+ * Retrieves a set of pipeline resources from a given pipeline run object.
37
+ *
38
+ * @param inPipeline - The pipeline run object containing resources.
39
+ * @returns A promise that resolves to an array of unique pipeline resource objects.
40
+ *
41
+ * The function performs the following steps:
42
+ * 1. Initializes an empty set to store unique pipeline resources.
43
+ * 2. Checks if the input pipeline has any resources of type pipelines.
44
+ * 3. Iterates over each pipeline resource and processes it.
45
+ * 4. Fixes the URL of the pipeline resource to match the build API format.
46
+ * 5. Fetches the build details using the fixed URL.
47
+ * 6. If the build response is valid and matches the criteria, adds the pipeline resource to the set.
48
+ * 7. Returns an array of unique pipeline resources.
49
+ *
50
+ * The returned pipeline resource object contains the following properties:
51
+ * - name: The alias name of the resource pipeline.
52
+ * - buildId: The ID of the resource pipeline.
53
+ * - definitionId: The ID of the build definition.
54
+ * - buildNumber: The build number.
55
+ * - teamProject: The name of the team project.
56
+ * - provider: The type of repository provider.
57
+ *
58
+ * @throws Will log an error message if there is an issue fetching the pipeline resource.
59
+ */
60
+ getPipelineResourcePipelinesFromObject(inPipeline: PipelineRun): Promise<any[] | Set<any>>;
61
+ /**
62
+ * Retrieves a set of resource repositories from a given pipeline object.
63
+ *
64
+ * @param inPipeline - The pipeline run object containing resource information.
65
+ * @param gitDataProviderInstance - An instance of GitDataProvider to fetch repository details.
66
+ * @returns A promise that resolves to an array of unique resource repositories.
67
+ */
8
68
  getPipelineResourceRepositoriesFromObject(inPipeline: PipelineRun, gitDataProviderInstance: GitDataProvider): Promise<any[] | Set<any>>;
9
- getPipelineFromPipelineId(projectName: string, buildId: number): Promise<any>;
10
- getPipelineRunBuildById(projectName: string, pipelineId: number, runId: number): Promise<any>;
69
+ /**
70
+ * Retrieves the details of a specific pipeline build by its build ID.
71
+ *
72
+ * @param projectName - The name of the project that contains the pipeline.
73
+ * @param buildId - The unique identifier of the build to retrieve.
74
+ * @returns A promise that resolves to the content of the build details.
75
+ */
76
+ getPipelineBuildByBuildId(projectName: string, buildId: number): Promise<any>;
77
+ /**
78
+ * Retrieves the details of a specific pipeline run.
79
+ *
80
+ * @param projectName - The name of the project containing the pipeline.
81
+ * @param pipelineId - The ID of the pipeline.
82
+ * @param runId - The ID of the pipeline run.
83
+ * @returns A promise that resolves to the content of the pipeline run.
84
+ */
85
+ getPipelineRunDetails(projectName: string, pipelineId: number, runId: number): Promise<PipelineRun>;
11
86
  TriggerBuildById(projectName: string, buildDefanitionId: string, parameter: any): Promise<any>;
87
+ /**
88
+ * Retrieves an artifact by build ID from a specified project.
89
+ *
90
+ * @param {string} projectName - The name of the project.
91
+ * @param {string} buildId - The ID of the build.
92
+ * @param {string} artifactName - The name of the artifact to retrieve.
93
+ * @returns {Promise<any>} A promise that resolves to the artifact data.
94
+ * @throws Will throw an error if the retrieval process fails.
95
+ *
96
+ * @example
97
+ * const artifact = await GetArtifactByBuildId('MyProject', '12345', 'MyArtifact');
98
+ * console.log(artifact);
99
+ */
12
100
  GetArtifactByBuildId(projectName: string, buildId: string, artifactName: string): Promise<any>;
101
+ /**
102
+ * Retrieves a release by its release ID for a given project.
103
+ *
104
+ * @param projectName - The name of the project.
105
+ * @param releaseId - The ID of the release to retrieve.
106
+ * @returns A promise that resolves to the release data.
107
+ */
13
108
  GetReleaseByReleaseId(projectName: string, releaseId: number): Promise<any>;
109
+ /**
110
+ * Retrieves the run history of a specified pipeline within a project.
111
+ *
112
+ * @param projectName - The name of the project containing the pipeline.
113
+ * @param pipelineId - The ID of the pipeline to retrieve the run history for.
114
+ * @returns An object containing the count of successful runs and an array of successful run details.
115
+ * @throws Will log an error message if the pipeline run history could not be fetched.
116
+ */
14
117
  GetPipelineRunHistory(projectName: string, pipelineId: string): Promise<any>;
15
118
  GetReleaseHistory(projectName: string, definitionId: string): Promise<any>;
16
119
  GetAllPipelines(projectName: string): Promise<any>;
17
120
  GetAllReleaseDefenitions(projectName: string): Promise<any>;
18
121
  GetRecentReleaseArtifactInfo(projectName: string): Promise<any[]>;
122
+ /**
123
+ * Get stage name
124
+ * @param pipelineRunId requested pipeline run id
125
+ * @param teamProject requested team project
126
+ * @param stageName stage name to search for in the pipeline
127
+ * @returns
128
+ */
129
+ private getPipelineStageName;
19
130
  }
@@ -9,48 +9,143 @@ class PipelinesDataProvider {
9
9
  this.orgUrl = orgUrl;
10
10
  this.token = token;
11
11
  }
12
- async findPreviousPipeline(projectName, pipeLineId, toPipelineRunId, toPipeline, searchPrevPipelineFromDifferentCommit) {
13
- // get pipeline runs:
14
- const pipelineRuns = await this.GetPipelineRunHistory(projectName, pipeLineId);
12
+ async findPreviousPipeline(teamProject, pipelineId, toPipelineRunId, targetPipeline, searchPrevPipelineFromDifferentCommit, fromStage = '') {
13
+ const pipelineRuns = await this.GetPipelineRunHistory(teamProject, pipelineId);
14
+ if (!pipelineRuns.value) {
15
+ return undefined;
16
+ }
15
17
  for (const pipelineRun of pipelineRuns.value) {
16
- if (pipelineRun.id >= toPipelineRunId) {
18
+ if (this.isInvalidPipelineRun(pipelineRun, toPipelineRunId, fromStage)) {
17
19
  continue;
18
20
  }
19
- if (pipelineRun.result !== 'succeeded') {
21
+ if (fromStage && !(await this.isStageSuccessful(pipelineRun, teamProject, fromStage))) {
20
22
  continue;
21
23
  }
22
- const fromPipeline = await this.getPipelineFromPipelineId(projectName, Number(pipeLineId));
24
+ const fromPipeline = await this.getPipelineRunDetails(teamProject, Number(pipelineId), pipelineRun.id);
23
25
  if (!fromPipeline.resources.repositories) {
24
26
  continue;
25
27
  }
26
- const fromPipelineRepositories = fromPipeline.resources.repositories;
27
- logger_1.default.debug(`from pipeline repositories ${JSON.stringify(fromPipelineRepositories)}`);
28
- const toPipelineRepositories = toPipeline.resources.repositories;
29
- logger_1.default.debug(`to pipeline repositories ${JSON.stringify(toPipelineRepositories)}`);
30
- const fromPipeLineSelfRepo = '__designer_repo' in fromPipelineRepositories
31
- ? fromPipelineRepositories['__designer_repo']
32
- : 'self' in fromPipelineRepositories
33
- ? fromPipelineRepositories['self']
34
- : undefined;
35
- const toPipeLineSelfRepo = '__designer_repo' in toPipelineRepositories
36
- ? toPipelineRepositories['__designer_repo']
37
- : 'self' in toPipelineRepositories
38
- ? toPipelineRepositories['self']
39
- : undefined;
40
- if (fromPipeLineSelfRepo.repository.id === toPipeLineSelfRepo.repository.id &&
41
- fromPipeLineSelfRepo.version === toPipeLineSelfRepo.version) {
42
- if (searchPrevPipelineFromDifferentCommit) {
43
- continue;
44
- }
45
- }
46
- if (fromPipeLineSelfRepo.repository.id === toPipeLineSelfRepo.repository.id &&
47
- fromPipeLineSelfRepo.refName !== toPipeLineSelfRepo.refName) {
48
- continue;
28
+ if (this.isMatchingPipeline(fromPipeline, targetPipeline, searchPrevPipelineFromDifferentCommit)) {
29
+ return pipelineRun.id;
49
30
  }
50
- return pipelineRun.id;
51
31
  }
52
32
  return undefined;
53
33
  }
34
+ /**
35
+ * Determines if a pipeline run is invalid based on various conditions.
36
+ *
37
+ * @param pipelineRun - The pipeline run object to evaluate.
38
+ * @param toPipelineRunId - The pipeline run ID to compare against.
39
+ * @param fromStage - The stage from which the pipeline run originated.
40
+ * @returns `true` if the pipeline run is considered invalid, `false` otherwise.
41
+ */
42
+ isInvalidPipelineRun(pipelineRun, toPipelineRunId, fromStage) {
43
+ return (pipelineRun.id >= toPipelineRunId ||
44
+ ['canceled', 'failed', 'canceling'].includes(pipelineRun.result) ||
45
+ (pipelineRun.result === 'unknown' && !fromStage) ||
46
+ (pipelineRun.result !== 'succeeded' && !fromStage));
47
+ }
48
+ /**
49
+ * Checks if a specific stage in a pipeline run was successful.
50
+ *
51
+ * @param pipelineRun - The pipeline run object containing details of the run.
52
+ * @param teamProject - The name of the team project.
53
+ * @param fromStage - The name of the stage to check.
54
+ * @returns A promise that resolves to a boolean indicating whether the stage was successful.
55
+ */
56
+ async isStageSuccessful(pipelineRun, teamProject, fromStage) {
57
+ const fromPipelineStage = await this.getPipelineStageName(pipelineRun, teamProject, fromStage);
58
+ return (fromPipelineStage && fromPipelineStage.state === 'completed' && fromPipelineStage.result === 'succeeded');
59
+ }
60
+ /**
61
+ * Determines if two pipelines match based on their repository and version information.
62
+ *
63
+ * @param fromPipeline - The source pipeline to compare.
64
+ * @param targetPipeline - The target pipeline to compare against.
65
+ * @param searchPrevPipelineFromDifferentCommit - A flag indicating whether to search for a previous pipeline from a different commit.
66
+ * @returns `true` if the pipelines match based on the repository and version criteria; otherwise, `false`.
67
+ */
68
+ isMatchingPipeline(fromPipeline, targetPipeline, searchPrevPipelineFromDifferentCommit) {
69
+ const fromRepo = fromPipeline.resources.repositories[0].self || fromPipeline.resources.repositories.__designer_repo;
70
+ const targetRepo = targetPipeline.resources.repositories[0].self || targetPipeline.resources.repositories.__designer_repo;
71
+ if (fromRepo.repository.id !== targetRepo.repository.id) {
72
+ return false;
73
+ }
74
+ if (fromRepo.version === targetRepo.version) {
75
+ return !searchPrevPipelineFromDifferentCommit;
76
+ }
77
+ return fromRepo.refName === targetRepo.refName;
78
+ }
79
+ /**
80
+ * Retrieves a set of pipeline resources from a given pipeline run object.
81
+ *
82
+ * @param inPipeline - The pipeline run object containing resources.
83
+ * @returns A promise that resolves to an array of unique pipeline resource objects.
84
+ *
85
+ * The function performs the following steps:
86
+ * 1. Initializes an empty set to store unique pipeline resources.
87
+ * 2. Checks if the input pipeline has any resources of type pipelines.
88
+ * 3. Iterates over each pipeline resource and processes it.
89
+ * 4. Fixes the URL of the pipeline resource to match the build API format.
90
+ * 5. Fetches the build details using the fixed URL.
91
+ * 6. If the build response is valid and matches the criteria, adds the pipeline resource to the set.
92
+ * 7. Returns an array of unique pipeline resources.
93
+ *
94
+ * The returned pipeline resource object contains the following properties:
95
+ * - name: The alias name of the resource pipeline.
96
+ * - buildId: The ID of the resource pipeline.
97
+ * - definitionId: The ID of the build definition.
98
+ * - buildNumber: The build number.
99
+ * - teamProject: The name of the team project.
100
+ * - provider: The type of repository provider.
101
+ *
102
+ * @throws Will log an error message if there is an issue fetching the pipeline resource.
103
+ */
104
+ async getPipelineResourcePipelinesFromObject(inPipeline) {
105
+ const resourcePipelines = new Set();
106
+ if (!inPipeline.resources.pipelines) {
107
+ return resourcePipelines;
108
+ }
109
+ const pipelines = inPipeline.resources.pipelines;
110
+ const pipelineEntries = Object.entries(pipelines);
111
+ await Promise.all(pipelineEntries.map(async ([resourcePipelineAlias, resource]) => {
112
+ const resourcePipelineObj = resource.pipeline;
113
+ const resourcePipelineName = resourcePipelineAlias;
114
+ let urlBeforeFix = resourcePipelineObj.url;
115
+ urlBeforeFix = urlBeforeFix.substring(0, urlBeforeFix.indexOf('?revision'));
116
+ const fixedUrl = urlBeforeFix.replace('/_apis/pipelines/', '/_apis/build/builds/');
117
+ let buildResponse;
118
+ try {
119
+ buildResponse = await tfs_1.TFSServices.getItemContent(fixedUrl, this.token, 'get');
120
+ }
121
+ catch (err) {
122
+ logger_1.default.error(`Error fetching pipeline ${resourcePipelineName} : ${err.message}`);
123
+ }
124
+ if (buildResponse &&
125
+ buildResponse.definition.type === 'build' &&
126
+ buildResponse.repository.type === 'TfsGit') {
127
+ let resourcePipelineToAdd = {
128
+ name: resourcePipelineName,
129
+ buildId: resourcePipelineObj.id,
130
+ definitionId: buildResponse.definition.id,
131
+ buildNumber: buildResponse.buildNumber,
132
+ teamProject: buildResponse.project.name,
133
+ provider: buildResponse.repository.type,
134
+ };
135
+ if (!resourcePipelines.has(resourcePipelineToAdd)) {
136
+ resourcePipelines.add(resourcePipelineToAdd);
137
+ }
138
+ }
139
+ }));
140
+ return [...resourcePipelines];
141
+ }
142
+ /**
143
+ * Retrieves a set of resource repositories from a given pipeline object.
144
+ *
145
+ * @param inPipeline - The pipeline run object containing resource information.
146
+ * @param gitDataProviderInstance - An instance of GitDataProvider to fetch repository details.
147
+ * @returns A promise that resolves to an array of unique resource repositories.
148
+ */
54
149
  async getPipelineResourceRepositoriesFromObject(inPipeline, gitDataProviderInstance) {
55
150
  const resourceRepositories = new Set();
56
151
  if (!inPipeline.resources.repositories) {
@@ -75,11 +170,26 @@ class PipelinesDataProvider {
75
170
  }
76
171
  return [...resourceRepositories];
77
172
  }
78
- async getPipelineFromPipelineId(projectName, buildId) {
173
+ /**
174
+ * Retrieves the details of a specific pipeline build by its build ID.
175
+ *
176
+ * @param projectName - The name of the project that contains the pipeline.
177
+ * @param buildId - The unique identifier of the build to retrieve.
178
+ * @returns A promise that resolves to the content of the build details.
179
+ */
180
+ async getPipelineBuildByBuildId(projectName, buildId) {
79
181
  let url = `${this.orgUrl}${projectName}/_apis/build/builds/${buildId}`;
80
182
  return tfs_1.TFSServices.getItemContent(url, this.token, 'get');
81
183
  } //GetCommitForPipeline
82
- async getPipelineRunBuildById(projectName, pipelineId, runId) {
184
+ /**
185
+ * Retrieves the details of a specific pipeline run.
186
+ *
187
+ * @param projectName - The name of the project containing the pipeline.
188
+ * @param pipelineId - The ID of the pipeline.
189
+ * @param runId - The ID of the pipeline run.
190
+ * @returns A promise that resolves to the content of the pipeline run.
191
+ */
192
+ async getPipelineRunDetails(projectName, pipelineId, runId) {
83
193
  let url = `${this.orgUrl}${projectName}/_apis/pipelines/${pipelineId}/runs/${runId}`;
84
194
  return tfs_1.TFSServices.getItemContent(url, this.token);
85
195
  }
@@ -95,6 +205,19 @@ class PipelinesDataProvider {
95
205
  let res = await tfs_1.TFSServices.postRequest(url, this.token, 'post', data, null);
96
206
  return res;
97
207
  }
208
+ /**
209
+ * Retrieves an artifact by build ID from a specified project.
210
+ *
211
+ * @param {string} projectName - The name of the project.
212
+ * @param {string} buildId - The ID of the build.
213
+ * @param {string} artifactName - The name of the artifact to retrieve.
214
+ * @returns {Promise<any>} A promise that resolves to the artifact data.
215
+ * @throws Will throw an error if the retrieval process fails.
216
+ *
217
+ * @example
218
+ * const artifact = await GetArtifactByBuildId('MyProject', '12345', 'MyArtifact');
219
+ * console.log(artifact);
220
+ */
98
221
  async GetArtifactByBuildId(projectName, buildId, artifactName) {
99
222
  try {
100
223
  logger_1.default.info(`Get artifactory from project ${projectName},BuildId ${buildId} artifact name ${artifactName}`);
@@ -116,6 +239,13 @@ class PipelinesDataProvider {
116
239
  throw new Error(String(err));
117
240
  }
118
241
  }
242
+ /**
243
+ * Retrieves a release by its release ID for a given project.
244
+ *
245
+ * @param projectName - The name of the project.
246
+ * @param releaseId - The ID of the release to retrieve.
247
+ * @returns A promise that resolves to the release data.
248
+ */
119
249
  async GetReleaseByReleaseId(projectName, releaseId) {
120
250
  let url = `${this.orgUrl}${projectName}/_apis/release/releases/${releaseId}`;
121
251
  if (url.startsWith('https://dev.azure.com')) {
@@ -123,16 +253,29 @@ class PipelinesDataProvider {
123
253
  }
124
254
  return tfs_1.TFSServices.getItemContent(url, this.token, 'get', null, null);
125
255
  }
256
+ /**
257
+ * Retrieves the run history of a specified pipeline within a project.
258
+ *
259
+ * @param projectName - The name of the project containing the pipeline.
260
+ * @param pipelineId - The ID of the pipeline to retrieve the run history for.
261
+ * @returns An object containing the count of successful runs and an array of successful run details.
262
+ * @throws Will log an error message if the pipeline run history could not be fetched.
263
+ */
126
264
  async GetPipelineRunHistory(projectName, pipelineId) {
127
- let url = `${this.orgUrl}${projectName}/_apis/pipelines/${pipelineId}/runs`;
128
- let res = await tfs_1.TFSServices.getItemContent(url, this.token, 'get', null, null);
129
- //Filter successful builds only
130
- let { value } = res;
131
- if (value) {
132
- const successfulRunHistory = value.filter((run) => run.result !== 'failed' || run.result !== 'canceled');
133
- return { count: successfulRunHistory.length, value: successfulRunHistory };
265
+ try {
266
+ let url = `${this.orgUrl}${projectName}/_apis/pipelines/${pipelineId}/runs`;
267
+ let res = await tfs_1.TFSServices.getItemContent(url, this.token, 'get', null, null);
268
+ //Filter successful builds only
269
+ let { value } = res;
270
+ if (value) {
271
+ const successfulRunHistory = value.filter((run) => run.result !== 'failed' || run.result !== 'canceled');
272
+ return { count: successfulRunHistory.length, value: successfulRunHistory };
273
+ }
274
+ return res;
275
+ }
276
+ catch (err) {
277
+ logger_1.default.error(`Could not fetch Pipeline Run History: ${err.message}`);
134
278
  }
135
- return res;
136
279
  }
137
280
  async GetReleaseHistory(projectName, definitionId) {
138
281
  let url = `${this.orgUrl}${projectName}/_apis/release/releases?definitionId=${definitionId}&$top=200`;
@@ -177,6 +320,29 @@ class PipelinesDataProvider {
177
320
  }
178
321
  return artifactInfo;
179
322
  }
323
+ /**
324
+ * Get stage name
325
+ * @param pipelineRunId requested pipeline run id
326
+ * @param teamProject requested team project
327
+ * @param stageName stage name to search for in the pipeline
328
+ * @returns
329
+ */
330
+ async getPipelineStageName(pipelineRunId, teamProject, stageName) {
331
+ let url = `${this.orgUrl}${teamProject}/_apis/build/builds/${pipelineRunId}/timeline?api-version=6.0`;
332
+ try {
333
+ const getPipelineLogsResponse = await tfs_1.TFSServices.getItemContent(url, this.token, 'get');
334
+ const { records } = getPipelineLogsResponse;
335
+ for (const record of records) {
336
+ if (record.type === 'Stage' && record.name === stageName) {
337
+ return record;
338
+ }
339
+ }
340
+ }
341
+ catch (err) {
342
+ logger_1.default.error(`Error fetching pipeline ${pipelineRunId} with url ${url} : ${err.message}`);
343
+ return undefined;
344
+ }
345
+ }
180
346
  }
181
347
  exports.default = PipelinesDataProvider;
182
348
  //# sourceMappingURL=PipelinesDataProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PipelinesDataProvider.js","sourceRoot":"","sources":["../../src/modules/PipelinesDataProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PipelinesDataProvider.js","sourceRoot":"","sources":["../../src/modules/PipelinesDataProvider.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,25 @@ export default class TicketsDataProvider {
10
10
  GetParentLink(project: string, wi: any): Promise<Trace>;
11
11
  GetRelationsIds(ids: any): Promise<Map<string, Relations>>;
12
12
  GetLinks(project: string, wi: any, links: any): Promise<Links[]>;
13
+ /**
14
+ * Getting shared queries
15
+ * @param project project name
16
+ * @param path query path
17
+ * @param docType document type
18
+ * @returns
19
+ */
13
20
  GetSharedQueries(project: string, path: string, docType?: string): Promise<any>;
14
- private fetchOneHopQueriesForStr;
21
+ /**
22
+ * fetches linked queries
23
+ * @param queries fetched queries
24
+ * @param onlyTestReq get only test req
25
+ * @returns ReqTestTree and TestReqTree
26
+ */
27
+ private fetchLinkedQueries;
15
28
  private fetchAnyQueries;
16
- GetQueryResultsFromWiql(wiqlHref?: string, displayAsTable?: boolean): Promise<any>;
29
+ GetQueryResultsFromWiql(wiqlHref: string | undefined, displayAsTable: boolean | undefined, testCaseToRequirementMap: Map<number, Set<any>>): Promise<any>;
17
30
  private parseDirectLinkedQueryResultForTableFormat;
31
+ private mapTestCaseToRequirement;
18
32
  private parseFlatQueryResultForTableFormat;
19
33
  private parseTreeQueryResult;
20
34
  private initTreeQueryResultItem;
@@ -34,6 +48,9 @@ export default class TicketsDataProvider {
34
48
  GetWorkitemAttachmentsJSONData(project: string, attachmentId: string): Promise<any>;
35
49
  UpdateWorkItem(projectName: string, wiBody: any, workItemId: number, byPass: boolean): Promise<any>;
36
50
  private structureAllQueryPath;
51
+ /**
52
+ * Recursively structures the query list for the requirement to test case and test case to requirement queries
53
+ */
37
54
  private structureReqTestQueries;
38
55
  private matchesReqTestCondition;
39
56
  private matchesTestReqCondition;