@datadog/datadog-ci 2.18.0 → 2.19.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/cli.d.ts +3 -1
- package/dist/cli.js +9 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/cloud-run/cli.d.ts +1 -0
- package/dist/commands/cloud-run/cli.js +5 -0
- package/dist/commands/cloud-run/cli.js.map +1 -0
- package/dist/commands/cloud-run/constants.d.ts +1 -0
- package/dist/commands/cloud-run/constants.js +22 -0
- package/dist/commands/cloud-run/constants.js.map +1 -0
- package/dist/commands/cloud-run/flare.d.ts +91 -0
- package/dist/commands/cloud-run/flare.js +634 -0
- package/dist/commands/cloud-run/flare.js.map +1 -0
- package/dist/commands/cloud-run/interfaces.d.ts +27 -0
- package/dist/commands/cloud-run/interfaces.js +3 -0
- package/dist/commands/cloud-run/interfaces.js.map +1 -0
- package/dist/commands/cloud-run/renderer.d.ts +4 -0
- package/dist/commands/cloud-run/renderer.js +42 -0
- package/dist/commands/cloud-run/renderer.js.map +1 -0
- package/dist/commands/dsyms/renderer.js +6 -6
- package/dist/commands/dsyms/renderer.js.map +1 -1
- package/dist/commands/dsyms/upload.d.ts +5 -5
- package/dist/commands/dsyms/upload.js +66 -42
- package/dist/commands/dsyms/upload.js.map +1 -1
- package/dist/commands/dsyms/utils.d.ts +1 -1
- package/dist/commands/dsyms/utils.js +3 -3
- package/dist/commands/dsyms/utils.js.map +1 -1
- package/dist/commands/flutter-symbols/helpers.js +8 -4
- package/dist/commands/flutter-symbols/helpers.js.map +1 -1
- package/dist/commands/flutter-symbols/renderer.js +2 -2
- package/dist/commands/flutter-symbols/renderer.js.map +1 -1
- package/dist/commands/flutter-symbols/upload.d.ts +13 -13
- package/dist/commands/flutter-symbols/upload.js +66 -66
- package/dist/commands/flutter-symbols/upload.js.map +1 -1
- package/dist/commands/gate/api.js +4 -2
- package/dist/commands/gate/api.js.map +1 -1
- package/dist/commands/gate/evaluate.d.ts +18 -6
- package/dist/commands/gate/evaluate.js +116 -40
- package/dist/commands/gate/evaluate.js.map +1 -1
- package/dist/commands/gate/interfaces.d.ts +5 -0
- package/dist/commands/gate/renderer.js +16 -14
- package/dist/commands/gate/renderer.js.map +1 -1
- package/dist/commands/gate/utils.d.ts +1 -0
- package/dist/commands/gate/utils.js +8 -4
- package/dist/commands/gate/utils.js.map +1 -1
- package/dist/commands/git-metadata/git.d.ts +1 -1
- package/dist/commands/git-metadata/git.js +7 -3
- package/dist/commands/git-metadata/git.js.map +1 -1
- package/dist/commands/git-metadata/gitdb.d.ts +1 -1
- package/dist/commands/git-metadata/gitdb.js +7 -7
- package/dist/commands/git-metadata/gitdb.js.map +1 -1
- package/dist/commands/git-metadata/index.js +5 -1
- package/dist/commands/git-metadata/index.js.map +1 -1
- package/dist/commands/git-metadata/library.d.ts +1 -1
- package/dist/commands/git-metadata/library.js +13 -13
- package/dist/commands/git-metadata/library.js.map +1 -1
- package/dist/commands/git-metadata/upload.d.ts +5 -5
- package/dist/commands/git-metadata/upload.js +30 -32
- package/dist/commands/git-metadata/upload.js.map +1 -1
- package/dist/commands/junit/api.js +4 -4
- package/dist/commands/junit/api.js.map +1 -1
- package/dist/commands/junit/id.js +1 -1
- package/dist/commands/junit/id.js.map +1 -1
- package/dist/commands/junit/renderer.d.ts +1 -1
- package/dist/commands/junit/renderer.js +3 -3
- package/dist/commands/junit/renderer.js.map +1 -1
- package/dist/commands/junit/upload.d.ts +12 -11
- package/dist/commands/junit/upload.js +74 -63
- package/dist/commands/junit/upload.js.map +1 -1
- package/dist/commands/junit/utils.d.ts +1 -2
- package/dist/commands/junit/utils.js +5 -10
- package/dist/commands/junit/utils.js.map +1 -1
- package/dist/commands/lambda/constants.d.ts +13 -11
- package/dist/commands/lambda/constants.js +41 -70
- package/dist/commands/lambda/constants.js.map +1 -1
- package/dist/commands/lambda/flare.d.ts +25 -74
- package/dist/commands/lambda/flare.js +182 -332
- package/dist/commands/lambda/flare.js.map +1 -1
- package/dist/commands/lambda/functions/commons.d.ts +8 -14
- package/dist/commands/lambda/functions/commons.js +57 -69
- package/dist/commands/lambda/functions/commons.js.map +1 -1
- package/dist/commands/lambda/functions/instrument.js +66 -65
- package/dist/commands/lambda/functions/instrument.js.map +1 -1
- package/dist/commands/lambda/functions/uninstrument.js +38 -37
- package/dist/commands/lambda/functions/uninstrument.js.map +1 -1
- package/dist/commands/lambda/functions/versionChecker.d.ts +2 -2
- package/dist/commands/lambda/instrument.d.ts +22 -20
- package/dist/commands/lambda/instrument.js +78 -69
- package/dist/commands/lambda/instrument.js.map +1 -1
- package/dist/commands/lambda/loggroup.js +8 -8
- package/dist/commands/lambda/loggroup.js.map +1 -1
- package/dist/commands/lambda/prompt.d.ts +1 -4
- package/dist/commands/lambda/prompt.js +34 -71
- package/dist/commands/lambda/prompt.js.map +1 -1
- package/dist/commands/lambda/renderers/__mocks__/instrument-uninstrument-renderer.d.ts +2 -0
- package/dist/commands/lambda/renderers/__mocks__/instrument-uninstrument-renderer.js +11 -0
- package/dist/commands/lambda/renderers/__mocks__/instrument-uninstrument-renderer.js.map +1 -0
- package/dist/commands/lambda/renderers/common-renderer.d.ts +0 -26
- package/dist/commands/lambda/renderers/common-renderer.js +4 -32
- package/dist/commands/lambda/renderers/common-renderer.js.map +1 -1
- package/dist/commands/lambda/renderers/instrument-uninstrument-renderer.d.ts +2 -2
- package/dist/commands/lambda/renderers/instrument-uninstrument-renderer.js +57 -49
- package/dist/commands/lambda/renderers/instrument-uninstrument-renderer.js.map +1 -1
- package/dist/commands/lambda/tags.js +7 -7
- package/dist/commands/lambda/tags.js.map +1 -1
- package/dist/commands/lambda/uninstrument.d.ts +25 -7
- package/dist/commands/lambda/uninstrument.js +59 -49
- package/dist/commands/lambda/uninstrument.js.map +1 -1
- package/dist/commands/metric/metric.d.ts +4 -3
- package/dist/commands/metric/metric.js +10 -9
- package/dist/commands/metric/metric.js.map +1 -1
- package/dist/commands/react-native/codepush.d.ts +11 -10
- package/dist/commands/react-native/codepush.js +17 -19
- package/dist/commands/react-native/codepush.js.map +1 -1
- package/dist/commands/react-native/interfaces.d.ts +1 -1
- package/dist/commands/react-native/renderer.js +6 -6
- package/dist/commands/react-native/renderer.js.map +1 -1
- package/dist/commands/react-native/upload.d.ts +12 -12
- package/dist/commands/react-native/upload.js +67 -45
- package/dist/commands/react-native/upload.js.map +1 -1
- package/dist/commands/react-native/utils.js +2 -1
- package/dist/commands/react-native/utils.js.map +1 -1
- package/dist/commands/react-native/validation.js +1 -1
- package/dist/commands/react-native/validation.js.map +1 -1
- package/dist/commands/react-native/xcode.d.ts +6 -6
- package/dist/commands/react-native/xcode.js +25 -29
- package/dist/commands/react-native/xcode.js.map +1 -1
- package/dist/commands/sarif/api.js +6 -22
- package/dist/commands/sarif/api.js.map +1 -1
- package/dist/commands/sarif/renderer.d.ts +1 -1
- package/dist/commands/sarif/renderer.js +1 -1
- package/dist/commands/sarif/renderer.js.map +1 -1
- package/dist/commands/sarif/upload.d.ts +6 -6
- package/dist/commands/sarif/upload.js +46 -37
- package/dist/commands/sarif/upload.js.map +1 -1
- package/dist/commands/sbom/api.d.ts +7 -0
- package/dist/commands/sbom/api.js +49 -0
- package/dist/commands/sbom/api.js.map +1 -0
- package/dist/commands/sbom/cli.d.ts +1 -0
- package/dist/commands/sbom/cli.js +5 -0
- package/dist/commands/sbom/cli.js.map +1 -0
- package/dist/commands/sbom/constants.d.ts +2 -0
- package/dist/commands/sbom/constants.js +6 -0
- package/dist/commands/sbom/constants.js.map +1 -0
- package/dist/commands/sbom/json-schema/cyclonedx/bom-1.4.schema.json +1687 -0
- package/dist/commands/sbom/json-schema/jsf/jsf-0.82.schema.json +244 -0
- package/dist/commands/sbom/json-schema/spdx/spdx.schema.json +507 -0
- package/dist/commands/sbom/protobuf/bom-1.4.d.ts +11788 -0
- package/dist/commands/sbom/protobuf/bom-1.4.js +5161 -0
- package/dist/commands/sbom/protobuf/bom-1.4.js.map +1 -0
- package/dist/commands/sbom/protobuf/custom_message.d.ts +11 -0
- package/dist/commands/sbom/protobuf/custom_message.js +3 -0
- package/dist/commands/sbom/protobuf/custom_message.js.map +1 -0
- package/dist/commands/sbom/protobuf/google/protobuf/duration.d.ts +110 -0
- package/dist/commands/sbom/protobuf/google/protobuf/duration.js +126 -0
- package/dist/commands/sbom/protobuf/google/protobuf/duration.js.map +1 -0
- package/dist/commands/sbom/protobuf/google/protobuf/timestamp.d.ts +139 -0
- package/dist/commands/sbom/protobuf/google/protobuf/timestamp.js +126 -0
- package/dist/commands/sbom/protobuf/google/protobuf/timestamp.js.map +1 -0
- package/dist/commands/sbom/protobuf/sbom_intake.d.ts +53 -0
- package/dist/commands/sbom/protobuf/sbom_intake.js +383 -0
- package/dist/commands/sbom/protobuf/sbom_intake.js.map +1 -0
- package/dist/commands/sbom/types.d.ts +4 -0
- package/dist/commands/sbom/types.js +3 -0
- package/dist/commands/sbom/types.js.map +1 -0
- package/dist/commands/sbom/upload.d.ts +16 -0
- package/dist/commands/sbom/upload.js +134 -0
- package/dist/commands/sbom/upload.js.map +1 -0
- package/dist/commands/sbom/validation.d.ts +12 -0
- package/dist/commands/sbom/validation.js +51 -0
- package/dist/commands/sbom/validation.js.map +1 -0
- package/dist/commands/sourcemaps/renderer.js +6 -6
- package/dist/commands/sourcemaps/renderer.js.map +1 -1
- package/dist/commands/sourcemaps/upload.d.ts +10 -10
- package/dist/commands/sourcemaps/upload.js +61 -38
- package/dist/commands/sourcemaps/upload.js.map +1 -1
- package/dist/commands/sourcemaps/validation.js +4 -4
- package/dist/commands/sourcemaps/validation.js.map +1 -1
- package/dist/commands/stepfunctions/awsCommands.js +10 -10
- package/dist/commands/stepfunctions/awsCommands.js.map +1 -1
- package/dist/commands/stepfunctions/helpers.d.ts +4 -4
- package/dist/commands/stepfunctions/helpers.js +4 -4
- package/dist/commands/stepfunctions/helpers.js.map +1 -1
- package/dist/commands/stepfunctions/instrument.d.ts +5 -4
- package/dist/commands/stepfunctions/instrument.js +30 -31
- package/dist/commands/stepfunctions/instrument.js.map +1 -1
- package/dist/commands/stepfunctions/uninstrument.d.ts +6 -1
- package/dist/commands/stepfunctions/uninstrument.js +23 -23
- package/dist/commands/stepfunctions/uninstrument.js.map +1 -1
- package/dist/commands/synthetics/api.d.ts +1 -1
- package/dist/commands/synthetics/api.js +11 -11
- package/dist/commands/synthetics/api.js.map +1 -1
- package/dist/commands/synthetics/errors.d.ts +3 -3
- package/dist/commands/synthetics/index.js +5 -1
- package/dist/commands/synthetics/index.js.map +1 -1
- package/dist/commands/synthetics/interfaces.d.ts +8 -7
- package/dist/commands/synthetics/interfaces.js +2 -2
- package/dist/commands/synthetics/interfaces.js.map +1 -1
- package/dist/commands/synthetics/mobile.d.ts +1 -1
- package/dist/commands/synthetics/mobile.js +26 -20
- package/dist/commands/synthetics/mobile.js.map +1 -1
- package/dist/commands/synthetics/reporters/default.d.ts +2 -2
- package/dist/commands/synthetics/reporters/default.js +17 -19
- 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 +11 -11
- package/dist/commands/synthetics/reporters/junit.js.map +1 -1
- package/dist/commands/synthetics/run-tests-command.d.ts +21 -19
- package/dist/commands/synthetics/run-tests-command.js +108 -42
- package/dist/commands/synthetics/run-tests-command.js.map +1 -1
- package/dist/commands/synthetics/run-tests-lib.d.ts +1 -1
- package/dist/commands/synthetics/run-tests-lib.js +16 -16
- package/dist/commands/synthetics/run-tests-lib.js.map +1 -1
- package/dist/commands/synthetics/tunnel/crypto.js +3 -3
- package/dist/commands/synthetics/tunnel/crypto.js.map +1 -1
- package/dist/commands/synthetics/tunnel/tunnel.js +11 -11
- package/dist/commands/synthetics/tunnel/tunnel.js.map +1 -1
- package/dist/commands/synthetics/tunnel/websocket.d.ts +1 -0
- package/dist/commands/synthetics/tunnel/websocket.js +7 -3
- package/dist/commands/synthetics/tunnel/websocket.js.map +1 -1
- package/dist/commands/synthetics/upload-application-command.d.ts +10 -8
- package/dist/commands/synthetics/upload-application-command.js +36 -13
- package/dist/commands/synthetics/upload-application-command.js.map +1 -1
- package/dist/commands/synthetics/utils.d.ts +12 -12
- package/dist/commands/synthetics/utils.js +52 -47
- package/dist/commands/synthetics/utils.js.map +1 -1
- package/dist/commands/tag/tag.d.ts +4 -3
- package/dist/commands/tag/tag.js +10 -9
- package/dist/commands/tag/tag.js.map +1 -1
- package/dist/commands/trace/api.js +4 -4
- package/dist/commands/trace/api.js.map +1 -1
- package/dist/commands/trace/interfaces.d.ts +1 -1
- package/dist/commands/trace/trace.d.ts +5 -4
- package/dist/commands/trace/trace.js +11 -10
- package/dist/commands/trace/trace.js.map +1 -1
- package/dist/commands/version/cli.js +6 -5
- package/dist/commands/version/cli.js.map +1 -1
- package/dist/constants.d.ts +17 -0
- package/dist/constants.js +65 -1
- package/dist/constants.js.map +1 -1
- package/dist/helpers/api.d.ts +5 -0
- package/dist/helpers/api.js +16 -0
- package/dist/helpers/api.js.map +1 -0
- package/dist/helpers/base-intake-url.d.ts +1 -1
- package/dist/helpers/ci.d.ts +13 -13
- package/dist/helpers/ci.js +17 -17
- package/dist/helpers/ci.js.map +1 -1
- package/dist/helpers/config.d.ts +5 -0
- package/dist/helpers/config.js +3 -0
- package/dist/helpers/config.js.map +1 -0
- package/dist/helpers/flare.d.ts +41 -0
- package/dist/helpers/flare.js +191 -0
- package/dist/helpers/flare.js.map +1 -0
- package/dist/helpers/fs.d.ts +31 -0
- package/dist/helpers/fs.js +117 -0
- package/dist/helpers/fs.js.map +1 -0
- package/dist/helpers/git/format-git-sourcemaps-data.js +7 -3
- package/dist/helpers/git/format-git-sourcemaps-data.js.map +1 -1
- package/dist/helpers/git/format-git-span-data.js +6 -6
- package/dist/helpers/git/format-git-span-data.js.map +1 -1
- package/dist/helpers/git/get-git-data.js +3 -3
- package/dist/helpers/git/get-git-data.js.map +1 -1
- package/dist/helpers/interfaces.d.ts +9 -3
- package/dist/helpers/logger.js +1 -1
- package/dist/helpers/logger.js.map +1 -1
- package/dist/helpers/plist.d.ts +1 -1
- package/dist/helpers/plist.js +1 -1
- package/dist/helpers/plist.js.map +1 -1
- package/dist/helpers/prompt.d.ts +7 -0
- package/dist/helpers/prompt.js +57 -0
- package/dist/helpers/prompt.js.map +1 -0
- package/dist/helpers/renderer.d.ts +60 -0
- package/dist/helpers/renderer.js +98 -0
- package/dist/helpers/renderer.js.map +1 -0
- package/dist/helpers/retry.d.ts +1 -1
- package/dist/helpers/retry.js +3 -3
- package/dist/helpers/retry.js.map +1 -1
- package/dist/helpers/tags.d.ts +8 -0
- package/dist/helpers/tags.js +27 -1
- package/dist/helpers/tags.js.map +1 -1
- package/dist/helpers/upload.js +3 -3
- package/dist/helpers/upload.js.map +1 -1
- package/dist/helpers/user-provided-git.js +6 -6
- package/dist/helpers/user-provided-git.js.map +1 -1
- package/dist/helpers/utils.d.ts +12 -5
- package/dist/helpers/utils.js +57 -25
- package/dist/helpers/utils.js.map +1 -1
- package/dist/helpers/validation.d.ts +3 -1
- package/dist/helpers/validation.js +27 -1
- package/dist/helpers/validation.js.map +1 -1
- package/dist/helpers/version.d.ts +4 -0
- package/dist/helpers/version.js +9 -0
- package/dist/helpers/version.js.map +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/package.json +28 -13
- package/dist/commands/lambda/renderers/flare-renderer.d.ts +0 -9
- package/dist/commands/lambda/renderers/flare-renderer.js +0 -22
- package/dist/commands/lambda/renderers/flare-renderer.js.map +0 -1
- package/dist/helpers/file.d.ts +0 -1
- package/dist/helpers/file.js +0 -9
- package/dist/helpers/file.js.map +0 -1
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -21,34 +44,45 @@ const format_git_span_data_1 = require("../../helpers/git/format-git-span-data")
|
|
|
21
44
|
const retry_1 = require("../../helpers/retry");
|
|
22
45
|
const tags_1 = require("../../helpers/tags");
|
|
23
46
|
const user_provided_git_1 = require("../../helpers/user-provided-git");
|
|
47
|
+
const validation = __importStar(require("../../helpers/validation"));
|
|
24
48
|
const api_1 = require("./api");
|
|
25
49
|
const renderer_1 = require("./renderer");
|
|
26
50
|
const utils_1 = require("./utils");
|
|
27
51
|
class GateEvaluateCommand extends clipanion_1.Command {
|
|
28
52
|
constructor() {
|
|
29
53
|
super(...arguments);
|
|
54
|
+
this.initialRetryMs = 1000;
|
|
55
|
+
this.maxRetries = 5;
|
|
56
|
+
this.defaultTimeout = 600; // 10 min
|
|
57
|
+
this.dryRun = clipanion_1.Option.Boolean('--dry-run', false);
|
|
58
|
+
this.failOnEmpty = clipanion_1.Option.Boolean('--fail-on-empty', false);
|
|
59
|
+
this.failIfUnavailable = clipanion_1.Option.Boolean('--fail-if-unavailable', false);
|
|
60
|
+
this.noWait = clipanion_1.Option.Boolean('--no-wait', false);
|
|
61
|
+
this.timeoutInSeconds = clipanion_1.Option.String('--timeout', String(this.defaultTimeout), {
|
|
62
|
+
validator: validation.isInteger(),
|
|
63
|
+
});
|
|
64
|
+
this.userScope = clipanion_1.Option.Array('--scope');
|
|
65
|
+
this.tags = clipanion_1.Option.Array('--tags');
|
|
30
66
|
this.config = {
|
|
31
67
|
apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
|
|
32
|
-
appKey: process.env.DATADOG_APP_KEY,
|
|
68
|
+
appKey: process.env.DATADOG_APP_KEY || process.env.DD_APP_KEY,
|
|
33
69
|
envVarTags: process.env.DD_TAGS,
|
|
34
70
|
};
|
|
35
|
-
this.dryRun = false;
|
|
36
|
-
this.failOnEmpty = false;
|
|
37
|
-
this.failIfUnavailable = false;
|
|
38
|
-
this.noWait = false;
|
|
39
|
-
this.waitingTime = 30000; // 30 seconds
|
|
40
71
|
}
|
|
41
72
|
execute() {
|
|
42
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
74
|
const api = this.getApiHelper();
|
|
44
75
|
const spanTags = yield this.getSpanTags();
|
|
45
|
-
const userScope = this.userScope ? utils_1.parseScope(this.userScope) : {};
|
|
76
|
+
const userScope = this.userScope ? (0, utils_1.parseScope)(this.userScope) : {};
|
|
77
|
+
const startTimeMs = new Date().getTime();
|
|
46
78
|
const payload = {
|
|
47
|
-
requestId: uuid_1.v4(),
|
|
79
|
+
requestId: (0, uuid_1.v4)(),
|
|
48
80
|
spanTags,
|
|
49
81
|
userScope,
|
|
82
|
+
startTimeMs,
|
|
50
83
|
options: {
|
|
51
84
|
dryRun: this.dryRun,
|
|
85
|
+
noWait: this.noWait,
|
|
52
86
|
},
|
|
53
87
|
};
|
|
54
88
|
return this.evaluateRules(api, payload);
|
|
@@ -63,30 +97,37 @@ class GateEvaluateCommand extends clipanion_1.Command {
|
|
|
63
97
|
this.context.stdout.write(`Missing ${chalk_1.default.red.bold('DATADOG_APP_KEY')} in your environment.\n`);
|
|
64
98
|
throw new Error('APP key is missing');
|
|
65
99
|
}
|
|
66
|
-
return api_1.apiConstructor(utils_1.getBaseIntakeUrl(), this.config.apiKey, this.config.appKey);
|
|
100
|
+
return (0, api_1.apiConstructor)((0, utils_1.getBaseIntakeUrl)(), this.config.apiKey, this.config.appKey);
|
|
67
101
|
}
|
|
68
102
|
getSpanTags() {
|
|
69
103
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
-
const ciSpanTags = ci_1.getCISpanTags();
|
|
71
|
-
const gitSpanTags = yield format_git_span_data_1.getGitMetadata();
|
|
72
|
-
const userGitSpanTags = user_provided_git_1.getUserGitSpanTags();
|
|
73
|
-
const envVarTags = this.config.envVarTags ? tags_1.parseTags(this.config.envVarTags.split(',')) : {};
|
|
74
|
-
const cliTags = this.tags ? tags_1.parseTags(this.tags) : {};
|
|
104
|
+
const ciSpanTags = (0, ci_1.getCISpanTags)();
|
|
105
|
+
const gitSpanTags = yield (0, format_git_span_data_1.getGitMetadata)();
|
|
106
|
+
const userGitSpanTags = (0, user_provided_git_1.getUserGitSpanTags)();
|
|
107
|
+
const envVarTags = this.config.envVarTags ? (0, tags_1.parseTags)(this.config.envVarTags.split(',')) : {};
|
|
108
|
+
const cliTags = this.tags ? (0, tags_1.parseTags)(this.tags) : {};
|
|
75
109
|
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, gitSpanTags), ciSpanTags), userGitSpanTags), cliTags), envVarTags);
|
|
76
110
|
});
|
|
77
111
|
}
|
|
78
112
|
evaluateRules(api, evaluateRequest) {
|
|
79
113
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
114
|
+
this.context.stdout.write((0, renderer_1.renderGateEvaluationInput)(evaluateRequest));
|
|
115
|
+
/**
|
|
116
|
+
* `retryRequest` does not allow setting a wait time dependent on a backend response,
|
|
117
|
+
* so we handle the wait time in `evaluateRulesWithWait`: we'll wait whatever is necessary
|
|
118
|
+
* for the returned promise to be rejected. The retry will start immediately after
|
|
119
|
+
* and will be handled by `retryRequest`.
|
|
120
|
+
*/
|
|
121
|
+
return (0, retry_1.retryRequest)((bail, attempt) => this.evaluateRulesWithWait(api, evaluateRequest, attempt, bail), {
|
|
86
122
|
onRetry: (e, attempt) => {
|
|
87
|
-
|
|
123
|
+
// render retry message if error is not wait
|
|
124
|
+
if (e.message !== 'wait') {
|
|
125
|
+
this.context.stderr.write((0, renderer_1.renderEvaluationRetry)(attempt, e));
|
|
126
|
+
}
|
|
88
127
|
},
|
|
89
|
-
retries:
|
|
128
|
+
retries: this.maxRetries,
|
|
129
|
+
maxTimeout: 0,
|
|
130
|
+
minTimeout: 0,
|
|
90
131
|
})
|
|
91
132
|
.then((response) => {
|
|
92
133
|
return this.handleEvaluationSuccess(response.data.data.attributes);
|
|
@@ -96,31 +137,69 @@ class GateEvaluateCommand extends clipanion_1.Command {
|
|
|
96
137
|
});
|
|
97
138
|
});
|
|
98
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Evaluate gate rules and return a promise that will behave as follows:
|
|
142
|
+
* - If the request is successful, the promise will be resolved with the response
|
|
143
|
+
* - If the request is successful but the status is 'wait', the promise will be rejected after the received wait time (wait_time_ms)
|
|
144
|
+
* - If the request is not successful, the promise will be rejected after `initialRetryMs`, with an exponential factor that depends on the attempt (exponential backoff).
|
|
145
|
+
* - If the command execution time is greater than the command timeout, we bail to avoid retrying.
|
|
146
|
+
* If the promise is rejected, `retryRequest` will handle the retry immediately.
|
|
147
|
+
*/
|
|
148
|
+
evaluateRulesWithWait(api, evaluateRequest, attempt, bail) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
const timePassed = new Date().getTime() - evaluateRequest.startTimeMs;
|
|
151
|
+
const remainingWait = this.timeoutInSeconds * 1000 - timePassed;
|
|
152
|
+
return new Promise((resolve, reject) => {
|
|
153
|
+
if (remainingWait <= 0) {
|
|
154
|
+
bail === null || bail === void 0 ? void 0 : bail(new Error('wait'));
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
api
|
|
158
|
+
.evaluateGateRules(evaluateRequest, this.context.stdout.write.bind(this.context.stdout))
|
|
159
|
+
.then((response) => {
|
|
160
|
+
var _a, _b;
|
|
161
|
+
if (response.data.data.attributes.status === 'wait') {
|
|
162
|
+
this.context.stdout.write((0, renderer_1.renderWaiting)());
|
|
163
|
+
const waitTime = (_b = (_a = response.data.data.attributes.metadata) === null || _a === void 0 ? void 0 : _a.wait_time_ms) !== null && _b !== void 0 ? _b : 0;
|
|
164
|
+
setTimeout(() => {
|
|
165
|
+
reject(new Error('wait'));
|
|
166
|
+
}, Math.min(remainingWait, waitTime));
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
resolve(response);
|
|
170
|
+
}
|
|
171
|
+
})
|
|
172
|
+
.catch((err) => {
|
|
173
|
+
setTimeout(() => {
|
|
174
|
+
reject(err);
|
|
175
|
+
}, Math.min(remainingWait, this.getDelay(attempt !== null && attempt !== void 0 ? attempt : 1)));
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
getDelay(attempt) {
|
|
182
|
+
return Math.pow(2, attempt) * this.initialRetryMs;
|
|
183
|
+
}
|
|
99
184
|
handleEvaluationSuccess(evaluationResponse) {
|
|
100
|
-
this.context.stdout.write(renderer_1.renderEvaluationResponse(evaluationResponse));
|
|
185
|
+
this.context.stdout.write((0, renderer_1.renderEvaluationResponse)(evaluationResponse));
|
|
101
186
|
if (evaluationResponse.status === 'failed' || (evaluationResponse.status === 'empty' && this.failOnEmpty)) {
|
|
102
187
|
return 1;
|
|
103
188
|
}
|
|
104
189
|
return 0;
|
|
105
190
|
}
|
|
106
191
|
handleEvaluationError(error) {
|
|
107
|
-
this.context.stderr.write(renderer_1.renderGateEvaluationError(error, this.failIfUnavailable));
|
|
108
|
-
if (utils_1.is4xxError(error) || (utils_1.is5xxError(error) && this.failIfUnavailable)) {
|
|
192
|
+
this.context.stderr.write((0, renderer_1.renderGateEvaluationError)(error, this.failIfUnavailable));
|
|
193
|
+
if ((0, utils_1.is4xxError)(error) || (((0, utils_1.is5xxError)(error) || (0, utils_1.isTimeout)(error)) && this.failIfUnavailable)) {
|
|
109
194
|
return 1;
|
|
110
195
|
}
|
|
111
196
|
return 0;
|
|
112
197
|
}
|
|
113
|
-
delay(ms) {
|
|
114
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
-
yield new Promise((resolve) => setTimeout(resolve, ms));
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
shouldWait() {
|
|
119
|
-
return !this.dryRun && !this.noWait;
|
|
120
|
-
}
|
|
121
198
|
}
|
|
122
199
|
exports.GateEvaluateCommand = GateEvaluateCommand;
|
|
200
|
+
GateEvaluateCommand.paths = [['gate', 'evaluate']];
|
|
123
201
|
GateEvaluateCommand.usage = clipanion_1.Command.Usage({
|
|
202
|
+
category: 'CI Visibility',
|
|
124
203
|
description: 'Evaluate Quality Gates rules in Datadog.',
|
|
125
204
|
details: `
|
|
126
205
|
This command will evaluate the matching quality gate rules in Datadog.\n
|
|
@@ -148,14 +227,11 @@ GateEvaluateCommand.usage = clipanion_1.Command.Usage({
|
|
|
148
227
|
'Evaluate matching quality gate rules in Datadog from the datadoghq.eu site',
|
|
149
228
|
'DATADOG_SITE=datadoghq.eu datadog-ci gate evaluate',
|
|
150
229
|
],
|
|
230
|
+
[
|
|
231
|
+
'Evaluate matching quality gate rules in Datadog with a timeout of 120 seconds',
|
|
232
|
+
'datadog-ci gate evaluate --timeout 120',
|
|
233
|
+
],
|
|
151
234
|
['Evaluate matching quality gate rules in Datadog without waiting', 'datadog-ci gate evaluate --no-wait'],
|
|
152
235
|
],
|
|
153
236
|
});
|
|
154
|
-
GateEvaluateCommand.addPath('gate', 'evaluate');
|
|
155
|
-
GateEvaluateCommand.addOption('dryRun', clipanion_1.Command.Boolean('--dry-run'));
|
|
156
|
-
GateEvaluateCommand.addOption('failOnEmpty', clipanion_1.Command.Boolean('--fail-on-empty'));
|
|
157
|
-
GateEvaluateCommand.addOption('failIfUnavailable', clipanion_1.Command.Boolean('--fail-if-unavailable'));
|
|
158
|
-
GateEvaluateCommand.addOption('noWait', clipanion_1.Command.Boolean('--no-wait'));
|
|
159
|
-
GateEvaluateCommand.addOption('userScope', clipanion_1.Command.Array('--scope'));
|
|
160
|
-
GateEvaluateCommand.addOption('tags', clipanion_1.Command.Array('--tags'));
|
|
161
237
|
//# sourceMappingURL=evaluate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/commands/gate/evaluate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/commands/gate/evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,14 @@ import { AxiosPromise } from 'axios';
|
|
|
4
4
|
import { SpanTags } from '../../helpers/interfaces';
|
|
5
5
|
export interface Payload {
|
|
6
6
|
requestId: string;
|
|
7
|
+
startTimeMs: number;
|
|
7
8
|
spanTags: SpanTags;
|
|
8
9
|
userScope: Record<string, string[]>;
|
|
9
10
|
options: PayloadOptions;
|
|
10
11
|
}
|
|
11
12
|
export interface PayloadOptions {
|
|
12
13
|
dryRun: boolean;
|
|
14
|
+
noWait: boolean;
|
|
13
15
|
}
|
|
14
16
|
export interface EvaluationResponsePayload {
|
|
15
17
|
data: {
|
|
@@ -19,6 +21,9 @@ export interface EvaluationResponsePayload {
|
|
|
19
21
|
export interface EvaluationResponse {
|
|
20
22
|
status: string;
|
|
21
23
|
rule_evaluations: RuleEvaluation[];
|
|
24
|
+
metadata?: {
|
|
25
|
+
wait_time_ms: number;
|
|
26
|
+
};
|
|
22
27
|
}
|
|
23
28
|
export interface RuleEvaluation {
|
|
24
29
|
rule_id: string;
|
|
@@ -15,18 +15,18 @@ const ICONS = {
|
|
|
15
15
|
};
|
|
16
16
|
const renderEvaluationResponse = (evaluationResponse) => {
|
|
17
17
|
if (evaluationResponse.status.toLowerCase() === 'empty') {
|
|
18
|
-
return exports.renderEmptyEvaluation();
|
|
18
|
+
return (0, exports.renderEmptyEvaluation)();
|
|
19
19
|
}
|
|
20
20
|
if (evaluationResponse.status.toLowerCase() === 'dry_run') {
|
|
21
|
-
return exports.renderDryRunEvaluation(evaluationResponse);
|
|
21
|
+
return (0, exports.renderDryRunEvaluation)(evaluationResponse);
|
|
22
22
|
}
|
|
23
23
|
let fullStr = '';
|
|
24
24
|
fullStr += chalk_1.default.green('Successfully evaluated all matching rules.\n');
|
|
25
|
-
fullStr += `Overall result: ${exports.renderStatus(evaluationResponse.status)}\n`;
|
|
25
|
+
fullStr += `Overall result: ${(0, exports.renderStatus)(evaluationResponse.status)}\n`;
|
|
26
26
|
fullStr += `Number of rules evaluated: ${chalk_1.default.bold(evaluationResponse.rule_evaluations.length)}\n`;
|
|
27
27
|
fullStr += '\n';
|
|
28
28
|
fullStr += chalk_1.default.yellow('####### Rules evaluated #######\n');
|
|
29
|
-
evaluationResponse.rule_evaluations.forEach((ruleEvaluation) => (fullStr += exports.renderRuleEvaluation(ruleEvaluation)));
|
|
29
|
+
evaluationResponse.rule_evaluations.forEach((ruleEvaluation) => (fullStr += (0, exports.renderRuleEvaluation)(ruleEvaluation)));
|
|
30
30
|
return fullStr;
|
|
31
31
|
};
|
|
32
32
|
exports.renderEvaluationResponse = renderEvaluationResponse;
|
|
@@ -53,7 +53,7 @@ const renderRuleEvaluation = (ruleEvaluation) => {
|
|
|
53
53
|
let fullStr = '';
|
|
54
54
|
fullStr += `Rule ID: ${ruleEvaluation.rule_id}\n`;
|
|
55
55
|
fullStr += `Rule Name: ${ruleEvaluation.rule_name}\n`;
|
|
56
|
-
fullStr += `Status: ${exports.renderStatus(ruleEvaluation.status)}\n`;
|
|
56
|
+
fullStr += `Status: ${(0, exports.renderStatus)(ruleEvaluation.status)}\n`;
|
|
57
57
|
if (ruleEvaluation.status.toLowerCase() === 'failed') {
|
|
58
58
|
fullStr += `${chalk_1.default.red.bold('Failure reason')}: ${ruleEvaluation.failure_reason}\n`;
|
|
59
59
|
}
|
|
@@ -68,12 +68,12 @@ exports.renderRuleEvaluation = renderRuleEvaluation;
|
|
|
68
68
|
const renderDryRunEvaluation = (evaluationResponse) => {
|
|
69
69
|
let fullStr = '';
|
|
70
70
|
fullStr += chalk_1.default.green('Successfully completed a dry run request\n');
|
|
71
|
-
fullStr += `Overall result: ${exports.renderStatus(evaluationResponse.status)}\n`;
|
|
71
|
+
fullStr += `Overall result: ${(0, exports.renderStatus)(evaluationResponse.status)}\n`;
|
|
72
72
|
fullStr += `Number of matching rules: ${chalk_1.default.bold(evaluationResponse.rule_evaluations.length)}\n`;
|
|
73
73
|
if (evaluationResponse.rule_evaluations.length > 0) {
|
|
74
74
|
fullStr += '\n';
|
|
75
75
|
fullStr += chalk_1.default.yellow('####### Matching rules #######\n');
|
|
76
|
-
evaluationResponse.rule_evaluations.forEach((ruleEvaluation) => (fullStr += exports.renderRuleEvaluation(ruleEvaluation)));
|
|
76
|
+
evaluationResponse.rule_evaluations.forEach((ruleEvaluation) => (fullStr += (0, exports.renderRuleEvaluation)(ruleEvaluation)));
|
|
77
77
|
}
|
|
78
78
|
return fullStr;
|
|
79
79
|
};
|
|
@@ -92,23 +92,25 @@ const renderGateEvaluationInput = (evaluateRequest) => {
|
|
|
92
92
|
exports.renderGateEvaluationInput = renderGateEvaluationInput;
|
|
93
93
|
const renderGateEvaluationError = (error, failIfUnavailable) => {
|
|
94
94
|
let errorStr = 'ERROR: Could not evaluate the rules.';
|
|
95
|
-
if (
|
|
96
|
-
|
|
95
|
+
if (error.message === 'wait') {
|
|
96
|
+
errorStr += ` The command timed out.\n`;
|
|
97
97
|
}
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
if (error.response) {
|
|
99
|
+
errorStr += ` Status code: ${error.response.status}.\n`;
|
|
100
|
+
}
|
|
101
|
+
if ((0, utils_1.isBadRequestError)(error)) {
|
|
100
102
|
const errorMessage = error.response.data.errors[0].detail;
|
|
101
103
|
errorStr += `Error is "${errorMessage}".\n`;
|
|
102
104
|
}
|
|
103
|
-
else if (utils_1.is5xxError(error) && !failIfUnavailable) {
|
|
105
|
+
else if (((0, utils_1.is5xxError)(error) || (0, utils_1.isTimeout)(error)) && !failIfUnavailable) {
|
|
104
106
|
errorStr += "Use the '--fail-if-unavailable' option to fail the command in this situation.\n";
|
|
105
107
|
}
|
|
106
108
|
return chalk_1.default.red(errorStr);
|
|
107
109
|
};
|
|
108
110
|
exports.renderGateEvaluationError = renderGateEvaluationError;
|
|
109
111
|
const renderEvaluationRetry = (attempt, error) => {
|
|
110
|
-
if (utils_1.is5xxError(error)) {
|
|
111
|
-
const errorStatus = utils_1.getStatus(error);
|
|
112
|
+
if ((0, utils_1.is5xxError)(error)) {
|
|
113
|
+
const errorStatus = (0, utils_1.getStatus)(error);
|
|
112
114
|
return chalk_1.default.yellow(`[attempt ${attempt}] Gate evaluation failed with status code ${errorStatus}, retrying.\n`);
|
|
113
115
|
}
|
|
114
116
|
return chalk_1.default.yellow(`[attempt ${attempt}] Gate evaluation failed, retrying.\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/gate/renderer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEzB,6CAAiE;AAGjE,
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/gate/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,3 +10,4 @@ export declare const getStatus: (error: any) => any;
|
|
|
10
10
|
export declare const is4xxError: (error: any) => any;
|
|
11
11
|
export declare const isBadRequestError: (error: any) => any;
|
|
12
12
|
export declare const is5xxError: (error: any) => any;
|
|
13
|
+
export declare const isTimeout: (error: any) => boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.is5xxError = exports.isBadRequestError = exports.is4xxError = exports.getStatus = exports.parseScope = exports.getBaseIntakeUrl = void 0;
|
|
3
|
+
exports.isTimeout = exports.is5xxError = exports.isBadRequestError = exports.is4xxError = exports.getStatus = exports.parseScope = exports.getBaseIntakeUrl = void 0;
|
|
4
4
|
const getBaseIntakeUrl = () => {
|
|
5
5
|
if (process.env.DATADOG_SITE || process.env.DD_SITE) {
|
|
6
6
|
return `https://quality-gates.${process.env.DATADOG_SITE || process.env.DD_SITE}`;
|
|
@@ -43,18 +43,22 @@ const getStatus = (error) => {
|
|
|
43
43
|
};
|
|
44
44
|
exports.getStatus = getStatus;
|
|
45
45
|
const is4xxError = (error) => {
|
|
46
|
-
const status = exports.getStatus(error);
|
|
46
|
+
const status = (0, exports.getStatus)(error);
|
|
47
47
|
return status && status >= 400 && status <= 499;
|
|
48
48
|
};
|
|
49
49
|
exports.is4xxError = is4xxError;
|
|
50
50
|
const isBadRequestError = (error) => {
|
|
51
|
-
const status = exports.getStatus(error);
|
|
51
|
+
const status = (0, exports.getStatus)(error);
|
|
52
52
|
return status && status === 400;
|
|
53
53
|
};
|
|
54
54
|
exports.isBadRequestError = isBadRequestError;
|
|
55
55
|
const is5xxError = (error) => {
|
|
56
|
-
const status = exports.getStatus(error);
|
|
56
|
+
const status = (0, exports.getStatus)(error);
|
|
57
57
|
return status && status >= 500 && status <= 599;
|
|
58
58
|
};
|
|
59
59
|
exports.is5xxError = is5xxError;
|
|
60
|
+
const isTimeout = (error) => {
|
|
61
|
+
return error.message === 'wait';
|
|
62
|
+
};
|
|
63
|
+
exports.isTimeout = isTimeout;
|
|
60
64
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/gate/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,yBAAyB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;KAClF;IAED,OAAO,qCAAqC,CAAA;AAC9C,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B;AAED;;;GAGG;AACI,MAAM,UAAU,GAAG,CAAC,KAAe,EAAE,EAAE;IAC5C,IAAI;QACF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAA8B,EAAE,YAAY,EAAE,EAAE;YACnE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC/B,OAAO,GAAG,CAAA;aACX;YAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACjD,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;YAEpD,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;iBACrB;aACF;iBAAM;gBACL,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;aACnB;YAED,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAAC,CAAA;KACP;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAA;KACV;AACH,CAAC,CAAA;AAxBY,QAAA,UAAU,cAwBtB;AAEM,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;;IACtC,OAAO,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAA;AAC/B,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB;AAEM,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,iBAAS,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/gate/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,yBAAyB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;KAClF;IAED,OAAO,qCAAqC,CAAA;AAC9C,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B;AAED;;;GAGG;AACI,MAAM,UAAU,GAAG,CAAC,KAAe,EAAE,EAAE;IAC5C,IAAI;QACF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAA8B,EAAE,YAAY,EAAE,EAAE;YACnE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC/B,OAAO,GAAG,CAAA;aACX;YAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACjD,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;YAEpD,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;iBACrB;aACF;iBAAM;gBACL,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;aACnB;YAED,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAAC,CAAA;KACP;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAA;KACV;AACH,CAAC,CAAA;AAxBY,QAAA,UAAU,cAwBtB;AAEM,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;;IACtC,OAAO,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAA;AAC/B,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB;AAEM,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAA;IAE/B,OAAO,MAAM,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAA;AACjD,CAAC,CAAA;AAJY,QAAA,UAAU,cAItB;AAEM,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAA;IAE/B,OAAO,MAAM,IAAI,MAAM,KAAK,GAAG,CAAA;AACjC,CAAC,CAAA;AAJY,QAAA,iBAAiB,qBAI7B;AAEM,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAA;IAE/B,OAAO,MAAM,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAA;AACjD,CAAC,CAAA;AAJY,QAAA,UAAU,cAItB;AAEM,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;IACtC,OAAO,KAAK,CAAC,OAAO,KAAK,MAAM,CAAA;AACjC,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB"}
|
|
@@ -3,4 +3,4 @@ import { CommitInfo } from './interfaces';
|
|
|
3
3
|
export declare const newSimpleGit: () => Promise<simpleGit.SimpleGit>;
|
|
4
4
|
export declare const stripCredentials: (remote: string) => string;
|
|
5
5
|
export declare const gitTrackedFiles: (git: simpleGit.SimpleGit) => Promise<string[]>;
|
|
6
|
-
export declare const getCommitInfo: (git: simpleGit.SimpleGit, repositoryURL?: string
|
|
6
|
+
export declare const getCommitInfo: (git: simpleGit.SimpleGit, repositoryURL?: string) => Promise<CommitInfo>;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -79,12 +83,12 @@ const getCommitInfo = (git, repositoryURL) => __awaiter(void 0, void 0, void 0,
|
|
|
79
83
|
let trackedFiles;
|
|
80
84
|
if (repositoryURL) {
|
|
81
85
|
;
|
|
82
|
-
[hash, trackedFiles] = yield Promise.all([gitHash(git), exports.gitTrackedFiles(git)]);
|
|
86
|
+
[hash, trackedFiles] = yield Promise.all([gitHash(git), (0, exports.gitTrackedFiles)(git)]);
|
|
83
87
|
remote = repositoryURL;
|
|
84
88
|
}
|
|
85
89
|
else {
|
|
86
90
|
;
|
|
87
|
-
[remote, hash, trackedFiles] = yield Promise.all([get_git_data_1.gitRemote(git), gitHash(git), exports.gitTrackedFiles(git)]);
|
|
91
|
+
[remote, hash, trackedFiles] = yield Promise.all([(0, get_git_data_1.gitRemote)(git), gitHash(git), (0, exports.gitTrackedFiles)(git)]);
|
|
88
92
|
}
|
|
89
93
|
return new interfaces_1.CommitInfo(hash, remote, trackedFiles);
|
|
90
94
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/commands/git-metadata/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/commands/git-metadata/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAAuB;AAEvB,sDAAuC;AAEvC,iEAAwD;AAExD,6CAAuC;AAEvC,kCAAkC;AAC3B,MAAM,YAAY,GAAG,GAAuC,EAAE;IACnE,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;QACtB,MAAM,EAAE,KAAK;QACb,sBAAsB,EAAE,CAAC;KAC1B,CAAA;IACD,yFAAyF;IACzF,0EAA0E;IAC1E,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IAClD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;IAEtB,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC,CAAA,CAAA;AAbY,QAAA,YAAY,gBAaxB;AAED,+DAA+D;AACxD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IACjD,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAA;QACjB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAA;QAEjB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;KACtB;IAAC,WAAM;QACN,OAAO,MAAM,CAAA;KACd;AACH,CAAC,CAAA;AAVY,QAAA,gBAAgB,oBAU5B;AAED,8CAA8C;AAC9C,MAAM,OAAO,GAAG,CAAO,GAAwB,EAAmB,EAAE,kDAAC,OAAA,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,GAAA,CAAA;AAEzF,uDAAuD;AAChD,MAAM,eAAe,GAAG,CAAO,GAAwB,EAAqB,EAAE;IACnF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAEvC,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;AAC1D,CAAC,CAAA,CAAA;AAJY,QAAA,eAAe,mBAI3B;AAED,gEAAgE;AACzD,MAAM,aAAa,GAAG,CAAO,GAAwB,EAAE,aAAsB,EAAuB,EAAE;IAC3G,sEAAsE;IACtE,uFAAuF;IACvF,6BAA6B;IAC7B,IAAI,MAAc,CAAA;IAClB,IAAI,IAAY,CAAA;IAChB,IAAI,YAAsB,CAAA;IAC1B,IAAI,aAAa,EAAE;QACjB,CAAC;QAAA,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/E,MAAM,GAAG,aAAa,CAAA;KACvB;SAAM;QACL,CAAC;QAAA,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,wBAAS,EAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC,CAAC,CAAA;KACxG;IAED,OAAO,IAAI,uBAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;AACnD,CAAC,CAAA,CAAA;AAfY,QAAA,aAAa,iBAezB"}
|
|
@@ -2,6 +2,6 @@ import { AxiosResponse } from 'axios';
|
|
|
2
2
|
import * as simpleGit from 'simple-git';
|
|
3
3
|
import { RequestBuilder } from '../../helpers/interfaces';
|
|
4
4
|
import { Logger } from '../../helpers/logger';
|
|
5
|
-
export declare const uploadToGitDB: (log: Logger, request: RequestBuilder, git: simpleGit.SimpleGit, dryRun: boolean, repositoryURL?: string
|
|
5
|
+
export declare const uploadToGitDB: (log: Logger, request: RequestBuilder, git: simpleGit.SimpleGit, dryRun: boolean, repositoryURL?: string) => Promise<void>;
|
|
6
6
|
export declare const uploadPackfiles: (log: Logger, request: RequestBuilder, repoURL: string, headCommit: string, packfilePaths: string[]) => Promise<void>;
|
|
7
7
|
export declare const uploadPackfile: (log: Logger, request: RequestBuilder, repoURL: string, headCommit: string, packfilePath: string) => Promise<AxiosResponse<any>>;
|
|
@@ -36,7 +36,7 @@ const uploadToGitDB = (log, request, git, dryRun, repositoryURL) => __awaiter(vo
|
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
38
|
try {
|
|
39
|
-
repoURL = yield get_git_data_1.gitRemote(git);
|
|
39
|
+
repoURL = yield (0, get_git_data_1.gitRemote)(git);
|
|
40
40
|
log.debug(`Syncing repository ${repoURL}`);
|
|
41
41
|
}
|
|
42
42
|
catch (err) {
|
|
@@ -96,7 +96,7 @@ const uploadToGitDB = (log, request, git, dryRun, repositoryURL) => __awaiter(vo
|
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
98
|
log.debug(`Uploading packfiles...`);
|
|
99
|
-
yield exports.uploadPackfiles(log, request, repoURL, latestCommits[0], packfiles);
|
|
99
|
+
yield (0, exports.uploadPackfiles)(log, request, repoURL, latestCommits[0], packfiles);
|
|
100
100
|
log.debug('Successfully uploaded packfiles.');
|
|
101
101
|
}
|
|
102
102
|
catch (err) {
|
|
@@ -122,12 +122,12 @@ const unshallowRepositoryWhenNeeded = (log, git) => __awaiter(void 0, void 0, vo
|
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
124
124
|
const gitversion = String(yield git.version());
|
|
125
|
-
if (semver_1.lte(gitversion, '2.27.0')) {
|
|
125
|
+
if ((0, semver_1.lte)(gitversion, '2.27.0')) {
|
|
126
126
|
return;
|
|
127
127
|
}
|
|
128
128
|
log.info('[unshallow] Git repository is a shallow clone, unshallowing it...');
|
|
129
129
|
const headCmdPromise = git.revparse('HEAD');
|
|
130
|
-
const remoteNameCmdPromise = get_git_data_1.getDefaultRemoteName(git);
|
|
130
|
+
const remoteNameCmdPromise = (0, get_git_data_1.getDefaultRemoteName)(git);
|
|
131
131
|
log.info(`[unshallow] Running git fetch --shallow-since="${MAX_HISTORY.oldestCommits}" --update-shallow --filter=blob:none --recurse-submodules=no`);
|
|
132
132
|
yield git.fetch([
|
|
133
133
|
`--shallow-since="${MAX_HISTORY.oldestCommits}"`,
|
|
@@ -191,7 +191,7 @@ const generatePackFilesForCommits = (log, commits) => __awaiter(void 0, void 0,
|
|
|
191
191
|
}
|
|
192
192
|
const generatePackfiles = (baseTmpPath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
193
193
|
const randomPrefix = String(Math.floor(Math.random() * 10000));
|
|
194
|
-
const tmpPath = yield promises_1.mkdtemp(path_1.default.join(baseTmpPath, 'dd-packfiles-'));
|
|
194
|
+
const tmpPath = yield (0, promises_1.mkdtemp)(path_1.default.join(baseTmpPath, 'dd-packfiles-'));
|
|
195
195
|
const packfilePath = path_1.default.join(tmpPath, randomPrefix);
|
|
196
196
|
const packObjectResults = child_process_1.default
|
|
197
197
|
.execSync(`git pack-objects --compression=9 --max-pack-size=3m ${packfilePath}`, {
|
|
@@ -228,7 +228,7 @@ const generatePackFilesForCommits = (log, commits) => __awaiter(void 0, void 0,
|
|
|
228
228
|
const uploadPackfiles = (log, request, repoURL, headCommit, packfilePaths) => __awaiter(void 0, void 0, void 0, function* () {
|
|
229
229
|
// this loop makes sure requests are performed sequentially
|
|
230
230
|
for (const pack of packfilePaths) {
|
|
231
|
-
yield exports.uploadPackfile(log, request, repoURL, headCommit, pack);
|
|
231
|
+
yield (0, exports.uploadPackfile)(log, request, repoURL, headCommit, pack);
|
|
232
232
|
}
|
|
233
233
|
});
|
|
234
234
|
exports.uploadPackfiles = uploadPackfiles;
|
|
@@ -262,7 +262,7 @@ const uploadPackfile = (log, request, repoURL, headCommit, packfilePath) => __aw
|
|
|
262
262
|
exports.uploadPackfile = uploadPackfile;
|
|
263
263
|
// runRequest will run the passed request, with retries of retriable errors + logging of any retry attempt.
|
|
264
264
|
const runRequest = (log, reqName, request) => __awaiter(void 0, void 0, void 0, function* () {
|
|
265
|
-
return retry_1.retryRequest(request, {
|
|
265
|
+
return (0, retry_1.retryRequest)(request, {
|
|
266
266
|
retries: 2,
|
|
267
267
|
onRetry: (e, attempt) => {
|
|
268
268
|
let errorMessage = `${e}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitdb.js","sourceRoot":"","sources":["../../../src/commands/git-metadata/gitdb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAAyC;AACzC,4CAAmB;AACnB,0CAAmC;AACnC,4CAAmB;AACnB,gDAAuB;AAGvB,0DAAgC;AAChC,mCAA0B;AAG1B,iEAA4F;AAG5F,+CAAgD;AAEhD,MAAM,WAAW,GAAG,KAAK,CAAA;AAEzB,0EAA0E;AAC1E,2DAA2D;AAC3D,MAAM,WAAW,GAAG;IAClB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,aAAa;CAC7B,CAAA;AAEM,MAAM,aAAa,GAAG,CAC3B,GAAW,EACX,OAAuB,EACvB,GAAwB,EACxB,MAAe,EACf,aAAsB,EACtB,EAAE;IACF,IAAI,OAAO,CAAA;IACX,IAAI,aAAa,EAAE;QACjB,OAAO,GAAG,aAAa,CAAA;KACxB;SAAM;QACL,IAAI;YACF,OAAO,GAAG,MAAM,wBAAU,
|
|
1
|
+
{"version":3,"file":"gitdb.js","sourceRoot":"","sources":["../../../src/commands/git-metadata/gitdb.ts"],"names":[],"mappings":"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"}
|