@elisra-devops/docgen-data-provider 1.63.13 → 1.68.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/.github/workflows/ci.yml +26 -9
- package/.github/workflows/release.yml +9 -10
- package/README.md +50 -24
- package/bin/helpers/tfs.d.ts +3 -0
- package/bin/helpers/tfs.js +44 -7
- package/bin/helpers/tfs.js.map +1 -1
- package/bin/modules/GitDataProvider.d.ts +10 -0
- package/bin/modules/GitDataProvider.js +10 -0
- package/bin/modules/GitDataProvider.js.map +1 -1
- package/bin/modules/TestDataProvider.js +0 -1
- package/bin/modules/TestDataProvider.js.map +1 -1
- package/bin/modules/TicketsDataProvider.d.ts +63 -24
- package/bin/modules/TicketsDataProvider.js +216 -114
- package/bin/modules/TicketsDataProvider.js.map +1 -1
- package/bin/tests/helpers/helper.test.js +279 -0
- package/bin/tests/helpers/helper.test.js.map +1 -0
- package/bin/{helpers/test → tests/helpers}/tfs.test.js +312 -49
- package/bin/tests/helpers/tfs.test.js.map +1 -0
- package/bin/tests/index.test.js +25 -0
- package/bin/tests/index.test.js.map +1 -0
- package/bin/tests/models/tfs-data.test.js +160 -0
- package/bin/tests/models/tfs-data.test.js.map +1 -0
- package/bin/{modules/test → tests/modules}/JfrogDataProvider.test.js +9 -9
- package/bin/tests/modules/JfrogDataProvider.test.js.map +1 -0
- package/bin/tests/modules/ResultDataProvider.test.js +1942 -0
- package/bin/tests/modules/ResultDataProvider.test.js.map +1 -0
- package/bin/tests/modules/gitDataProvider.test.js +1888 -0
- package/bin/tests/modules/gitDataProvider.test.js.map +1 -0
- package/bin/{modules/test → tests/modules}/managmentDataProvider.test.js +13 -1
- package/bin/tests/modules/managmentDataProvider.test.js.map +1 -0
- package/bin/tests/modules/pipelineDataProvider.test.d.ts +1 -0
- package/bin/tests/modules/pipelineDataProvider.test.js +783 -0
- package/bin/tests/modules/pipelineDataProvider.test.js.map +1 -0
- package/bin/tests/modules/testDataProvider.test.d.ts +1 -0
- package/bin/tests/modules/testDataProvider.test.js +717 -0
- package/bin/tests/modules/testDataProvider.test.js.map +1 -0
- package/bin/tests/modules/ticketsDataProvider.test.d.ts +1 -0
- package/bin/tests/modules/ticketsDataProvider.test.js +1681 -0
- package/bin/tests/modules/ticketsDataProvider.test.js.map +1 -0
- package/bin/tests/utils/DataProviderUtils.test.d.ts +1 -0
- package/bin/tests/utils/DataProviderUtils.test.js +61 -0
- package/bin/tests/utils/DataProviderUtils.test.js.map +1 -0
- package/bin/tests/utils/testStepParserHelper.test.d.ts +1 -0
- package/bin/tests/utils/testStepParserHelper.test.js +359 -0
- package/bin/tests/utils/testStepParserHelper.test.js.map +1 -0
- package/package.json +9 -1
- package/src/helpers/tfs.ts +51 -7
- package/src/modules/GitDataProvider.ts +10 -0
- package/src/modules/TestDataProvider.ts +0 -1
- package/src/modules/TicketsDataProvider.ts +298 -141
- package/src/tests/helpers/helper.test.ts +337 -0
- package/src/tests/helpers/tfs.test.ts +1092 -0
- package/src/tests/index.test.ts +28 -0
- package/src/tests/models/tfs-data.test.ts +203 -0
- package/src/tests/modules/JfrogDataProvider.test.ts +167 -0
- package/src/tests/modules/ResultDataProvider.test.ts +2571 -0
- package/src/tests/modules/gitDataProvider.test.ts +2628 -0
- package/src/{modules/test → tests/modules}/managmentDataProvider.test.ts +33 -1
- package/src/tests/modules/pipelineDataProvider.test.ts +1038 -0
- package/src/tests/modules/testDataProvider.test.ts +1046 -0
- package/src/tests/modules/ticketsDataProvider.test.ts +2204 -0
- package/src/tests/utils/DataProviderUtils.test.ts +76 -0
- package/src/tests/utils/testStepParserHelper.test.ts +437 -0
- package/tsconfig.json +1 -0
- package/bin/helpers/test/tfs.test.js.map +0 -1
- package/bin/modules/test/JfrogDataProvider.test.js.map +0 -1
- package/bin/modules/test/ResultDataProvider.test.js +0 -444
- package/bin/modules/test/ResultDataProvider.test.js.map +0 -1
- package/bin/modules/test/gitDataProvider.test.js +0 -428
- package/bin/modules/test/gitDataProvider.test.js.map +0 -1
- package/bin/modules/test/managmentDataProvider.test.js.map +0 -1
- package/bin/modules/test/pipelineDataProvider.test.js +0 -237
- package/bin/modules/test/pipelineDataProvider.test.js.map +0 -1
- package/bin/modules/test/testDataProvider.test.js +0 -234
- package/bin/modules/test/testDataProvider.test.js.map +0 -1
- package/bin/modules/test/ticketsDataProvider.test.js +0 -348
- package/bin/modules/test/ticketsDataProvider.test.js.map +0 -1
- package/src/helpers/test/tfs.test.ts +0 -748
- package/src/modules/test/JfrogDataProvider.test.ts +0 -171
- package/src/modules/test/ResultDataProvider.test.ts +0 -542
- package/src/modules/test/gitDataProvider.test.ts +0 -645
- package/src/modules/test/pipelineDataProvider.test.ts +0 -292
- package/src/modules/test/testDataProvider.test.ts +0 -318
- package/src/modules/test/ticketsDataProvider.test.ts +0 -462
- /package/bin/{helpers/test/tfs.test.d.ts → tests/helpers/helper.test.d.ts} +0 -0
- /package/bin/{modules/test/JfrogDataProvider.test.d.ts → tests/helpers/tfs.test.d.ts} +0 -0
- /package/bin/{modules/test/ResultDataProvider.test.d.ts → tests/index.test.d.ts} +0 -0
- /package/bin/{modules/test/gitDataProvider.test.d.ts → tests/models/tfs-data.test.d.ts} +0 -0
- /package/bin/{modules/test/managmentDataProvider.test.d.ts → tests/modules/JfrogDataProvider.test.d.ts} +0 -0
- /package/bin/{modules/test/pipelineDataProvider.test.d.ts → tests/modules/ResultDataProvider.test.d.ts} +0 -0
- /package/bin/{modules/test/testDataProvider.test.d.ts → tests/modules/gitDataProvider.test.d.ts} +0 -0
- /package/bin/{modules/test/ticketsDataProvider.test.d.ts → tests/modules/managmentDataProvider.test.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elisra-devops/docgen-data-provider",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.68.0",
|
|
4
4
|
"description": "A document generator data provider, aimed to retrive data from azure devops",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"@types/caseless": "^0.12.5",
|
|
20
20
|
"@types/istanbul-lib-report": "^3.0.3",
|
|
21
21
|
"@types/jest": "^29.5.12",
|
|
22
|
+
"@types/node": "^24.10.1",
|
|
22
23
|
"@types/tough-cookie": "^4.0.5",
|
|
23
24
|
"@types/yargs-parser": "^21.0.3",
|
|
24
25
|
"baseline-browser-mapping": "^2.9.0",
|
|
@@ -39,6 +40,13 @@
|
|
|
39
40
|
},
|
|
40
41
|
"jest": {
|
|
41
42
|
"preset": "ts-jest",
|
|
43
|
+
"testMatch": [
|
|
44
|
+
"<rootDir>/src/tests/**/*.test.ts"
|
|
45
|
+
],
|
|
46
|
+
"collectCoverageFrom": [
|
|
47
|
+
"src/**/*.ts",
|
|
48
|
+
"!src/tests/**"
|
|
49
|
+
],
|
|
42
50
|
"testPathIgnorePatterns": [
|
|
43
51
|
"/bin/"
|
|
44
52
|
],
|
package/src/helpers/tfs.ts
CHANGED
|
@@ -31,13 +31,53 @@ export class TFSServices {
|
|
|
31
31
|
}
|
|
32
32
|
);
|
|
33
33
|
|
|
34
|
+
private static getBearerToken(rawToken: string): string | null {
|
|
35
|
+
const token = String(rawToken || '').trim();
|
|
36
|
+
if (!token) return null;
|
|
37
|
+
if (/^bearer:/i.test(token)) {
|
|
38
|
+
return token.slice('bearer:'.length).trim() || null;
|
|
39
|
+
}
|
|
40
|
+
const m = /^bearer\s+(.+)$/i.exec(token);
|
|
41
|
+
if (m?.[1]) return m[1].trim() || null;
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
private static addAuthHeader(config: AxiosRequestConfig, headerName: string, value: string) {
|
|
46
|
+
const existing = (config.headers ?? {}) as any;
|
|
47
|
+
if (
|
|
48
|
+
existing &&
|
|
49
|
+
typeof existing === 'object' &&
|
|
50
|
+
existing.headers &&
|
|
51
|
+
typeof existing.headers === 'object'
|
|
52
|
+
) {
|
|
53
|
+
config.headers = { ...existing, headers: { ...existing.headers, [headerName]: value } };
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
config.headers = { ...existing, [headerName]: value };
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private static applyAuth(config: AxiosRequestConfig, rawToken: string) {
|
|
60
|
+
const bearer = this.getBearerToken(rawToken);
|
|
61
|
+
if (bearer) {
|
|
62
|
+
this.addAuthHeader(config, 'Authorization', `Bearer ${bearer}`);
|
|
63
|
+
delete (config as any).auth;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const token = String(rawToken || '').trim();
|
|
68
|
+
if (token) {
|
|
69
|
+
(config as any).auth = { username: '', password: token };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
34
73
|
public static async downloadZipFile(url: string, pat: string): Promise<any> {
|
|
35
74
|
try {
|
|
36
|
-
const
|
|
75
|
+
const config: AxiosRequestConfig = {
|
|
37
76
|
url: url,
|
|
38
77
|
headers: { 'Content-Type': 'application/zip' },
|
|
39
|
-
|
|
40
|
-
|
|
78
|
+
};
|
|
79
|
+
this.applyAuth(config, pat);
|
|
80
|
+
const res = await this.axiosInstance.request(config);
|
|
41
81
|
return res;
|
|
42
82
|
} catch (e) {
|
|
43
83
|
logger.error(`error download zip file , url : ${url}`);
|
|
@@ -56,11 +96,12 @@ export class TFSServices {
|
|
|
56
96
|
const config: AxiosRequestConfig = {
|
|
57
97
|
headers: customHeaders,
|
|
58
98
|
method: requestMethod,
|
|
59
|
-
auth: { username: '', password: pat },
|
|
60
99
|
data: data,
|
|
61
100
|
responseType: 'arraybuffer', // Important for binary data
|
|
62
101
|
};
|
|
63
102
|
|
|
103
|
+
this.applyAuth(config, pat);
|
|
104
|
+
|
|
64
105
|
return this.executeWithRetry(url, config, printError, (response) => {
|
|
65
106
|
// Convert binary data to Base64
|
|
66
107
|
const base64String = Buffer.from(response.data, 'binary').toString('base64');
|
|
@@ -87,11 +128,12 @@ export class TFSServices {
|
|
|
87
128
|
const config: AxiosRequestConfig = {
|
|
88
129
|
headers: customHeaders,
|
|
89
130
|
method: requestMethod,
|
|
90
|
-
auth: { username: '', password: pat },
|
|
91
131
|
data: data,
|
|
92
132
|
timeout: requestMethod.toLocaleLowerCase() === 'get' ? 10000 : undefined, // More reasonable timeout
|
|
93
133
|
};
|
|
94
134
|
|
|
135
|
+
this.applyAuth(config, pat);
|
|
136
|
+
|
|
95
137
|
return this.executeWithRetry(cleanUrl, config, printError, (response) => {
|
|
96
138
|
// Direct return of data without extra JSON parsing
|
|
97
139
|
return response.data;
|
|
@@ -112,11 +154,12 @@ export class TFSServices {
|
|
|
112
154
|
const config: AxiosRequestConfig = {
|
|
113
155
|
headers: customHeaders,
|
|
114
156
|
method: requestMethod,
|
|
115
|
-
auth: { username: '', password: pat },
|
|
116
157
|
data: data,
|
|
117
158
|
timeout: requestMethod.toLocaleLowerCase() === 'get' ? 10000 : undefined,
|
|
118
159
|
};
|
|
119
160
|
|
|
161
|
+
this.applyAuth(config, pat);
|
|
162
|
+
|
|
120
163
|
return this.executeWithRetry(cleanUrl, config, printError, (response) => {
|
|
121
164
|
return { data: response.data, headers: response.headers };
|
|
122
165
|
});
|
|
@@ -149,10 +192,11 @@ export class TFSServices {
|
|
|
149
192
|
url: url,
|
|
150
193
|
headers: customHeaders,
|
|
151
194
|
method: requestMethod,
|
|
152
|
-
auth: { username: '', password: pat },
|
|
153
195
|
data: data,
|
|
154
196
|
};
|
|
155
197
|
|
|
198
|
+
this.applyAuth(config, pat);
|
|
199
|
+
|
|
156
200
|
try {
|
|
157
201
|
const result = await this.axiosInstance.request(config);
|
|
158
202
|
return result;
|
|
@@ -74,6 +74,16 @@ export default class GitDataProvider {
|
|
|
74
74
|
return null;
|
|
75
75
|
} //GetBranch
|
|
76
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Gets a file from a Git repository.
|
|
79
|
+
*
|
|
80
|
+
* @param projectName - The name of the project.
|
|
81
|
+
* @param repoId - The ID of the repository.
|
|
82
|
+
* @param fileName - The name of the file to retrieve.
|
|
83
|
+
* @param version - The version descriptor for the file.
|
|
84
|
+
* @param gitRepoUrl - Optional URL of the Git repository.
|
|
85
|
+
* @returns The file content as a string.
|
|
86
|
+
*/
|
|
77
87
|
async GetFileFromGitRepo(
|
|
78
88
|
projectName: string,
|
|
79
89
|
repoId: string,
|
|
@@ -381,7 +381,6 @@ export default class TestDataProvider {
|
|
|
381
381
|
}
|
|
382
382
|
} catch (fetchError) {
|
|
383
383
|
// Log error silently or handle as needed
|
|
384
|
-
console.error('Failed to fetch relation content', fetchError);
|
|
385
384
|
logger.error(`Failed to fetch relation content for URL ${relation.url}: ${fetchError}`);
|
|
386
385
|
}
|
|
387
386
|
}
|