@datadog/datadog-ci 2.5.2-alpha → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/commands/dsyms/upload.js +9 -3
  2. package/dist/commands/dsyms/upload.js.map +1 -1
  3. package/dist/commands/flutter-symbols/upload.js +9 -3
  4. package/dist/commands/flutter-symbols/upload.js.map +1 -1
  5. package/dist/commands/git-metadata/renderer.d.ts +1 -0
  6. package/dist/commands/git-metadata/renderer.js +11 -8
  7. package/dist/commands/git-metadata/renderer.js.map +1 -1
  8. package/dist/commands/git-metadata/upload.d.ts +2 -9
  9. package/dist/commands/git-metadata/upload.js +46 -108
  10. package/dist/commands/git-metadata/upload.js.map +1 -1
  11. package/dist/commands/junit/api.d.ts +0 -1
  12. package/dist/commands/junit/api.js +3 -7
  13. package/dist/commands/junit/api.js.map +1 -1
  14. package/dist/commands/react-native/upload.js +12 -6
  15. package/dist/commands/react-native/upload.js.map +1 -1
  16. package/dist/commands/sarif/api.d.ts +7 -0
  17. package/dist/commands/sarif/api.js +65 -0
  18. package/dist/commands/sarif/api.js.map +1 -0
  19. package/dist/commands/sarif/cli.d.ts +1 -0
  20. package/dist/commands/sarif/cli.js +5 -0
  21. package/dist/commands/sarif/cli.js.map +1 -0
  22. package/dist/commands/sarif/interfaces.d.ts +12 -0
  23. package/dist/commands/sarif/interfaces.js +3 -0
  24. package/dist/commands/sarif/interfaces.js.map +1 -0
  25. package/dist/commands/sarif/json-schema/sarif-schema-2.1.0.json +2885 -0
  26. package/dist/commands/sarif/renderer.d.ts +9 -0
  27. package/dist/commands/sarif/renderer.js +60 -0
  28. package/dist/commands/sarif/renderer.js.map +1 -0
  29. package/dist/commands/sarif/upload.d.ts +17 -0
  30. package/dist/commands/sarif/upload.js +197 -0
  31. package/dist/commands/sarif/upload.js.map +1 -0
  32. package/dist/commands/sarif/utils.d.ts +1 -0
  33. package/dist/commands/sarif/utils.js +11 -0
  34. package/dist/commands/sarif/utils.js.map +1 -0
  35. package/dist/helpers/file.d.ts +1 -0
  36. package/dist/helpers/file.js +9 -0
  37. package/dist/helpers/file.js.map +1 -0
  38. package/dist/helpers/interfaces.d.ts +2 -2
  39. package/dist/helpers/retry.d.ts +1 -1
  40. package/dist/helpers/retry.js +2 -3
  41. package/dist/helpers/retry.js.map +1 -1
  42. package/dist/helpers/utils.d.ts +9 -0
  43. package/dist/helpers/utils.js +13 -1
  44. package/dist/helpers/utils.js.map +1 -1
  45. package/dist/helpers/validation.d.ts +3 -0
  46. package/dist/helpers/validation.js +10 -1
  47. package/dist/helpers/validation.js.map +1 -1
  48. package/package.json +3 -1
  49. package/dist/commands/git-metadata/gitdb.d.ts +0 -7
  50. package/dist/commands/git-metadata/gitdb.js +0 -262
  51. package/dist/commands/git-metadata/gitdb.js.map +0 -1
  52. package/dist/commands/git-metadata/utils.d.ts +0 -16
  53. package/dist/commands/git-metadata/utils.js +0 -57
  54. package/dist/commands/git-metadata/utils.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import { SpanTags } from '../../helpers/interfaces';
