@datadog/datadog-ci 2.32.0 → 2.32.2
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/README.md +3 -3
- package/dist/commands/deployment/constants.d.ts +1 -0
- package/dist/commands/deployment/constants.js +2 -1
- package/dist/commands/deployment/constants.js.map +1 -1
- package/dist/commands/deployment/mark.d.ts +2 -1
- package/dist/commands/deployment/mark.js +21 -7
- package/dist/commands/deployment/mark.js.map +1 -1
- package/dist/commands/gate/evaluate.js +1 -1
- package/dist/commands/git-metadata/api.js +1 -1
- package/dist/commands/git-metadata/api.js.map +1 -1
- package/dist/commands/git-metadata/upload.js +1 -1
- package/dist/commands/git-metadata/upload.js.map +1 -1
- package/dist/commands/junit/upload.js +4 -1
- package/dist/commands/junit/upload.js.map +1 -1
- package/dist/commands/react-native/xcode.d.ts +1 -0
- package/dist/commands/react-native/xcode.js +38 -5
- package/dist/commands/react-native/xcode.js.map +1 -1
- package/dist/commands/sarif/renderer.d.ts +3 -3
- package/dist/commands/sarif/renderer.js +19 -4
- package/dist/commands/sarif/renderer.js.map +1 -1
- package/dist/commands/sarif/upload.js +8 -9
- package/dist/commands/sarif/upload.js.map +1 -1
- package/dist/commands/sbom/api.js.map +1 -1
- package/dist/commands/sbom/language.js +4 -1
- package/dist/commands/sbom/language.js.map +1 -1
- package/dist/commands/sbom/license.js +0 -4
- package/dist/commands/sbom/license.js.map +1 -1
- package/dist/commands/sbom/payload.js +76 -0
- package/dist/commands/sbom/payload.js.map +1 -1
- package/dist/commands/sbom/renderer.d.ts +6 -0
- package/dist/commands/sbom/renderer.js +58 -0
- package/dist/commands/sbom/renderer.js.map +1 -0
- package/dist/commands/sbom/types.d.ts +24 -0
- package/dist/commands/sbom/types.js +1 -0
- package/dist/commands/sbom/types.js.map +1 -1
- package/dist/commands/sbom/upload.js +22 -17
- package/dist/commands/sbom/upload.js.map +1 -1
- package/dist/commands/synthetics/api.d.ts +9 -3
- package/dist/commands/synthetics/api.js +28 -17
- package/dist/commands/synthetics/api.js.map +1 -1
- package/dist/commands/synthetics/batch.d.ts +3 -0
- package/dist/commands/synthetics/batch.js +172 -0
- package/dist/commands/synthetics/batch.js.map +1 -0
- package/dist/commands/synthetics/interfaces.d.ts +6 -6
- package/dist/commands/synthetics/reporters/default.d.ts +2 -2
- package/dist/commands/synthetics/reporters/default.js +1 -1
- package/dist/commands/synthetics/reporters/default.js.map +1 -1
- package/dist/commands/synthetics/run-tests-lib.d.ts +2 -6
- package/dist/commands/synthetics/run-tests-lib.js +46 -38
- package/dist/commands/synthetics/run-tests-lib.js.map +1 -1
- package/dist/commands/synthetics/utils/public.js +8 -130
- package/dist/commands/synthetics/utils/public.js.map +1 -1
- package/dist/helpers/tags.d.ts +5 -0
- package/dist/helpers/tags.js +8 -1
- package/dist/helpers/tags.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.js","sourceRoot":"","sources":["../../../src/commands/sbom/license.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"license.js","sourceRoot":"","sources":["../../../src/commands/sbom/license.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,62 @@ const crypto_1 = __importDefault(require("crypto"));
|
|
|
32
32
|
const tags_1 = require("../../helpers/tags");
|
|
33
33
|
const language_1 = require("./language");
|
|
34
34
|
const license_1 = require("./license");
|
|
35
|
+
// Parse a location from the file generated by osv-scanner into a location that can be
|
|
36
|
+
// sent to our API.
|
|
37
|
+
const parseLocation = (location) => {
|
|
38
|
+
if (!location) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
if (!location.file_name ||
|
|
42
|
+
!location.line_start ||
|
|
43
|
+
!location.line_end ||
|
|
44
|
+
!location.column_start ||
|
|
45
|
+
!location.column_end) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
if (location.line_end < location.line_start) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
if (location.line_end === location.line_start && location.column_end <= location.column_start) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
// check location values
|
|
55
|
+
if (location.line_start <= 0 || location.line_end <= 0 || location.column_start <= 0 || location.column_end <= 0) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
file_name: location.file_name,
|
|
60
|
+
start: {
|
|
61
|
+
line: location.line_start,
|
|
62
|
+
col: location.column_start,
|
|
63
|
+
},
|
|
64
|
+
end: {
|
|
65
|
+
line: location.line_end,
|
|
66
|
+
col: location.column_end,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
// Parse all locations from the OSV scanner. If one fails to be parse, it's set to undefined
|
|
71
|
+
const parseLocationsString = (locations) => {
|
|
72
|
+
try {
|
|
73
|
+
const parsed = JSON.parse(locations);
|
|
74
|
+
const res = {
|
|
75
|
+
block: parseLocation(parsed['block']),
|
|
76
|
+
namespace: parseLocation(parsed['namespace']),
|
|
77
|
+
name: parseLocation(parsed['name']),
|
|
78
|
+
version: parseLocation(parsed['version']),
|
|
79
|
+
};
|
|
80
|
+
// if block is not defined, the API fails and we should rather ignore the payload
|
|
81
|
+
if (!res.block) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
return res;
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
console.error(`error when parsing locations: ${e}`);
|
|
88
|
+
}
|
|
89
|
+
return undefined;
|
|
90
|
+
};
|
|
35
91
|
// Generate the payload we send to the API
|
|
36
92
|
// jsonContent is the SBOM file content read from disk
|
|
37
93
|
// tags are the list of tags we retrieved
|
|
@@ -62,6 +118,25 @@ const generatePayload = (jsonContent, tags, service, env) => {
|
|
|
62
118
|
console.error(`cannot find purl for component ${component['name']}`);
|
|
63
119
|
continue;
|
|
64
120
|
}
|
|
121
|
+
const locations = [];
|
|
122
|
+
// Extract the unique location strings from the file.
|
|
123
|
+
const locationsStrings = new Set();
|
|
124
|
+
if (component['evidence'] && component['evidence']['occurrences']) {
|
|
125
|
+
for (const occ of component['evidence']['occurrences']) {
|
|
126
|
+
if (occ['location']) {
|
|
127
|
+
const loc = occ['location'];
|
|
128
|
+
if (!locationsStrings.has(loc)) {
|
|
129
|
+
locationsStrings.add(loc);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
for (const l of locationsStrings) {
|
|
135
|
+
const loc = parseLocationsString(l);
|
|
136
|
+
if (loc) {
|
|
137
|
+
locations.push(loc);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
65
140
|
const dependency = {
|
|
66
141
|
name: component['name'],
|
|
67
142
|
group: component['group'] || undefined,
|
|
@@ -69,6 +144,7 @@ const generatePayload = (jsonContent, tags, service, env) => {
|
|
|
69
144
|
language: lang,
|
|
70
145
|
licenses: (0, license_1.getLicensesFromComponent)(component),
|
|
71
146
|
purl,
|
|
147
|
+
locations,
|
|
72
148
|
};
|
|
73
149
|
dependencies.push(dependency);
|
|
74
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/commands/sbom/payload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAClC,oDAA2B;AAG3B,6CAM2B;AAE3B,yCAAmD;AACnD,uCAAkD;AAGlD,0CAA0C;AAC1C,sDAAsD;AACtD,yCAAyC;AAClC,MAAM,eAAe,GAAG,CAC7B,WAAgB,EAChB,IAAc,EACd,OAAe,EACf,GAAW,EACa,EAAE;IAC1B,IACE,CAAC,IAAI,CAAC,8BAAuB,CAAC;QAC9B,CAAC,IAAI,CAAC,6BAAsB,CAAC;QAC7B,CAAC,IAAI,CAAC,cAAO,CAAC;QACd,CAAC,IAAI,CAAC,iBAAU,CAAC;QACjB,CAAC,IAAI,CAAC,yBAAkB,CAAC,EACzB;QACA,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,YAAY,GAAiB,EAAE,CAAA;IAErC,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;YAC7B,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;gBACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBACrE,SAAQ;iBACT;gBACD,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;oBACnC,SAAQ;iBACT;gBAED,MAAM,IAAI,GAAG,IAAA,mCAAwB,EAAC,SAAS,CAAC,CAAA;gBAEhD,IAAI,CAAC,IAAI,EAAE;oBACT,SAAQ;iBACT;gBAED,MAAM,IAAI,GAAuB,SAAS,CAAC,MAAM,CAAC,CAAA;gBAElD,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBACpE,SAAQ;iBACT;gBAED,MAAM,UAAU,GAAe;oBAC7B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;oBACvB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS;oBACtC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;oBAC7B,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAA,kCAAwB,EAAC,SAAS,CAAC;oBAC7C,IAAI;
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/commands/sbom/payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const renderInvalidFile: (sbomReport: string) => string;
|
|
2
|
+
export declare const renderInvalidPayload: (sbomReport: string) => string;
|
|
3
|
+
export declare const renderMissingSpan: (errorMessage: string) => string;
|
|
4
|
+
export declare const renderFailedUpload: (sbomReport: string, error: any) => string;
|
|
5
|
+
export declare const renderUploading: (sbomReport: string) => string;
|
|
6
|
+
export declare const renderSuccessfulCommand: (fileCount: number, duration: number) => string;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.renderSuccessfulCommand = exports.renderUploading = exports.renderFailedUpload = exports.renderMissingSpan = exports.renderInvalidPayload = exports.renderInvalidFile = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const utils_1 = require("../junit/utils");
|
|
9
|
+
const ICONS = {
|
|
10
|
+
FAILED: '❌',
|
|
11
|
+
SUCCESS: '✅',
|
|
12
|
+
WARNING: '⚠️',
|
|
13
|
+
INFO: 'ℹ️',
|
|
14
|
+
};
|
|
15
|
+
const renderInvalidFile = (sbomReport) => {
|
|
16
|
+
const reportPath = `[${chalk_1.default.bold.dim(sbomReport)}]`;
|
|
17
|
+
let fullStr = '';
|
|
18
|
+
fullStr += chalk_1.default.red(`${ICONS.FAILED} Invalid SBOM report file ${reportPath}.\n`);
|
|
19
|
+
fullStr += chalk_1.default.red(`The report is not a valid SBOM or is not compliant with our json schema.\n`);
|
|
20
|
+
return fullStr;
|
|
21
|
+
};
|
|
22
|
+
exports.renderInvalidFile = renderInvalidFile;
|
|
23
|
+
const renderInvalidPayload = (sbomReport) => {
|
|
24
|
+
const reportPath = `[${chalk_1.default.bold.dim(sbomReport)}]`;
|
|
25
|
+
return chalk_1.default.red(`Cannot generate payload for file ${reportPath}.\n`);
|
|
26
|
+
};
|
|
27
|
+
exports.renderInvalidPayload = renderInvalidPayload;
|
|
28
|
+
const renderMissingSpan = (errorMessage) => {
|
|
29
|
+
const currentPath = `[${chalk_1.default.bold.dim(process.cwd())}]`;
|
|
30
|
+
let fullStr = '';
|
|
31
|
+
fullStr += chalk_1.default.yellow(`${ICONS.WARNING} Validation failed: ${errorMessage}.\n`);
|
|
32
|
+
fullStr += chalk_1.default.yellow(`Upload attempted from ${currentPath}. Is this the directory for which this analysis was run?\n`);
|
|
33
|
+
fullStr += chalk_1.default.yellow(`The upload must come from a directory with a ".git" directory.\n`);
|
|
34
|
+
return fullStr;
|
|
35
|
+
};
|
|
36
|
+
exports.renderMissingSpan = renderMissingSpan;
|
|
37
|
+
const renderFailedUpload = (sbomReport, error) => {
|
|
38
|
+
var _a;
|
|
39
|
+
const reportPath = `[${chalk_1.default.bold.dim(sbomReport)}]`;
|
|
40
|
+
let fullStr = '';
|
|
41
|
+
fullStr += chalk_1.default.red(`${ICONS.FAILED} Failed upload SBOM file ${reportPath}: ${error.message}\n`);
|
|
42
|
+
if ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) {
|
|
43
|
+
fullStr += chalk_1.default.red(`API status code: ${error.response.status}\n`);
|
|
44
|
+
}
|
|
45
|
+
return fullStr;
|
|
46
|
+
};
|
|
47
|
+
exports.renderFailedUpload = renderFailedUpload;
|
|
48
|
+
const renderUploading = (sbomReport) => `Uploading SBOM report in ${sbomReport}\n`;
|
|
49
|
+
exports.renderUploading = renderUploading;
|
|
50
|
+
const renderSuccessfulCommand = (fileCount, duration) => {
|
|
51
|
+
let fullStr = '';
|
|
52
|
+
fullStr += chalk_1.default.green(`${ICONS.SUCCESS} Uploaded ${fileCount} files in ${duration} seconds.\n`);
|
|
53
|
+
fullStr += chalk_1.default.green(`${ICONS.INFO} Results available on ${(0, utils_1.getBaseUrl)()}ci/code-analysis\n`);
|
|
54
|
+
fullStr += chalk_1.default.green('=================================================================================================\n');
|
|
55
|
+
return fullStr;
|
|
56
|
+
};
|
|
57
|
+
exports.renderSuccessfulCommand = renderSuccessfulCommand;
|
|
58
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/sbom/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare enum DependencyLanguage {
|
|
2
|
+
DOTNET = "dotnet",
|
|
2
3
|
NPM = "node",
|
|
3
4
|
PYTHON = "python",
|
|
4
5
|
PHP = "php",
|
|
@@ -45,6 +46,28 @@ export declare enum DependencyLicense {
|
|
|
45
46
|
UNLICENSE = "Unlicense",
|
|
46
47
|
ZLIB = "Zlib"
|
|
47
48
|
}
|
|
49
|
+
export interface LocationFromFile {
|
|
50
|
+
file_name: string;
|
|
51
|
+
line_start: number;
|
|
52
|
+
line_end: number;
|
|
53
|
+
column_start: number;
|
|
54
|
+
column_end: number;
|
|
55
|
+
}
|
|
56
|
+
export interface Position {
|
|
57
|
+
line: number;
|
|
58
|
+
col: number;
|
|
59
|
+
}
|
|
60
|
+
export interface Location {
|
|
61
|
+
file_name: string;
|
|
62
|
+
start: Position;
|
|
63
|
+
end: Position;
|
|
64
|
+
}
|
|
65
|
+
export interface Locations {
|
|
66
|
+
block: undefined | Location;
|
|
67
|
+
namespace: undefined | Location;
|
|
68
|
+
name: undefined | Location;
|
|
69
|
+
version: undefined | Location;
|
|
70
|
+
}
|
|
48
71
|
export interface Dependency {
|
|
49
72
|
name: string;
|
|
50
73
|
version: string;
|
|
@@ -52,6 +75,7 @@ export interface Dependency {
|
|
|
52
75
|
language: DependencyLanguage;
|
|
53
76
|
licenses: DependencyLicense[];
|
|
54
77
|
purl: string;
|
|
78
|
+
locations: undefined | Locations[];
|
|
55
79
|
}
|
|
56
80
|
export interface CommitInformation {
|
|
57
81
|
author_name: string;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DependencyLicense = exports.DependencyLanguage = void 0;
|
|
4
4
|
var DependencyLanguage;
|
|
5
5
|
(function (DependencyLanguage) {
|
|
6
|
+
DependencyLanguage["DOTNET"] = "dotnet";
|
|
6
7
|
DependencyLanguage["NPM"] = "node";
|
|
7
8
|
DependencyLanguage["PYTHON"] = "python";
|
|
8
9
|
DependencyLanguage["PHP"] = "php";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/sbom/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/sbom/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,kCAAY,CAAA;IACZ,uCAAiB,CAAA;IACjB,iCAAW,CAAA;IACX,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,+BAAS,CAAA;IACT,iCAAW,CAAA;AACb,CAAC,EATW,kBAAkB,kCAAlB,kBAAkB,QAS7B;AAED,uJAAuJ;AACvJ,IAAY,iBAqCX;AArCD,WAAY,iBAAiB;IAC3B,qCAAgB,CAAA;IAChB,2CAAsB,CAAA;IACtB,+CAA0B,CAAA;IAC1B,qCAAgB,CAAA;IAChB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAC3B,2DAAsC,CAAA;IACtC,gDAA2B,CAAA;IAC3B,qCAAgB,CAAA;IAChB,8BAAS,CAAA;IACT,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,kDAA6B,CAAA;IAC7B,oCAAe,CAAA;IACf,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,yCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,gCAAW,CAAA;IACX,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,kCAAa,CAAA;IACb,yCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,gCAAW,CAAA;IACX,4CAAuB,CAAA;IACvB,oCAAe,CAAA;IACf,gCAAW,CAAA;IACX,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,8CAAyB,CAAA;IACzB,wCAAmB,CAAA;IACnB,kCAAa,CAAA;IACb,4CAAuB,CAAA;IACvB,kCAAa,CAAA;AACf,CAAC,EArCW,iBAAiB,iCAAjB,iBAAiB,QAqC5B"}
|
|
@@ -15,12 +15,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.UploadSbomCommand = void 0;
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const process_1 = __importDefault(require("process"));
|
|
18
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
19
18
|
const clipanion_1 = require("clipanion");
|
|
20
19
|
const tags_1 = require("../../helpers/tags");
|
|
21
|
-
const utils_1 = require("../junit/utils");
|
|
22
20
|
const api_1 = require("./api");
|
|
23
21
|
const payload_1 = require("./payload");
|
|
22
|
+
const renderer_1 = require("./renderer");
|
|
24
23
|
const validation_1 = require("./validation");
|
|
25
24
|
class UploadSbomCommand extends clipanion_1.Command {
|
|
26
25
|
constructor() {
|
|
@@ -59,48 +58,54 @@ class UploadSbomCommand extends clipanion_1.Command {
|
|
|
59
58
|
return 1;
|
|
60
59
|
}
|
|
61
60
|
if (!this.config.apiKey) {
|
|
62
|
-
this.context.stderr.write('API key not defined
|
|
61
|
+
this.context.stderr.write('API key not defined, define the environment variable DD_API_KEY.\n');
|
|
62
|
+
return 1;
|
|
63
|
+
}
|
|
64
|
+
if (!this.config.appKey) {
|
|
65
|
+
this.context.stderr.write('APP key not defined, define the environment variable DD_APP_KEY.\n');
|
|
63
66
|
return 1;
|
|
64
67
|
}
|
|
65
68
|
// Get the API helper to send the payload
|
|
66
69
|
const api = (0, api_1.getApiHelper)(this.config.apiKey, this.config.appKey);
|
|
67
70
|
const tags = yield (0, tags_1.getSpanTags)(this.config, this.tags);
|
|
71
|
+
// Check if we have all the mandatory git fields
|
|
72
|
+
const spanTagsKeys = Object.keys(tags);
|
|
73
|
+
const filteredSpanTags = spanTagsKeys.filter((key) => tags_1.mandatoryGitFields[key]);
|
|
74
|
+
if (filteredSpanTags.length !== Object.keys(tags_1.mandatoryGitFields).length) {
|
|
75
|
+
this.context.stdout.write((0, renderer_1.renderMissingSpan)('missing span tags (CI, git, or user-provided tags)'));
|
|
76
|
+
return 1;
|
|
77
|
+
}
|
|
68
78
|
const validator = (0, validation_1.getValidator)();
|
|
79
|
+
const startTimeMs = Date.now();
|
|
69
80
|
for (const basePath of this.basePaths) {
|
|
70
81
|
if (this.debug) {
|
|
71
82
|
this.context.stdout.write(`Processing file ${basePath}\n`);
|
|
72
83
|
}
|
|
73
84
|
if (!(0, validation_1.validateSbomFile)(basePath, validator, !!this.debug)) {
|
|
74
|
-
this.context.stdout.write(
|
|
85
|
+
this.context.stdout.write((0, renderer_1.renderInvalidFile)(basePath));
|
|
75
86
|
return 1;
|
|
76
87
|
}
|
|
77
|
-
const filePath = basePath;
|
|
78
88
|
const jsonContent = JSON.parse(fs_1.default.readFileSync(basePath).toString('utf8'));
|
|
79
89
|
// Upload content
|
|
80
90
|
try {
|
|
81
91
|
const scaPayload = (0, payload_1.generatePayload)(jsonContent, tags, service, environment);
|
|
82
92
|
if (!scaPayload) {
|
|
83
|
-
|
|
93
|
+
this.context.stdout.write((0, renderer_1.renderInvalidPayload)(basePath));
|
|
84
94
|
continue;
|
|
85
95
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const endTimeMs = Date.now();
|
|
96
|
+
this.context.stdout.write((0, renderer_1.renderUploading)(basePath));
|
|
97
|
+
yield api(scaPayload);
|
|
89
98
|
if (this.debug) {
|
|
90
|
-
this.context.stdout.write(`Upload done
|
|
99
|
+
this.context.stdout.write(`Upload done for ${basePath}.\n`);
|
|
91
100
|
}
|
|
92
|
-
const apiTimeMs = endTimeMs - startTimeMs;
|
|
93
|
-
this.context.stdout.write(`File ${basePath} successfully uploaded in ${apiTimeMs} ms\n`);
|
|
94
101
|
}
|
|
95
102
|
catch (error) {
|
|
96
|
-
|
|
97
|
-
if (error.response) {
|
|
98
|
-
process_1.default.stderr.write(`API status: ${error.response.status}\n`);
|
|
99
|
-
}
|
|
103
|
+
this.context.stderr.write((0, renderer_1.renderFailedUpload)(basePath, error));
|
|
100
104
|
return 1;
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
|
-
|
|
107
|
+
const uploadTimeMs = (Date.now() - startTimeMs) / 1000;
|
|
108
|
+
this.context.stdout.write((0, renderer_1.renderSuccessfulCommand)(this.basePaths.length, uploadTimeMs));
|
|
104
109
|
return 0;
|
|
105
110
|
});
|
|
106
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/sbom/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAmB;AACnB,sDAA6B;AAK7B,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/sbom/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,16 @@ export declare class EndpointError extends Error {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const formatBackendErrors: (requestError: AxiosError<BackendError>) => string;
|
|
13
13
|
export declare const completeMultipartMobileApplicationUpload: (request: (args: AxiosRequestConfig) => AxiosPromise<void>) => (applicationId: string, uploadId: string, key: string, uploadPartResponses: MobileApplicationUploadPartResponse[]) => Promise<void>;
|
|
14
|
-
export
|
|
15
|
-
|
|
14
|
+
export type RetryPolicy = {
|
|
15
|
+
retryOn404?: boolean | undefined;
|
|
16
|
+
retryOn429?: boolean | undefined;
|
|
17
|
+
};
|
|
18
|
+
export declare const determineRetryDelay: (retries: number, error: Error, retryPolicy?: RetryPolicy) => number | undefined;
|
|
19
|
+
export declare const isForbiddenError: (error: Error) => boolean;
|
|
20
|
+
export declare const isNotFoundError: (error: Error) => boolean;
|
|
21
|
+
export declare const isTooManyRequestsError: (error: Error) => boolean;
|
|
16
22
|
export declare const isNodeError: (error: unknown) => error is NodeJS.ErrnoException;
|
|
17
|
-
export declare const is5xxError: (error:
|
|
23
|
+
export declare const is5xxError: (error: Error) => boolean;
|
|
18
24
|
export declare const apiConstructor: (configuration: APIConfiguration) => {
|
|
19
25
|
getBatch: (batchId: string) => Promise<Batch>;
|
|
20
26
|
getMobileApplicationPresignedURLs: (applicationId: string, appSize: number, parts: MobileApplicationUploadPart[]) => Promise<MultipartPresignedUrlsResponse>;
|
|
@@ -9,8 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.getApiHelper = exports.apiConstructor = exports.is5xxError = exports.isNodeError = exports.isNotFoundError = exports.isForbiddenError = exports.completeMultipartMobileApplicationUpload = exports.formatBackendErrors = exports.EndpointError = void 0;
|
|
12
|
+
exports.getApiHelper = exports.apiConstructor = exports.is5xxError = exports.isNodeError = exports.isTooManyRequestsError = exports.isNotFoundError = exports.isForbiddenError = exports.determineRetryDelay = exports.completeMultipartMobileApplicationUpload = exports.formatBackendErrors = exports.EndpointError = void 0;
|
|
13
13
|
const querystring_1 = require("querystring");
|
|
14
|
+
const axios_1 = require("axios");
|
|
14
15
|
const utils_1 = require("../../helpers/utils");
|
|
15
16
|
const errors_1 = require("./errors");
|
|
16
17
|
const run_tests_command_1 = require("./run-tests-command");
|
|
@@ -18,6 +19,8 @@ const public_1 = require("./utils/public");
|
|
|
18
19
|
const MAX_RETRIES = 3;
|
|
19
20
|
const DELAY_BETWEEN_RETRIES = 500; // In ms
|
|
20
21
|
const LARGE_DELAY_BETWEEN_RETRIES = 1000; // In ms
|
|
22
|
+
// SYNTH-13709: Use the `Retry-After` header.
|
|
23
|
+
const DELAY_BETWEEN_429_RETRIES = 5000; // In ms
|
|
21
24
|
class EndpointError extends Error {
|
|
22
25
|
constructor(message, status) {
|
|
23
26
|
super(message);
|
|
@@ -52,13 +55,13 @@ const triggerTests = (request) => (data) => __awaiter(void 0, void 0, void 0, fu
|
|
|
52
55
|
headers: { 'X-Trigger-App': public_1.ciTriggerApp },
|
|
53
56
|
method: 'POST',
|
|
54
57
|
url: '/synthetics/tests/trigger/ci',
|
|
55
|
-
}, request);
|
|
58
|
+
}, request, { retryOn429: true });
|
|
56
59
|
return resp.data;
|
|
57
60
|
});
|
|
58
61
|
const getTest = (request) => (testId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
62
|
const resp = yield retryRequest({
|
|
60
63
|
url: `/synthetics/tests/${testId}`,
|
|
61
|
-
}, request);
|
|
64
|
+
}, request, { retryOn429: true });
|
|
62
65
|
return resp.data;
|
|
63
66
|
});
|
|
64
67
|
const searchTests = (request) => (query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -79,7 +82,10 @@ const getSyntheticsOrgSettings = (request) => () => __awaiter(void 0, void 0, vo
|
|
|
79
82
|
return resp.data;
|
|
80
83
|
});
|
|
81
84
|
const getBatch = (request) => (batchId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
82
|
-
const resp = yield retryRequest({ url: `/synthetics/ci/batch/${batchId}` }, request,
|
|
85
|
+
const resp = yield retryRequest({ url: `/synthetics/ci/batch/${batchId}` }, request, {
|
|
86
|
+
retryOn404: true,
|
|
87
|
+
retryOn429: true,
|
|
88
|
+
});
|
|
83
89
|
const serverBatch = resp.data.data;
|
|
84
90
|
return {
|
|
85
91
|
results: serverBatch.results.filter((r) => r.status !== 'skipped' || r.selective_rerun),
|
|
@@ -92,7 +98,7 @@ const pollResults = (request) => (resultIds) => __awaiter(void 0, void 0, void 0
|
|
|
92
98
|
result_ids: JSON.stringify(resultIds),
|
|
93
99
|
},
|
|
94
100
|
url: '/synthetics/tests/poll_results',
|
|
95
|
-
}, request,
|
|
101
|
+
}, request, { retryOn404: true, retryOn429: true });
|
|
96
102
|
return resp.data.results;
|
|
97
103
|
});
|
|
98
104
|
const getTunnelPresignedURL = (request) => (testIds) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -165,37 +171,42 @@ const createMobileVersion = (request) => (version) => __awaiter(void 0, void 0,
|
|
|
165
171
|
}, request);
|
|
166
172
|
return resp.data;
|
|
167
173
|
});
|
|
168
|
-
const
|
|
169
|
-
|
|
174
|
+
const retryWithJitter = (delay = DELAY_BETWEEN_429_RETRIES) => delay + Math.floor(Math.random() * delay);
|
|
175
|
+
const determineRetryDelay = (retries, error, retryPolicy = { retryOn404: false, retryOn429: false }) => {
|
|
176
|
+
// Always retry on Node.js errors
|
|
170
177
|
if (retries < MAX_RETRIES && (0, exports.isNodeError)(error)) {
|
|
171
178
|
return LARGE_DELAY_BETWEEN_RETRIES;
|
|
172
179
|
}
|
|
180
|
+
// Always retry on 5xx
|
|
173
181
|
if (retries < MAX_RETRIES && (0, exports.is5xxError)(error)) {
|
|
174
182
|
return DELAY_BETWEEN_RETRIES;
|
|
175
183
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
const retryOn5xxDelay = retryOn5xxErrors(retries, error);
|
|
179
|
-
if (retryOn5xxDelay) {
|
|
180
|
-
return retryOn5xxDelay;
|
|
181
|
-
}
|
|
182
|
-
if (retries < MAX_RETRIES && (0, exports.isNotFoundError)(error)) {
|
|
184
|
+
// Retry on 404
|
|
185
|
+
if (retryPolicy.retryOn404 && retries < MAX_RETRIES && (0, exports.isNotFoundError)(error)) {
|
|
183
186
|
return DELAY_BETWEEN_RETRIES;
|
|
184
187
|
}
|
|
188
|
+
// Retry on 429
|
|
189
|
+
if (retryPolicy.retryOn429 && retries < MAX_RETRIES && (0, exports.isTooManyRequestsError)(error)) {
|
|
190
|
+
return retryWithJitter(DELAY_BETWEEN_429_RETRIES);
|
|
191
|
+
}
|
|
185
192
|
};
|
|
186
|
-
|
|
193
|
+
exports.determineRetryDelay = determineRetryDelay;
|
|
194
|
+
const isEndpointError = (error) => error instanceof EndpointError;
|
|
195
|
+
const getErrorHttpStatus = (error) => { var _a; return isEndpointError(error) ? error.status : (0, axios_1.isAxiosError)(error) ? (_a = error.response) === null || _a === void 0 ? void 0 : _a.status : undefined; };
|
|
187
196
|
const isForbiddenError = (error) => getErrorHttpStatus(error) === 403;
|
|
188
197
|
exports.isForbiddenError = isForbiddenError;
|
|
189
198
|
const isNotFoundError = (error) => getErrorHttpStatus(error) === 404;
|
|
190
199
|
exports.isNotFoundError = isNotFoundError;
|
|
200
|
+
const isTooManyRequestsError = (error) => getErrorHttpStatus(error) === 429;
|
|
201
|
+
exports.isTooManyRequestsError = isTooManyRequestsError;
|
|
191
202
|
const isNodeError = (error) => !!error && 'code' in error;
|
|
192
203
|
exports.isNodeError = isNodeError;
|
|
193
204
|
const is5xxError = (error) => {
|
|
194
205
|
const statusCode = getErrorHttpStatus(error);
|
|
195
|
-
return statusCode && statusCode >= 500 && statusCode <= 599;
|
|
206
|
+
return statusCode && statusCode >= 500 && statusCode <= 599 ? true : false;
|
|
196
207
|
};
|
|
197
208
|
exports.is5xxError = is5xxError;
|
|
198
|
-
const retryRequest = (args, request,
|
|
209
|
+
const retryRequest = (args, request, statusCodesToRetryOn) => (0, public_1.retry)(() => request(args), (retries, e) => (0, exports.determineRetryDelay)(retries, e, statusCodesToRetryOn));
|
|
199
210
|
const apiConstructor = (configuration) => {
|
|
200
211
|
const { baseUrl, baseIntakeUrl, baseUnstableUrl, apiKey, appKey, proxyOpts } = configuration;
|
|
201
212
|
const baseOptions = { apiKey, appKey, proxyOpts };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/synthetics/api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAqC;AAIrC,+CAAqD;AAErD,qCAAsC;AAiBtC,2DAAwD;AACxD,2CAAkE;AAElE,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,qBAAqB,GAAG,GAAG,CAAA,CAAC,QAAQ;AAC1C,MAAM,2BAA2B,GAAG,IAAI,CAAA,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/synthetics/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { APIHelper } from './api';
|
|
2
|
+
import { MainReporter, Result, ResultDisplayInfo, Trigger } from './interfaces';
|
|
3
|
+
export declare const waitForBatchToFinish: (api: APIHelper, maxPollingTimeout: number, trigger: Trigger, resultDisplayInfo: ResultDisplayInfo, reporter: MainReporter) => Promise<Result[]>;
|