@datadog/datadog-ci 2.43.0 → 2.45.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/dist/commands/deployment/correlate.d.ts +1 -0
- package/dist/commands/deployment/correlate.js +30 -19
- package/dist/commands/deployment/correlate.js.map +1 -1
- package/dist/commands/sarif/renderer.d.ts +1 -1
- package/dist/commands/sarif/renderer.js +9 -7
- package/dist/commands/sarif/renderer.js.map +1 -1
- package/dist/commands/sarif/upload.js +9 -5
- package/dist/commands/sarif/upload.js.map +1 -1
- package/dist/commands/sbom/constants.d.ts +3 -0
- package/dist/commands/sbom/constants.js +4 -1
- package/dist/commands/sbom/constants.js.map +1 -1
- package/dist/commands/sbom/payload.js +90 -37
- package/dist/commands/sbom/payload.js.map +1 -1
- package/dist/commands/sbom/renderer.d.ts +0 -1
- package/dist/commands/sbom/renderer.js +1 -10
- package/dist/commands/sbom/renderer.js.map +1 -1
- package/dist/commands/sbom/types.d.ts +16 -0
- package/dist/commands/sbom/upload.js +18 -13
- package/dist/commands/sbom/upload.js.map +1 -1
- package/dist/commands/stepfunctions/helpers.d.ts +0 -2
- package/dist/commands/stepfunctions/helpers.js +58 -60
- package/dist/commands/stepfunctions/helpers.js.map +1 -1
- package/dist/commands/synthetics/api.d.ts +1 -0
- package/dist/commands/synthetics/api.js +6 -5
- package/dist/commands/synthetics/api.js.map +1 -1
- package/dist/commands/synthetics/batch.js +46 -16
- package/dist/commands/synthetics/batch.js.map +1 -1
- package/dist/commands/synthetics/interfaces.d.ts +13 -11
- package/dist/commands/synthetics/interfaces.js.map +1 -1
- package/dist/commands/synthetics/reporters/default.js +9 -10
- package/dist/commands/synthetics/reporters/default.js.map +1 -1
- package/dist/commands/synthetics/reporters/junit.d.ts +2 -2
- package/dist/commands/synthetics/reporters/junit.js +22 -17
- package/dist/commands/synthetics/reporters/junit.js.map +1 -1
- package/dist/commands/synthetics/run-tests-command.js +37 -19
- package/dist/commands/synthetics/run-tests-command.js.map +1 -1
- package/dist/commands/synthetics/utils/internal.d.ts +17 -4
- package/dist/commands/synthetics/utils/internal.js +27 -10
- package/dist/commands/synthetics/utils/internal.js.map +1 -1
- package/dist/commands/synthetics/utils/public.d.ts +4 -1
- package/dist/commands/synthetics/utils/public.js +8 -4
- package/dist/commands/synthetics/utils/public.js.map +1 -1
- package/dist/helpers/ci.d.ts +2 -0
- package/dist/helpers/ci.js +10 -5
- package/dist/helpers/ci.js.map +1 -1
- package/dist/helpers/interfaces.d.ts +2 -2
- package/dist/helpers/tags.d.ts +4 -3
- package/dist/helpers/tags.js +11 -4
- package/dist/helpers/tags.js.map +1 -1
- package/dist/helpers/utils.d.ts +11 -1
- package/dist/helpers/utils.js +5 -11
- package/dist/helpers/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,6 +33,7 @@ class DeploymentCorrelateCommand extends clipanion_1.Command {
|
|
|
33
33
|
super(...arguments);
|
|
34
34
|
this.cdProviderParam = clipanion_1.Option.String('--provider');
|
|
35
35
|
this.configurationRepo = clipanion_1.Option.String('--config-repo');
|
|
36
|
+
this.configurationShas = clipanion_1.Option.Array('--config-shas');
|
|
36
37
|
this.dryRun = clipanion_1.Option.Boolean('--dry-run', false);
|
|
37
38
|
this.config = {
|
|
38
39
|
apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
|
|
@@ -65,30 +66,30 @@ class DeploymentCorrelateCommand extends clipanion_1.Command {
|
|
|
65
66
|
binary: 'git',
|
|
66
67
|
maxConcurrentProcesses: 2, // max 2 git commands at the same time
|
|
67
68
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
this.logger.error('Could not get current branch');
|
|
71
|
-
return 1;
|
|
72
|
-
}
|
|
73
|
-
let localCommitShas;
|
|
74
|
-
if (this.configurationRepo) {
|
|
75
|
-
localCommitShas = yield (0, get_git_data_1.gitLocalCommitShas)(git, currentBranch);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
;
|
|
79
|
-
[this.configurationRepo, localCommitShas] = yield Promise.all([
|
|
80
|
-
(0, get_git_data_1.gitRepositoryURL)(git),
|
|
81
|
-
(0, get_git_data_1.gitLocalCommitShas)(git, currentBranch),
|
|
82
|
-
]);
|
|
69
|
+
if (!this.configurationRepo) {
|
|
70
|
+
this.configurationRepo = yield (0, get_git_data_1.gitRepositoryURL)(git);
|
|
83
71
|
}
|
|
84
72
|
if (this.configurationRepo === undefined || this.configurationRepo === '') {
|
|
85
73
|
this.logger.error('Could not retrieve repository URL, check out a repository or provide it with --config-repo');
|
|
86
74
|
return 1;
|
|
87
75
|
}
|
|
88
|
-
|
|
76
|
+
if (!this.configurationShas) {
|
|
77
|
+
this.logger.info('Retrieving local git commits');
|
|
78
|
+
const currentBranch = yield (0, get_git_data_1.gitCurrentBranch)(git);
|
|
79
|
+
if (!currentBranch) {
|
|
80
|
+
this.logger.error('Could not get current branch');
|
|
81
|
+
return 1;
|
|
82
|
+
}
|
|
83
|
+
this.configurationShas = yield (0, get_git_data_1.gitLocalCommitShas)(git, currentBranch);
|
|
84
|
+
}
|
|
85
|
+
if (this.configurationShas.length === 0) {
|
|
86
|
+
this.logger.error('Could not retrieve commit SHAs, commit changes and then call this command or provide them with --config-shas');
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
89
|
+
yield this.sendCorrelationData(ciEnv[tags_1.CI_PROVIDER_NAME], ciEnv, this.config.apiKey);
|
|
89
90
|
});
|
|
90
91
|
}
|
|
91
|
-
sendCorrelationData(ciProvider,
|
|
92
|
+
sendCorrelationData(ciProvider, ciEnv, apiKey) {
|
|
92
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
94
|
const correlateEvent = {
|
|
94
95
|
type: 'ci_app_deployment_correlate',
|
|
@@ -96,7 +97,7 @@ class DeploymentCorrelateCommand extends clipanion_1.Command {
|
|
|
96
97
|
ci_provider: ciProvider,
|
|
97
98
|
cd_provider: this.cdProviderParam,
|
|
98
99
|
config_repo_url: this.configurationRepo,
|
|
99
|
-
config_commit_shas:
|
|
100
|
+
config_commit_shas: this.configurationShas,
|
|
100
101
|
ci_env: ciEnv,
|
|
101
102
|
},
|
|
102
103
|
};
|
|
@@ -160,6 +161,16 @@ DeploymentCorrelateCommand.usage = clipanion_1.Command.Usage({
|
|
|
160
161
|
This command will correlate the pipeline with a GitOps CD deployment.\n
|
|
161
162
|
See README for additional details.
|
|
162
163
|
`,
|
|
163
|
-
examples: [
|
|
164
|
+
examples: [
|
|
165
|
+
['Correlate an Argo CD deployment', 'datadog-ci deployment correlate --provider argocd'],
|
|
166
|
+
[
|
|
167
|
+
'Correlate ArgoCD deployment manually',
|
|
168
|
+
'datadog-ci deployment correlate --provider argocd --config-repo https://github.com/my-manifests-repo --config-shas 92eb0db6926aaf51b9fb223895b6d8d1c0ff1ff4',
|
|
169
|
+
],
|
|
170
|
+
[
|
|
171
|
+
'Correlate ArgoCD deployment manually to several commits',
|
|
172
|
+
'datadog-ci deployment correlate --provider argocd --config-repo https://github.com/my-manifests-repo --config-shas 92eb0db6926aaf51b9fb223895b6d8d1c0ff1ff4 --config-shas e996e5c30ba1cb4dc7f634ab4a0a59473741c4de',
|
|
173
|
+
],
|
|
174
|
+
],
|
|
164
175
|
});
|
|
165
176
|
//# sourceMappingURL=correlate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlate.js","sourceRoot":"","sources":["../../../src/commands/deployment/correlate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kDAAyB;AACzB,yCAAyC;AACzC,4DAAkC;AAElC,yCAA8C;AAC9C,iEAAqG;AACrG,iDAAqD;AACrD,+CAAgD;AAChD,6CAA6F;AAC7F,+CAAwE;AAExE;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,mBAAO;IAAvD;;
|
|
1
|
+
{"version":3,"file":"correlate.js","sourceRoot":"","sources":["../../../src/commands/deployment/correlate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Payload } from './interfaces';
|
|
2
2
|
export declare const renderInvalidFile: (sarifReport: string, errorMessages: string[]) => string;
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const renderMissingTags: (missingTags: string[]) => string;
|
|
4
4
|
export declare const renderFailedUpload: (sarifReport: Payload, error: any) => string;
|
|
5
5
|
export declare const renderRetriedUpload: (sarifReport: Payload, errorMessage: string, attempt: number) => string;
|
|
6
6
|
export declare const renderSuccessfulCommand: (fileCount: number, duration: number) => string;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.renderFilesNotFound = exports.renderCommandInfo = exports.renderUpload = exports.renderDryRunUpload = exports.renderSuccessfulCommand = exports.renderRetriedUpload = exports.renderFailedUpload = exports.
|
|
6
|
+
exports.renderFilesNotFound = exports.renderCommandInfo = exports.renderUpload = exports.renderDryRunUpload = exports.renderSuccessfulCommand = exports.renderRetriedUpload = exports.renderFailedUpload = exports.renderMissingTags = exports.renderInvalidFile = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
const utils_1 = require("../junit/utils");
|
|
@@ -25,15 +25,17 @@ const renderInvalidFile = (sarifReport, errorMessages) => {
|
|
|
25
25
|
return fullStr;
|
|
26
26
|
};
|
|
27
27
|
exports.renderInvalidFile = renderInvalidFile;
|
|
28
|
-
const
|
|
29
|
-
const
|
|
28
|
+
const renderMissingTags = (missingTags) => {
|
|
29
|
+
const styledPath = `[${chalk_1.default.bold.dim(process.cwd())}]`;
|
|
30
30
|
let fullStr = '';
|
|
31
|
-
fullStr += chalk_1.default.
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
fullStr += chalk_1.default.red(`There are missing git tags in ${styledPath}:\n`);
|
|
32
|
+
missingTags.forEach((tag) => {
|
|
33
|
+
fullStr += chalk_1.default.red(` - ${tag}\n`);
|
|
34
|
+
});
|
|
35
|
+
fullStr += chalk_1.default.red(`To fix this, ensure that the git information above is available for your commit.\n`);
|
|
34
36
|
return fullStr;
|
|
35
37
|
};
|
|
36
|
-
exports.
|
|
38
|
+
exports.renderMissingTags = renderMissingTags;
|
|
37
39
|
const renderFailedUpload = (sarifReport, error) => {
|
|
38
40
|
var _a;
|
|
39
41
|
const reportPath = `[${chalk_1.default.bold.dim(sarifReport.reportPath)}]`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/sarif/renderer.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAEvB,kDAAyB;AAEzB,0CAAyC;AAIzC,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;CACX,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,aAAuB,EAAE,EAAE;IAChF,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,UAAU,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAA;IAErD,OAAO,IAAI,eAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,8BAA8B,UAAU,KAAK,CAAC,CAAA;IAClF,OAAO,IAAI,eAAK,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAA;IAE/G,OAAO,IAAI,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACzC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;QACxC,OAAO,IAAI,eAAK,CAAC,GAAG,CAAC,MAAM,YAAY,IAAI,CAAC,CAAA;KAC7C;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAbY,QAAA,iBAAiB,qBAa7B;AAEM,MAAM,iBAAiB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/sarif/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,11 +81,15 @@ class UploadSarifReportCommand extends clipanion_1.Command {
|
|
|
81
81
|
// Always using the posix version to avoid \ on Windows.
|
|
82
82
|
this.basePaths = this.basePaths.map((basePath) => path_1.default.posix.normalize(basePath));
|
|
83
83
|
const spanTags = yield (0, tags_1.getSpanTags)(this.config, this.tags, !this.noCiTags);
|
|
84
|
-
//
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
// Gather any missing mandatory git fields to display to the user
|
|
85
|
+
const missingGitFields = Object.entries(spanTags).reduce((acc, [tag, value]) => {
|
|
86
|
+
if (tags_1.REQUIRED_GIT_TAGS[tag] && !value) {
|
|
87
|
+
acc.push(tag);
|
|
88
|
+
}
|
|
89
|
+
return acc;
|
|
90
|
+
}, []);
|
|
91
|
+
if (missingGitFields.length > 0) {
|
|
92
|
+
this.context.stdout.write((0, renderer_1.renderMissingTags)(missingGitFields));
|
|
89
93
|
return 1;
|
|
90
94
|
}
|
|
91
95
|
const payloads = yield this.getMatchingSarifReports(spanTags);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/sarif/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AAEvB,kDAAyB;AACzB,yCAAyC;AACzC,gDAAuB;AAEvB,2DAA8D;AAG9D,+CAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/sarif/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,4 @@
|
|
|
1
1
|
export declare const API_ENDPOINT = "api/v2/static-analysis-sca/dependencies";
|
|
2
|
+
export declare const PACKAGE_MANAGER_PROPERTY_KEY = "osv-scanner:package-manager";
|
|
3
|
+
export declare const IS_DEPENDENCY_DIRECT_PROPERTY_KEY = "osv-scanner:is-direct";
|
|
4
|
+
export declare const FILE_PACKAGE_PROPERTY_KEY = "osv-scanner:package";
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.API_ENDPOINT = void 0;
|
|
3
|
+
exports.FILE_PACKAGE_PROPERTY_KEY = exports.IS_DEPENDENCY_DIRECT_PROPERTY_KEY = exports.PACKAGE_MANAGER_PROPERTY_KEY = exports.API_ENDPOINT = void 0;
|
|
4
4
|
exports.API_ENDPOINT = 'api/v2/static-analysis-sca/dependencies';
|
|
5
|
+
exports.PACKAGE_MANAGER_PROPERTY_KEY = 'osv-scanner:package-manager';
|
|
6
|
+
exports.IS_DEPENDENCY_DIRECT_PROPERTY_KEY = 'osv-scanner:is-direct';
|
|
7
|
+
exports.FILE_PACKAGE_PROPERTY_KEY = 'osv-scanner:package';
|
|
5
8
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/commands/sbom/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,yCAAyC,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/commands/sbom/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,yCAAyC,CAAA;AAExD,QAAA,4BAA4B,GAAG,6BAA6B,CAAA;AAC5D,QAAA,iCAAiC,GAAG,uBAAuB,CAAA;AAC3D,QAAA,yBAAyB,GAAG,qBAAqB,CAAA"}
|
|
@@ -30,6 +30,7 @@ exports.generatePayload = void 0;
|
|
|
30
30
|
const console = __importStar(require("console"));
|
|
31
31
|
const crypto_1 = __importDefault(require("crypto"));
|
|
32
32
|
const tags_1 = require("../../helpers/tags");
|
|
33
|
+
const constants_1 = require("./constants");
|
|
33
34
|
const language_1 = require("./language");
|
|
34
35
|
// Parse a location from the file generated by osv-scanner into a location that can be
|
|
35
36
|
// sent to our API.
|
|
@@ -101,53 +102,31 @@ const generatePayload = (jsonContent, tags, service, env) => {
|
|
|
101
102
|
return undefined;
|
|
102
103
|
}
|
|
103
104
|
const dependencies = [];
|
|
105
|
+
const files = [];
|
|
106
|
+
const relations = [];
|
|
104
107
|
if (jsonContent) {
|
|
105
108
|
if (jsonContent['components']) {
|
|
106
109
|
for (const component of jsonContent['components']) {
|
|
107
110
|
if (!component['type'] || !component['name']) {
|
|
108
111
|
continue;
|
|
109
112
|
}
|
|
110
|
-
if (component['type']
|
|
111
|
-
|
|
113
|
+
if (component['type'] === 'library') {
|
|
114
|
+
const dependency = extractingDependency(component);
|
|
115
|
+
if (dependency !== undefined) {
|
|
116
|
+
dependencies.push(dependency);
|
|
117
|
+
}
|
|
112
118
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
continue;
|
|
119
|
+
else if (component['type'] === 'file') {
|
|
120
|
+
files.push(extractingFile(component));
|
|
116
121
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (jsonContent['dependencies']) {
|
|
125
|
+
for (const dependency of jsonContent['dependencies']) {
|
|
126
|
+
if (!dependency['ref'] || !dependency['dependsOn']) {
|
|
120
127
|
continue;
|
|
121
128
|
}
|
|
122
|
-
|
|
123
|
-
// Extract the unique location strings from the file.
|
|
124
|
-
const locationsStrings = new Set();
|
|
125
|
-
if (component['evidence'] && component['evidence']['occurrences']) {
|
|
126
|
-
for (const occ of component['evidence']['occurrences']) {
|
|
127
|
-
if (occ['location']) {
|
|
128
|
-
const loc = occ['location'];
|
|
129
|
-
if (!locationsStrings.has(loc)) {
|
|
130
|
-
locationsStrings.add(loc);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
for (const l of locationsStrings) {
|
|
136
|
-
const loc = parseLocationsString(l);
|
|
137
|
-
if (loc) {
|
|
138
|
-
locations.push(loc);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
const dependency = {
|
|
142
|
-
name: component['name'],
|
|
143
|
-
group: component['group'] || undefined,
|
|
144
|
-
version: component['version'] || undefined,
|
|
145
|
-
language: lang,
|
|
146
|
-
licenses: [],
|
|
147
|
-
purl,
|
|
148
|
-
locations,
|
|
149
|
-
};
|
|
150
|
-
dependencies.push(dependency);
|
|
129
|
+
relations.push(extractingRelations(dependency));
|
|
151
130
|
}
|
|
152
131
|
}
|
|
153
132
|
}
|
|
@@ -166,9 +145,83 @@ const generatePayload = (jsonContent, tags, service, env) => {
|
|
|
166
145
|
},
|
|
167
146
|
tags,
|
|
168
147
|
dependencies,
|
|
148
|
+
files,
|
|
149
|
+
relations,
|
|
169
150
|
service,
|
|
170
151
|
env,
|
|
171
152
|
};
|
|
172
153
|
};
|
|
173
154
|
exports.generatePayload = generatePayload;
|
|
155
|
+
const extractingDependency = (component) => {
|
|
156
|
+
var _a;
|
|
157
|
+
const lang = (0, language_1.getLanguageFromComponent)(component);
|
|
158
|
+
if (!lang) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const purl = component['purl'];
|
|
162
|
+
if (!purl) {
|
|
163
|
+
console.error(`cannot find purl for component ${component['name']}`);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const locations = [];
|
|
167
|
+
// Extract the unique location strings from the file.
|
|
168
|
+
const locationsStrings = new Set();
|
|
169
|
+
if (component['evidence'] && component['evidence']['occurrences']) {
|
|
170
|
+
for (const occ of component['evidence']['occurrences']) {
|
|
171
|
+
if (occ['location']) {
|
|
172
|
+
const loc = occ['location'];
|
|
173
|
+
if (!locationsStrings.has(loc)) {
|
|
174
|
+
locationsStrings.add(loc);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
for (const l of locationsStrings) {
|
|
180
|
+
const loc = parseLocationsString(l);
|
|
181
|
+
if (loc) {
|
|
182
|
+
locations.push(loc);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
let packageManager = '';
|
|
186
|
+
let isDirect;
|
|
187
|
+
for (const property of (_a = component['properties']) !== null && _a !== void 0 ? _a : []) {
|
|
188
|
+
if (property['name'] === constants_1.PACKAGE_MANAGER_PROPERTY_KEY) {
|
|
189
|
+
packageManager = property['value'];
|
|
190
|
+
}
|
|
191
|
+
else if (property['name'] === constants_1.IS_DEPENDENCY_DIRECT_PROPERTY_KEY) {
|
|
192
|
+
isDirect = property['value'].toLowerCase() === 'true' ? true : undefined;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const dependency = {
|
|
196
|
+
name: component['name'],
|
|
197
|
+
group: component['group'] || undefined,
|
|
198
|
+
version: component['version'] || undefined,
|
|
199
|
+
language: lang,
|
|
200
|
+
licenses: [],
|
|
201
|
+
purl,
|
|
202
|
+
locations,
|
|
203
|
+
is_direct: isDirect,
|
|
204
|
+
package_manager: packageManager,
|
|
205
|
+
};
|
|
206
|
+
return dependency;
|
|
207
|
+
};
|
|
208
|
+
const extractingFile = (component) => {
|
|
209
|
+
var _a;
|
|
210
|
+
let purl;
|
|
211
|
+
for (const property of (_a = component['properties']) !== null && _a !== void 0 ? _a : []) {
|
|
212
|
+
if (property['name'] === constants_1.FILE_PACKAGE_PROPERTY_KEY) {
|
|
213
|
+
purl = property['value'];
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
name: component['name'],
|
|
218
|
+
purl,
|
|
219
|
+
};
|
|
220
|
+
};
|
|
221
|
+
const extractingRelations = (dependency) => {
|
|
222
|
+
return {
|
|
223
|
+
component_ref: dependency['ref'],
|
|
224
|
+
depends_on: dependency['dependsOn'],
|
|
225
|
+
};
|
|
226
|
+
};
|
|
174
227
|
//# sourceMappingURL=payload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/commands/sbom/payload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAClC,oDAA2B;AAG3B,6CAQ2B;AAE3B,yCAAmD;AAGnD,sFAAsF;AACtF,mBAAmB;AACnB,MAAM,aAAa,GAAG,CAAC,QAA0B,EAAwB,EAAE;IACzE,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,SAAS,CAAA;KACjB;IACD,IACE,CAAC,QAAQ,CAAC,SAAS;QACnB,CAAC,QAAQ,CAAC,UAAU;QACpB,CAAC,QAAQ,CAAC,QAAQ;QAClB,CAAC,QAAQ,CAAC,YAAY;QACtB,CAAC,QAAQ,CAAC,UAAU,EACpB;QACA,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE;QAC3C,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,YAAY,EAAE;QAC7F,OAAO,SAAS,CAAA;KACjB;IAED,wBAAwB;IACxB,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,QAAQ,CAAC,YAAY,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE;QAChH,OAAO,SAAS,CAAA;KACjB;IAED,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ,CAAC,UAAU;YACzB,GAAG,EAAE,QAAQ,CAAC,YAAY;SAC3B;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,GAAG,EAAE,QAAQ,CAAC,UAAU;SACzB;KACF,CAAA;AACH,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAyB,EAAE;IACxE,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAEpC,MAAM,GAAG,GAAc;YACrB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC1C,CAAA;QAED,iFAAiF;QACjF,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACd,OAAO,SAAS,CAAA;SACjB;QAED,OAAO,GAAG,CAAA;KACX;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAA;KACpD;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,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,iCAA0B,CAAC;QACjC,CAAC,IAAI,CAAC,gCAAyB,CAAC;QAChC,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;
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/commands/sbom/payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export declare const renderInvalidFile: (sbomReport: string) => string;
|
|
2
2
|
export declare const renderInvalidPayload: (sbomReport: string) => string;
|
|
3
|
-
export declare const renderMissingSpan: (errorMessage: string) => string;
|
|
4
3
|
export declare const renderDuplicateUpload: (sha: string, env: string, service: string) => string;
|
|
5
4
|
export declare const renderNoDefaultBranch: (repositoryUrl: string) => string;
|
|
6
5
|
export declare const renderFailedUpload: (sbomReport: string, error: any) => string;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.renderSuccessfulCommand = exports.renderUploading = exports.renderFailedUpload = exports.renderNoDefaultBranch = exports.renderDuplicateUpload = exports.
|
|
6
|
+
exports.renderSuccessfulCommand = exports.renderUploading = exports.renderFailedUpload = exports.renderNoDefaultBranch = exports.renderDuplicateUpload = exports.renderInvalidPayload = exports.renderInvalidFile = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const utils_1 = require("../junit/utils");
|
|
9
9
|
const ICONS = {
|
|
@@ -28,15 +28,6 @@ const renderInvalidPayload = (sbomReport) => {
|
|
|
28
28
|
return fullStr;
|
|
29
29
|
};
|
|
30
30
|
exports.renderInvalidPayload = renderInvalidPayload;
|
|
31
|
-
const renderMissingSpan = (errorMessage) => {
|
|
32
|
-
const currentPath = `[${chalk_1.default.bold.dim(process.cwd())}]`;
|
|
33
|
-
let fullStr = '';
|
|
34
|
-
fullStr += chalk_1.default.yellow(`${ICONS.WARNING} Validation failed: ${errorMessage}.\n`);
|
|
35
|
-
fullStr += chalk_1.default.yellow(`Upload attempted from ${currentPath}. Is this the directory for which this analysis was run?\n`);
|
|
36
|
-
fullStr += chalk_1.default.yellow(`The upload must come from a directory with a ".git" directory.\n`);
|
|
37
|
-
return fullStr;
|
|
38
|
-
};
|
|
39
|
-
exports.renderMissingSpan = renderMissingSpan;
|
|
40
31
|
const renderDuplicateUpload = (sha, env, service) => {
|
|
41
32
|
let fullStr = '';
|
|
42
33
|
fullStr += chalk_1.default.red(`${ICONS.WARNING} Duplicate SBOM upload detected\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/sbom/renderer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEzB,0CAAyC;AAEzC,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;CACX,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACtD,MAAM,UAAU,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAA;IAEpD,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,OAAO,IAAI,eAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,6BAA6B,UAAU,KAAK,CAAC,CAAA;IACjF,OAAO,IAAI,eAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAA;IAElG,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B;AAEM,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACzD,MAAM,UAAU,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAA;IACpD,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,OAAO,IAAI,eAAK,CAAC,GAAG,CAAC,oCAAoC,UAAU,KAAK,CAAC,CAAA;IACzE,OAAO,IAAI,eAAK,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAA;IAE1G,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAPY,QAAA,oBAAoB,wBAOhC;AAEM,MAAM,
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/sbom/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,10 @@ export interface Locations {
|
|
|
68
68
|
name: undefined | Location;
|
|
69
69
|
version: undefined | Location;
|
|
70
70
|
}
|
|
71
|
+
export interface Property {
|
|
72
|
+
name: string;
|
|
73
|
+
value: string;
|
|
74
|
+
}
|
|
71
75
|
export interface Dependency {
|
|
72
76
|
name: string;
|
|
73
77
|
version: undefined | string;
|
|
@@ -76,6 +80,8 @@ export interface Dependency {
|
|
|
76
80
|
licenses: DependencyLicense[];
|
|
77
81
|
purl: string;
|
|
78
82
|
locations: undefined | Locations[];
|
|
83
|
+
is_direct: undefined | boolean;
|
|
84
|
+
package_manager: string;
|
|
79
85
|
}
|
|
80
86
|
export interface CommitInformation {
|
|
81
87
|
author_name: string;
|
|
@@ -88,11 +94,21 @@ export interface CommitInformation {
|
|
|
88
94
|
export interface RepositoryInformation {
|
|
89
95
|
url: string;
|
|
90
96
|
}
|
|
97
|
+
export interface File {
|
|
98
|
+
name: string;
|
|
99
|
+
purl: string | undefined;
|
|
100
|
+
}
|
|
101
|
+
export interface Relations {
|
|
102
|
+
component_ref: string;
|
|
103
|
+
depends_on: string[];
|
|
104
|
+
}
|
|
91
105
|
export interface ScaRequest {
|
|
92
106
|
id: string;
|
|
93
107
|
commit: CommitInformation;
|
|
94
108
|
repository: RepositoryInformation;
|
|
95
109
|
dependencies: Dependency[];
|
|
110
|
+
files: File[];
|
|
111
|
+
relations: Relations[];
|
|
96
112
|
service: string;
|
|
97
113
|
env: string;
|
|
98
114
|
tags: Record<string, string>;
|
|
@@ -18,9 +18,10 @@ const process_1 = __importDefault(require("process"));
|
|
|
18
18
|
const axios_1 = require("axios");
|
|
19
19
|
const clipanion_1 = require("clipanion");
|
|
20
20
|
const tags_1 = require("../../helpers/tags");
|
|
21
|
+
const renderer_1 = require("../sarif/renderer");
|
|
21
22
|
const api_1 = require("./api");
|
|
22
23
|
const payload_1 = require("./payload");
|
|
23
|
-
const
|
|
24
|
+
const renderer_2 = require("./renderer");
|
|
24
25
|
const validation_1 = require("./validation");
|
|
25
26
|
class UploadSbomCommand extends clipanion_1.Command {
|
|
26
27
|
constructor() {
|
|
@@ -62,11 +63,15 @@ class UploadSbomCommand extends clipanion_1.Command {
|
|
|
62
63
|
// Get the API helper to send the payload
|
|
63
64
|
const api = (0, api_1.getApiHelper)(this.config.apiKey, this.config.appKey);
|
|
64
65
|
const tags = yield (0, tags_1.getSpanTags)(this.config, this.tags, !this.noCiTags);
|
|
65
|
-
//
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
// Gather any missing mandatory git fields to display to the user
|
|
67
|
+
const missingGitFields = Object.entries(tags).reduce((acc, [tag, value]) => {
|
|
68
|
+
if (tags_1.REQUIRED_GIT_TAGS[tag] && !value) {
|
|
69
|
+
acc.push(tag);
|
|
70
|
+
}
|
|
71
|
+
return acc;
|
|
72
|
+
}, []);
|
|
73
|
+
if (missingGitFields.length > 0) {
|
|
74
|
+
this.context.stdout.write((0, renderer_1.renderMissingTags)(missingGitFields));
|
|
70
75
|
return 1;
|
|
71
76
|
}
|
|
72
77
|
const validator = (0, validation_1.getValidator)();
|
|
@@ -77,7 +82,7 @@ class UploadSbomCommand extends clipanion_1.Command {
|
|
|
77
82
|
}
|
|
78
83
|
if (!(0, validation_1.validateSbomFileAgainstSchema)(basePath, validator, !!this.debug)) {
|
|
79
84
|
if (!(0, validation_1.validateFileAgainstToolRequirements)(basePath, !!this.debug)) {
|
|
80
|
-
this.context.stdout.write((0,
|
|
85
|
+
this.context.stdout.write((0, renderer_2.renderInvalidFile)(basePath));
|
|
81
86
|
return 1;
|
|
82
87
|
}
|
|
83
88
|
else {
|
|
@@ -89,10 +94,10 @@ class UploadSbomCommand extends clipanion_1.Command {
|
|
|
89
94
|
try {
|
|
90
95
|
const scaPayload = (0, payload_1.generatePayload)(jsonContent, tags, service, environment);
|
|
91
96
|
if (!scaPayload) {
|
|
92
|
-
this.context.stdout.write((0,
|
|
97
|
+
this.context.stdout.write((0, renderer_2.renderInvalidPayload)(basePath));
|
|
93
98
|
return 1;
|
|
94
99
|
}
|
|
95
|
-
this.context.stdout.write((0,
|
|
100
|
+
this.context.stdout.write((0, renderer_2.renderUploading)(basePath));
|
|
96
101
|
yield api(scaPayload);
|
|
97
102
|
if (this.debug) {
|
|
98
103
|
this.context.stdout.write(`Upload done for ${basePath}.\n`);
|
|
@@ -102,20 +107,20 @@ class UploadSbomCommand extends clipanion_1.Command {
|
|
|
102
107
|
if ((0, axios_1.isAxiosError)(error)) {
|
|
103
108
|
if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 409) {
|
|
104
109
|
const sha = tags[tags_1.GIT_SHA] || 'sha-not-found';
|
|
105
|
-
this.context.stderr.write((0,
|
|
110
|
+
this.context.stderr.write((0, renderer_2.renderDuplicateUpload)(sha, environment, service));
|
|
106
111
|
return 0;
|
|
107
112
|
}
|
|
108
113
|
if (((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === 412) {
|
|
109
114
|
const repositoryUrl = tags[tags_1.GIT_REPOSITORY_URL] || 'url-not-found';
|
|
110
|
-
this.context.stderr.write((0,
|
|
115
|
+
this.context.stderr.write((0, renderer_2.renderNoDefaultBranch)(repositoryUrl));
|
|
111
116
|
return 1;
|
|
112
117
|
}
|
|
113
118
|
}
|
|
114
|
-
this.context.stderr.write((0,
|
|
119
|
+
this.context.stderr.write((0, renderer_2.renderFailedUpload)(basePath, error));
|
|
115
120
|
return 1;
|
|
116
121
|
}
|
|
117
122
|
const uploadTimeMs = (Date.now() - startTimeMs) / 1000;
|
|
118
|
-
this.context.stdout.write((0,
|
|
123
|
+
this.context.stdout.write((0, renderer_2.renderSuccessfulCommand)(uploadTimeMs));
|
|
119
124
|
return 0;
|
|
120
125
|
});
|
|
121
126
|
}
|