2
+ import { Payload } from './interfaces';
3
+ export declare const renderInvalidFile: (sarifReport: string, errorMessage: string) => string;
4
+ export declare const renderFailedUpload: (sarifReport: Payload, errorMessage: string) => string;
5
+ export declare const renderRetriedUpload: (sarifReport: Payload, errorMessage: string, attempt: number) => string;
6
+ export declare const renderSuccessfulCommand: (fileCount: number, duration: number, spanTags: SpanTags, service: string, env?: string | undefined) => string;
7
+ export declare const renderDryRunUpload: (payload: Payload) => string;
8
+ export declare const renderUpload: (payload: Payload) => string;
9
+ export declare const renderCommandInfo: (basePaths: string[], service: string, concurrency: number, dryRun: boolean, noVerify: boolean) => string;
@@ -0,0 +1,60 @@
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.renderCommandInfo = exports.renderUpload = exports.renderDryRunUpload = exports.renderSuccessfulCommand = exports.renderRetriedUpload = exports.renderFailedUpload = exports.renderInvalidFile = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ICONS = {
10
+ FAILED: '❌',
11
+ SUCCESS: '✅',
12
+ WARNING: '⚠️',
13
+ INFO: 'ℹ️',
14
+ };
15
+ const renderInvalidFile = (sarifReport, errorMessage) => {
16
+ const reportPath = `[${chalk_1.default.bold.dim(sarifReport)}]`;
17
+ return chalk_1.default.red(`${ICONS.FAILED} Invalid SARIF report file ${reportPath}: ${errorMessage}\n`);
18
+ };
19
+ exports.renderInvalidFile = renderInvalidFile;
20
+ const renderFailedUpload = (sarifReport, errorMessage) => {
21
+ const reportPath = `[${chalk_1.default.bold.dim(sarifReport.reportPath)}]`;
22
+ return chalk_1.default.red(`${ICONS.FAILED} Failed upload SARIF report file ${reportPath}: ${errorMessage}\n`);
23
+ };
24
+ exports.renderFailedUpload = renderFailedUpload;
25
+ const renderRetriedUpload = (sarifReport, errorMessage, attempt) => {
26
+ const sarifReportPath = `[${chalk_1.default.bold.dim(sarifReport.reportPath)}]`;
27
+ return chalk_1.default.yellow(`[attempt ${attempt}] Retrying SARIF report upload ${sarifReportPath}: ${errorMessage}\n`);
28
+ };
29
+ exports.renderRetriedUpload = renderRetriedUpload;
30
+ const renderSuccessfulCommand = (fileCount, duration, spanTags, service, env) => {
31
+ let fullStr = '';
32
+ fullStr += chalk_1.default.green(`${ICONS.SUCCESS} Uploaded ${fileCount} files in ${duration} seconds.\n`);
33
+ fullStr += chalk_1.default.green('=================================================================================================\n');
34
+ return fullStr;
35
+ };
36
+ exports.renderSuccessfulCommand = renderSuccessfulCommand;
37
+ const renderDryRunUpload = (payload) => `[DRYRUN] ${exports.renderUpload(payload)}`;
38
+ exports.renderDryRunUpload = renderDryRunUpload;
39
+ const renderUpload = (payload) => `Uploading SARIF report in ${payload.reportPath}\n`;
40
+ exports.renderUpload = renderUpload;
41
+ const renderCommandInfo = (basePaths, service, concurrency, dryRun, noVerify) => {
42
+ let fullStr = '';
43
+ if (dryRun) {
44
+ fullStr += chalk_1.default.yellow(`${ICONS.WARNING} DRY-RUN MODE ENABLED. WILL NOT UPLOAD SARIF REPORT\n`);
45
+ }
46
+ if (noVerify) {
47
+ fullStr += chalk_1.default.yellow(`${ICONS.INFO} --no-verify enabled. The reports will be uploaded without client validation.\n`);
48
+ }
49
+ fullStr += chalk_1.default.green(`Starting upload with concurrency ${concurrency}. \n`);
50
+ if (basePaths.length === 1 && !!path_1.default.extname(basePaths[0])) {
51
+ fullStr += chalk_1.default.green(`Will upload SARIF report file ${basePaths[0]}\n`);
52
+ }
53
+ else {
54
+ fullStr += chalk_1.default.green(`Will look for SARIF report files in ${basePaths.join(', ')}\n`);
55
+ }
56
+ fullStr += chalk_1.default.green(`service: ${service}\n`);
57
+ return fullStr;
58
+ };
59
+ exports.renderCommandInfo = renderCommandInfo;
60
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/sarif/renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class UploadSarifReportCommand extends Command {
3
+ static usage: import("clipanion").Usage;
4
+ private basePaths?;
5
+ private config;
6
+ private dryRun;
7
+ private env?;
8
+ private maxConcurrency;
9
+ private service?;
10
+ private tags?;
11
+ private noVerify;
12
+ execute(): Promise<1 | undefined>;
13
+ private getSpanTags;
14
+ private uploadSarifReport;
15
+ private getApiHelper;
16
+ private getMatchingSarifReports;
17
+ }
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UploadSarifReportCommand = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const path_1 = __importDefault(require("path"));
18
+ const ajv_1 = __importDefault(require("ajv"));
19
+ const ajv_formats_1 = __importDefault(require("ajv-formats"));
20
+ const chalk_1 = __importDefault(require("chalk"));
21
+ const clipanion_1 = require("clipanion");
22
+ const glob_1 = __importDefault(require("glob"));
23
+ const tiny_async_pool_1 = __importDefault(require("tiny-async-pool"));
24
+ const ci_1 = require("../../helpers/ci");
25
+ const format_git_span_data_1 = require("../../helpers/git/format-git-span-data");
26
+ const retry_1 = require("../../helpers/retry");
27
+ const tags_1 = require("../../helpers/tags");
28
+ const user_provided_git_1 = require("../../helpers/user-provided-git");
29
+ const utils_1 = require("../../helpers/utils");
30
+ const api_1 = require("./api");
31
+ const sarif_schema_2_1_0_json_1 = __importDefault(require("./json-schema/sarif-schema-2.1.0.json"));
32
+ const renderer_1 = require("./renderer");
33
+ const utils_2 = require("./utils");
34
+ const errorCodesStopUpload = [400, 403];
35
+ const validateSarif = (sarifReportPath) => {
36
+ const ajv = new ajv_1.default();
37
+ ajv_formats_1.default(ajv);
38
+ const sarifJsonSchemaValidate = ajv.compile(sarif_schema_2_1_0_json_1.default);
39
+ try {
40
+ const sarifReportContent = JSON.parse(String(fs_1.default.readFileSync(sarifReportPath)));
41
+ const valid = sarifJsonSchemaValidate(sarifReportContent);
42
+ if (!valid) {
43
+ const errors = sarifJsonSchemaValidate.errors || [];
44
+ return errors.toString();
45
+ }
46
+ }
47
+ catch (error) {
48
+ return error.message;
49
+ }
50
+ return undefined;
51
+ };
52
+ class UploadSarifReportCommand extends clipanion_1.Command {
53
+ constructor() {
54
+ super(...arguments);
55
+ this.config = {
56
+ apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
57
+ env: process.env.DD_ENV,
58
+ envVarTags: process.env.DD_TAGS,
59
+ };
60
+ this.dryRun = false;
61
+ this.maxConcurrency = 20;
62
+ this.noVerify = false;
63
+ }
64
+ execute() {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ if (!this.service) {
67
+ this.service = process.env.DD_SERVICE;
68
+ }
69
+ if (!this.service) {
70
+ this.context.stderr.write('Missing service\n');
71
+ return 1;
72
+ }
73
+ if (!this.basePaths || !this.basePaths.length) {
74
+ this.context.stderr.write('Missing basePath\n');
75
+ return 1;
76
+ }
77
+ if (!this.config.env) {
78
+ this.config.env = this.env;
79
+ }
80
+ const api = this.getApiHelper();
81
+ // Normalizing the basePath to resolve .. and .
82
+ // Always using the posix version to avoid \ on Windows.
83
+ this.basePaths = this.basePaths.map((basePath) => path_1.default.posix.normalize(basePath));
84
+ this.context.stdout.write(renderer_1.renderCommandInfo(this.basePaths, this.service, this.maxConcurrency, this.dryRun, this.noVerify));
85
+ const spanTags = yield this.getSpanTags();
86
+ const payloads = yield this.getMatchingSarifReports(spanTags);
87
+ const upload = (p) => this.uploadSarifReport(api, p);
88
+ const initialTime = new Date().getTime();
89
+ yield tiny_async_pool_1.default(this.maxConcurrency, payloads, upload);
90
+ const totalTimeSeconds = (Date.now() - initialTime) / 1000;
91
+ this.context.stdout.write(renderer_1.renderSuccessfulCommand(payloads.length, totalTimeSeconds, spanTags, this.service, this.config.env));
92
+ });
93
+ }
94
+ getSpanTags() {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ const ciSpanTags = ci_1.getCISpanTags();
97
+ const gitSpanTags = yield format_git_span_data_1.getGitMetadata();
98
+ const userGitSpanTags = user_provided_git_1.getUserGitSpanTags();
99
+ const envVarTags = this.config.envVarTags ? tags_1.parseTags(this.config.envVarTags.split(',')) : {};
100
+ const cliTags = this.tags ? tags_1.parseTags(this.tags) : {};
101
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, gitSpanTags), ciSpanTags), userGitSpanTags), cliTags), envVarTags), (this.config.env ? { env: this.config.env } : {}));
102
+ });
103
+ }
104
+ uploadSarifReport(api, sarifReport) {
105
+ return __awaiter(this, void 0, void 0, function* () {
106
+ if (this.dryRun) {
107
+ this.context.stdout.write(renderer_1.renderDryRunUpload(sarifReport));
108
+ return;
109
+ }
110
+ try {
111
+ yield retry_1.retryRequest(() => api.uploadSarifReport(sarifReport, this.context.stdout.write.bind(this.context.stdout)), {
112
+ onRetry: (e, attempt) => {
113
+ this.context.stderr.write(renderer_1.renderRetriedUpload(sarifReport, e.message, attempt));
114
+ },
115
+ retries: 5,
116
+ });
117
+ }
118
+ catch (error) {
119
+ this.context.stderr.write(renderer_1.renderFailedUpload(sarifReport, error));
120
+ if (error.message) {
121
+ // If it's an axios error
122
+ if (!errorCodesStopUpload.includes(error.response.status)) {
123
+ // And a status code that should not stop the whole upload, just return
124
+ return;
125
+ }
126
+ }
127
+ throw error;
128
+ }
129
+ });
130
+ }
131
+ getApiHelper() {
132
+ if (!this.config.apiKey) {
133
+ this.context.stdout.write(`Neither ${chalk_1.default.red.bold('DATADOG_API_KEY')} nor ${chalk_1.default.red.bold('DD_API_KEY')} is in your environment.\n`);
134
+ throw new Error('API key is missing');
135
+ }
136
+ return api_1.apiConstructor(utils_2.getBaseIntakeUrl(), this.config.apiKey);
137
+ }
138
+ getMatchingSarifReports(spanTags) {
139
+ return __awaiter(this, void 0, void 0, function* () {
140
+ const sarifReports = (this.basePaths || []).reduce((acc, basePath) => {
141
+ const isFile = !!path_1.default.extname(basePath);
142
+ if (isFile) {
143
+ return acc.concat(fs_1.default.existsSync(basePath) ? [basePath] : []);
144
+ }
145
+ return acc.concat(glob_1.default.sync(utils_1.buildPath(basePath, '*.sarif')));
146
+ }, []);
147
+ const validUniqueFiles = [...new Set(sarifReports)].filter((sarifReport) => {
148
+ if (this.noVerify) {
149
+ return true;
150
+ }
151
+ const validationErrorMessage = validateSarif(sarifReport);
152
+ if (validationErrorMessage) {
153
+ this.context.stdout.write(renderer_1.renderInvalidFile(sarifReport, validationErrorMessage));
154
+ return false;
155
+ }
156
+ return true;
157
+ });
158
+ return validUniqueFiles.map((sarifReport) => ({
159
+ service: this.service,
160
+ reportPath: sarifReport,
161
+ spanTags,
162
+ }));
163
+ });
164
+ }
165
+ }
166
+ exports.UploadSarifReportCommand = UploadSarifReportCommand;
167
+ UploadSarifReportCommand.usage = clipanion_1.Command.Usage({
168
+ description: 'Upload SARIF reports files to Datadog.',
169
+ details: `
170
+ This command will upload SARIF reports files to Datadog.\n
171
+ See README for details.
172
+ `,
173
+ examples: [
174
+ ['Upload all SARIF report files in current directory', 'datadog-ci sarif upload --service my-service .'],
175
+ [
176
+ 'Upload all SARIF report files in src/sarif-go-reports and src/sarif-java-reports',
177
+ 'datadog-ci sarif upload --service my-service src/sarif-go-reports src/sarif-java-reports',
178
+ ],
179
+ [
180
+ 'Upload all SARIF report files in current directory and add extra tags globally',
181
+ 'datadog-ci sarif upload --service my-service --tags key1:value1 --tags key2:value2 .',
182
+ ],
183
+ [
184
+ 'Upload all SARIF report files in current directory to the datadoghq.eu site',
185
+ 'DATADOG_SITE=datadoghq.eu datadog-ci sarif upload --service my-service .',
186
+ ],
187
+ ],
188
+ });
189
+ UploadSarifReportCommand.addPath('sarif', 'upload');
190
+ UploadSarifReportCommand.addOption('service', clipanion_1.Command.String('--service'));
191
+ UploadSarifReportCommand.addOption('env', clipanion_1.Command.String('--env'));
192
+ UploadSarifReportCommand.addOption('dryRun', clipanion_1.Command.Boolean('--dry-run'));
193
+ UploadSarifReportCommand.addOption('noVerify', clipanion_1.Command.Boolean('--no-verify'));
194
+ UploadSarifReportCommand.addOption('tags', clipanion_1.Command.Array('--tags'));
195
+ UploadSarifReportCommand.addOption('basePaths', clipanion_1.Command.Rest({ required: 1 }));
196
+ UploadSarifReportCommand.addOption('maxConcurrency', clipanion_1.Command.String('--max-concurrency'));
197
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/sarif/upload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const getBaseIntakeUrl: () => string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBaseIntakeUrl = void 0;
4
+ const getBaseIntakeUrl = () => {
5
+ if (process.env.DATADOG_SITE || process.env.DD_SITE) {
6
+ return `https://cicodescan-intake.${process.env.DATADOG_SITE || process.env.DD_SITE}`;
7
+ }
8
+ return 'https://cicodescan-intake.datadoghq.com';
9
+ };
10
+ exports.getBaseIntakeUrl = getBaseIntakeUrl;
11
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/sarif/utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;QACnD,OAAO,6BAA6B,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;KACtF;IAED,OAAO,yCAAyC,CAAA;AAClD,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B"}
@@ -0,0 +1 @@
1
+ export declare const getSafeFileName: (unsafeFileName: string) => string;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSafeFileName = void 0;
4
+ // We need a unique file name so we use span tags like the pipeline URL,
5
+ // which can contain dots and other unsafe characters for filenames.
6
+ // We filter them out here.
7
+ const getSafeFileName = (unsafeFileName) => unsafeFileName.replace(/[^a-z0-9]/gi, '_');
8
+ exports.getSafeFileName = getSafeFileName;
9
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/helpers/file.ts"],"names":[],"mappings":";;;AAAA,wEAAwE;AACxE,oEAAoE;AACpE,2BAA2B;AACpB,MAAM,eAAe,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;AAAxF,QAAA,eAAe,mBAAyE"}
@@ -1,4 +1,4 @@
1
- import { AxiosPromise, AxiosRequestConfig } from 'axios';
1
+ import { AxiosPromise, AxiosRequestConfig, AxiosResponse } from 'axios';
2
2
  import { CI_ENV_VARS, CI_JOB_NAME, CI_JOB_URL, CI_PIPELINE_ID, CI_PIPELINE_NAME, CI_PIPELINE_NUMBER, CI_PIPELINE_URL, CI_PROVIDER_NAME, CI_STAGE_NAME, CI_WORKSPACE_PATH, GIT_BRANCH, GIT_COMMIT_AUTHOR_DATE, GIT_COMMIT_AUTHOR_EMAIL, GIT_COMMIT_AUTHOR_NAME, GIT_COMMIT_COMMITTER_DATE, GIT_COMMIT_COMMITTER_EMAIL, GIT_COMMIT_COMMITTER_NAME, GIT_COMMIT_MESSAGE, GIT_REPOSITORY_URL, GIT_SHA, GIT_TAG } from './tags';
3
3
  export interface Metadata {
4
4
  ci: {
@@ -42,4 +42,4 @@ export interface Metadata {
42
42
  }
43
43
  export declare type SpanTag = typeof CI_JOB_NAME | typeof CI_JOB_URL | typeof CI_PIPELINE_ID | typeof CI_PIPELINE_NAME | typeof CI_PIPELINE_NUMBER | typeof CI_PIPELINE_URL | typeof CI_PROVIDER_NAME | typeof CI_STAGE_NAME | typeof CI_WORKSPACE_PATH | typeof GIT_BRANCH | typeof GIT_REPOSITORY_URL | typeof GIT_SHA | typeof GIT_TAG | typeof GIT_COMMIT_AUTHOR_EMAIL | typeof GIT_COMMIT_AUTHOR_NAME | typeof GIT_COMMIT_AUTHOR_DATE | typeof GIT_COMMIT_MESSAGE | typeof GIT_COMMIT_COMMITTER_DATE | typeof GIT_COMMIT_COMMITTER_EMAIL | typeof GIT_COMMIT_COMMITTER_NAME | typeof CI_ENV_VARS;
44
44
  export declare type SpanTags = Partial<Record<SpanTag, string>>;
45
- export declare type RequestBuilder = (args: AxiosRequestConfig) => AxiosPromise;
45
+ export declare type RequestBuilder = (args: AxiosRequestConfig) => AxiosPromise<AxiosResponse>;
@@ -1,2 +1,2 @@
1
1
  import retry from 'async-retry';
2
- export declare const retryRequest: <T>(requestPerformer: () => Promise<T>, retryOpts: retry.Options) => Promise<T>;
2
+ export declare const retryRequest: (requestPerformer: () => Promise<any>, retryOpts: retry.Options) => Promise<void>;
@@ -19,14 +19,13 @@ const retryRequest = (requestPerformer, retryOpts) => __awaiter(void 0, void 0,
19
19
  // Request function, passed to async-retry
20
20
  const doRequest = (bail) => __awaiter(void 0, void 0, void 0, function* () {
21
21
  try {
22
- return yield requestPerformer();
22
+ yield requestPerformer();
23
23
  }
24
24
  catch (error) {
25
25
  if (error.response && errorCodesNoRetry.includes(error.response.status)) {
26
26
  // If it's an axios error with a status code that is excluded from retries, we bail to avoid retrying
27
27
  bail(error);
28
- // bail interrupt the flow by throwing an exception, the code below is not executed
29
- return {};
28
+ return;
30
29
  }
31
30
  // Other cases are retried: other axios HTTP errors as well as
32
31
  // non-axios errors such as DNS resolution errors and connection timeouts
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/helpers/retry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8DAA+B;AAE/B,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAElC,MAAM,YAAY,GAAG,CAAU,gBAAkC,EAAE,SAAwB,EAAc,EAAE;IAChH,0CAA0C;IAC1C,MAAM,SAAS,GAAG,CAAO,IAAwB,EAAE,EAAE;QACnD,IAAI;YACF,OAAO,MAAM,gBAAgB,EAAE,CAAA;SAChC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACvE,qGAAqG;gBACrG,IAAI,CAAC,KAAK,CAAC,CAAA;gBAEX,mFAAmF;gBACnF,OAAO,EAAO,CAAA;aACf;YACD,8DAA8D;YAC9D,yEAAyE;YACzE,MAAM,KAAK,CAAA;SACZ;IACH,CAAC,CAAA,CAAA;IAED,qBAAqB;IACrB,OAAO,qBAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AACpC,CAAC,CAAA,CAAA;AArBY,QAAA,YAAY,gBAqBxB"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/helpers/retry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8DAA+B;AAE/B,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAElC,MAAM,YAAY,GAAG,CAAO,gBAAoC,EAAE,SAAwB,EAAiB,EAAE;IAClH,0CAA0C;IAC1C,MAAM,SAAS,GAAG,CAAO,IAAwB,EAAE,EAAE;QACnD,IAAI;YACF,MAAM,gBAAgB,EAAE,CAAA;SACzB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACvE,qGAAqG;gBACrG,IAAI,CAAC,KAAK,CAAC,CAAA;gBAEX,OAAM;aACP;YACD,8DAA8D;YAC9D,yEAAyE;YACzE,MAAM,KAAK,CAAA;SACZ;IACH,CAAC,CAAA,CAAA;IAED,qBAAqB;IACrB,OAAO,qBAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AACpC,CAAC,CAAA,CAAA;AApBY,QAAA,YAAY,gBAoBxB"}
@@ -5,6 +5,15 @@ import ProxyAgent from 'proxy-agent';
5
5
  export declare const DEFAULT_CONFIG_PATHS: string[];
6
6
  export declare const pick: <T extends Record<any, any>, K extends keyof T>(base: T, keys: K[]) => Partial<T>;
7
7
  export declare const getConfig: (configPath: string) => Promise<any>;
8
+ /**
9
+ * Applies configurations in this order of priority:
10
+ * environment > config file > base config
11
+ */
12
+ export declare const resolveConfigFromFileAndEnvironment: <T extends Record<string, unknown>, U extends Record<string, unknown>>(baseConfig: T, environment: U, params: {
13
+ configPath?: string | undefined;
14
+ defaultConfigPaths?: string[] | undefined;
15
+ configFromFileCallback?: ((configFromFile: any) => void) | undefined;
16
+ }) => Promise<T & U>;
8
17
  export declare const resolveConfigFromFile: <T>(baseConfig: T, params: {
9
18
  configPath?: string;
10
19
  defaultConfigPaths?: string[];
@@ -31,7 +31,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.filterAndFormatGithubRemote = exports.filterSensitiveInfoFromRepository = exports.performSubCommand = exports.pluralize = exports.normalizeRef = exports.removeUndefinedValues = exports.removeEmptyValues = exports.buildPath = exports.getApiHostForSite = exports.getProxyAgent = exports.getRequestBuilder = exports.getProxyUrl = exports.parseConfigFile = exports.resolveConfigFromFile = exports.getConfig = exports.pick = exports.DEFAULT_CONFIG_PATHS = void 0;
34
+ exports.filterAndFormatGithubRemote = exports.filterSensitiveInfoFromRepository = exports.performSubCommand = exports.pluralize = exports.normalizeRef = exports.removeUndefinedValues = exports.removeEmptyValues = exports.buildPath = exports.getApiHostForSite = exports.getProxyAgent = exports.getRequestBuilder = exports.getProxyUrl = exports.parseConfigFile = exports.resolveConfigFromFile = exports.resolveConfigFromFileAndEnvironment = exports.getConfig = exports.pick = exports.DEFAULT_CONFIG_PATHS = void 0;
35
35
  const fs_1 = __importStar(require("fs"));
36
36
  const util_1 = require("util");
37
37
  const axios_1 = __importDefault(require("axios"));
@@ -76,6 +76,18 @@ const resolveConfigPath = ({ configPath, defaultConfigPaths, }) => {
76
76
  }
77
77
  return undefined;
78
78
  };
79
+ /**
80
+ * Applies configurations in this order of priority:
81
+ * environment > config file > base config
82
+ */
83
+ const resolveConfigFromFileAndEnvironment = (baseConfig, environment, params) => __awaiter(void 0, void 0, void 0, function* () {
84
+ const configFromFile = yield exports.resolveConfigFromFile(baseConfig, params);
85
+ if (params.configFromFileCallback) {
86
+ params.configFromFileCallback(configFromFile);
87
+ }
88
+ return deep_extend_1.default(configFromFile, exports.removeUndefinedValues(environment));
89
+ });
90
+ exports.resolveConfigFromFileAndEnvironment = resolveConfigFromFileAndEnvironment;
79
91
  const resolveConfigFromFile = (baseConfig, params) => __awaiter(void 0, void 0, void 0, function* () {
80
92
  const resolvedConfigPath = resolveConfigPath(params);
81
93
  if (!resolvedConfigPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
@@ -12,3 +12,6 @@ export declare const checkFile: (path: string) => {
12
12
  * @returns a boolean indicating if the provided site is valid a Datadog site.
13
13
  */
14
14
  export declare const isValidDatadogSite: (site?: string | undefined) => boolean;
15
+ export declare const checkAPIKeyOverride: (environmentAPIKey: string | undefined, configFileAPIKey: string | undefined, stdout: {
16
+ write: (message: string) => void;
17
+ }) => void;
@@ -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.isValidDatadogSite = exports.checkFile = void 0;
6
+ exports.checkAPIKeyOverride = exports.isValidDatadogSite = exports.checkFile = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const constants_1 = require("../constants");
9
9
  const checkFile = (path) => {
@@ -39,4 +39,13 @@ const isValidDatadogSite = (site) => {
39
39
  return !!process.env.DD_CI_BYPASS_SITE_VALIDATION || constants_1.DATADOG_SITES.includes(site.toLowerCase());
40
40
  };
41
41
  exports.isValidDatadogSite = isValidDatadogSite;
42
+ const renderDuplicateAPIKey = (environmentAPIKey) => {
43
+ return `API keys were specified both in a configuration file and in the environment.\nThe environment API key ending in ${environmentAPIKey.slice(-4)} will be used.\n`;
44
+ };
45
+ const checkAPIKeyOverride = (environmentAPIKey, configFileAPIKey, stdout) => {
46
+ if (configFileAPIKey && environmentAPIKey && configFileAPIKey !== environmentAPIKey) {
47
+ stdout.write(renderDuplicateAPIKey(environmentAPIKey));
48
+ }
49
+ };
50
+ exports.checkAPIKeyOverride = checkAPIKeyOverride;
42
51
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/helpers/validation.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEnB,4CAA0C;AAEnC,MAAM,SAAS,GAAwD,CAAC,IAAY,EAAE,EAAE;IAC7F,IAAI;QACF,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAA;SACnC;KACF;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,OAAO,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;SACrC;QACD,sBAAsB;QACtB,MAAM,KAAK,CAAA;KACZ;IAED,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;AACrC,CAAC,CAAA;AAfY,QAAA,SAAS,aAerB;AAED;;;;;;;;GAQG;AACI,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAW,EAAE;IAC3D,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,KAAK,CAAA;KACb;IAED,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,yBAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;AACjG,CAAC,CAAA;AANY,QAAA,kBAAkB,sBAM9B"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/helpers/validation.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEnB,4CAA0C;AAEnC,MAAM,SAAS,GAAwD,CAAC,IAAY,EAAE,EAAE;IAC7F,IAAI;QACF,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAA;SACnC;KACF;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,OAAO,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;SACrC;QACD,sBAAsB;QACtB,MAAM,KAAK,CAAA;KACZ;IAED,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;AACrC,CAAC,CAAA;AAfY,QAAA,SAAS,aAerB;AAED;;;;;;;;GAQG;AACI,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAW,EAAE;IAC3D,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,KAAK,CAAA;KACb;IAED,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,yBAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;AACjG,CAAC,CAAA;AANY,QAAA,kBAAkB,sBAM9B;AAED,MAAM,qBAAqB,GAAG,CAAC,iBAAyB,EAAE,EAAE;IAC1D,OAAO,mHAAmH,iBAAiB,CAAC,KAAK,CAC/I,CAAC,CAAC,CACH,kBAAkB,CAAA;AACrB,CAAC,CAAA;AAEM,MAAM,mBAAmB,GAAG,CACjC,iBAAqC,EACrC,gBAAoC,EACpC,MAA0C,EACpC,EAAE;IACR,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,gBAAgB,KAAK,iBAAiB,EAAE;QACnF,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,CAAA;KACvD;AACH,CAAC,CAAA;AARY,QAAA,mBAAmB,uBAQ/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datadog/datadog-ci",
3
- "version": "2.5.2-alpha",
3
+ "version": "2.6.0",
4
4
  "description": "Run datadog actions from the CI.",
5
5
  "repository": "https://github.com/DataDog/datadog-ci",
6
6
  "license": "Apache-2.0",
@@ -57,6 +57,8 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "@types/datadog-metrics": "0.6.1",
60
+ "ajv": "^8.12.0",
61
+ "ajv-formats": "^2.1.1",
60
62
  "async-retry": "1.3.1",
61
63
  "aws-sdk": "^2.1012.0",
62
64
  "axios": "0.21.4",
@@ -1,7 +0,0 @@
1
- import { AxiosResponse } from 'axios';
2
- import * as simpleGit from 'simple-git';
3
- import { RequestBuilder } from '../../helpers/interfaces';
4
- import { Logger } from './utils';
5
- export declare const uploadToGitDB: (log: Logger, request: RequestBuilder, git: simpleGit.SimpleGit, dryRun: boolean) => Promise<void>;
6
- export declare const uploadPackfiles: (log: Logger, request: RequestBuilder, repoURL: string, headCommit: string, packfilePaths: string[]) => Promise<void>;
7
- export declare const uploadPackfile: (log: Logger, request: RequestBuilder, repoURL: string, headCommit: string, packfilePath: string) => Promise<AxiosResponse<any>>;