@datadog/datadog-ci 2.10.0 → 2.12.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/README.md +3 -2
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/gate/api.d.ts +7 -0
- package/dist/commands/gate/api.js +40 -0
- package/dist/commands/gate/api.js.map +1 -0
- package/dist/commands/gate/cli.d.ts +1 -0
- package/dist/commands/gate/cli.js +5 -0
- package/dist/commands/gate/cli.js.map +1 -0
- package/dist/commands/gate/evaluate.d.ts +11 -0
- package/dist/commands/gate/evaluate.js +98 -0
- package/dist/commands/gate/evaluate.js.map +1 -0
- package/dist/commands/gate/interfaces.d.ts +30 -0
- package/dist/commands/gate/interfaces.js +3 -0
- package/dist/commands/gate/interfaces.js.map +1 -0
- package/dist/commands/gate/renderer.d.ts +9 -0
- package/dist/commands/gate/renderer.js +80 -0
- package/dist/commands/gate/renderer.js.map +1 -0
- package/dist/commands/gate/utils.d.ts +1 -0
- package/dist/commands/gate/utils.js +11 -0
- package/dist/commands/gate/utils.js.map +1 -0
- package/dist/commands/junit/upload.d.ts +1 -0
- package/dist/commands/junit/upload.js +9 -1
- package/dist/commands/junit/upload.js.map +1 -1
- package/dist/commands/lambda/constants.d.ts +5 -0
- package/dist/commands/lambda/constants.js +7 -2
- package/dist/commands/lambda/constants.js.map +1 -1
- package/dist/commands/lambda/functions/commons.d.ts +3 -3
- package/dist/commands/lambda/functions/commons.js +18 -5
- package/dist/commands/lambda/functions/commons.js.map +1 -1
- package/dist/commands/lambda/functions/instrument.js +3 -3
- package/dist/commands/lambda/functions/instrument.js.map +1 -1
- package/dist/commands/lambda/instrument.js +5 -1
- package/dist/commands/lambda/instrument.js.map +1 -1
- package/dist/commands/lambda/uninstrument.js +5 -1
- package/dist/commands/lambda/uninstrument.js.map +1 -1
- package/dist/commands/sarif/upload.js +5 -2
- package/dist/commands/sarif/upload.js.map +1 -1
- package/dist/commands/stepfunctions/awsCommands.d.ts +16 -0
- package/dist/commands/stepfunctions/awsCommands.js +215 -0
- package/dist/commands/stepfunctions/awsCommands.js.map +1 -0
- package/dist/commands/stepfunctions/cli.d.ts +1 -0
- package/dist/commands/stepfunctions/cli.js +6 -0
- package/dist/commands/stepfunctions/cli.js.map +1 -0
- package/dist/commands/stepfunctions/constants.d.ts +2 -0
- package/dist/commands/stepfunctions/constants.js +6 -0
- package/dist/commands/stepfunctions/constants.js.map +1 -0
- package/dist/commands/stepfunctions/helpers.d.ts +15 -0
- package/dist/commands/stepfunctions/helpers.js +55 -0
- package/dist/commands/stepfunctions/helpers.js.map +1 -0
- package/dist/commands/stepfunctions/instrument.d.ts +10 -0
- package/dist/commands/stepfunctions/instrument.js +242 -0
- package/dist/commands/stepfunctions/instrument.js.map +1 -0
- package/dist/commands/stepfunctions/uninstrument.d.ts +7 -0
- package/dist/commands/stepfunctions/uninstrument.js +140 -0
- package/dist/commands/stepfunctions/uninstrument.js.map +1 -0
- package/dist/commands/synthetics/api.d.ts +1 -1
- package/dist/commands/synthetics/api.js +2 -2
- package/dist/commands/synthetics/api.js.map +1 -1
- package/dist/commands/synthetics/index.d.ts +1 -0
- package/dist/commands/synthetics/index.js +3 -1
- package/dist/commands/synthetics/index.js.map +1 -1
- package/dist/commands/synthetics/mobile.d.ts +4 -1
- package/dist/commands/synthetics/mobile.js +25 -12
- package/dist/commands/synthetics/mobile.js.map +1 -1
- package/dist/helpers/ci.d.ts +2 -0
- package/dist/helpers/ci.js +42 -4
- package/dist/helpers/ci.js.map +1 -1
- package/dist/helpers/interfaces.d.ts +2 -2
- package/dist/helpers/tags.d.ts +8 -0
- package/dist/helpers/tags.js +35 -1
- package/dist/helpers/tags.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -47,6 +47,7 @@ The following values are available for each `<command>`. See the corresponding d
|
|
|
47
47
|
- `metric`: [Metric](src/commands/metric)
|
|
48
48
|
- `react-native`: [React Native sourcemaps](src/commands/react-native/)
|
|
49
49
|
- `sourcemaps`: [Browser sourcemaps](src/commands/sourcemaps/)
|
|
50
|
+
- `stepfunctions`: [Step Functions](src/commands/stepfunctions)
|
|
50
51
|
- `synthetics`: [Continuous Testing](src/commands/synthetics/)
|
|
51
52
|
- `tag`: [Tag](src/commands/tag)
|
|
52
53
|
- `trace`: [Trace](src/commands/trace)
|
|
@@ -145,7 +146,7 @@ To release a new version of `datadog-ci`:
|
|
|
145
146
|
1. Create a new branch for the version upgrade.
|
|
146
147
|
2. Update the `package.json` version, commit the change `vX.X.X` and tag it with `git tag vX.X.X`, based on the version you are upgrading to. You may refer to [Semantic Versioning](https://semver.org/#summary) to determine what level to increment.
|
|
147
148
|
3. Push the branch along with the tag to the upstream (GitHub) with `git push --tags origin name-of-the-branch`, create a Pull Request with the changes introduced in the description details, and get at least one approval. For example, see this [sample pull request](https://github.com/DataDog/datadog-ci/pull/78).
|
|
148
|
-
4. Merge the Pull Request
|
|
149
|
+
4. Merge the Pull Request **with the rebase and merge strategy**.
|
|
149
150
|
5. Create a GitHub Release from the [Tags page](https://github.com/DataDog/datadog-ci/tags) with the description of changes introduced.
|
|
150
151
|
6. Once the release has been created, a GitHub Action publishes the package. Make sure the job succeeds.
|
|
151
152
|
7. When the package has been published, go to the [Datadog GitLab pipelines](https://gitlab.ddbuild.io/DataDog/datadog-ci/-/pipelines), find the pipeline for your tag, and start the `build` stage to run the Docker image build jobs. Once the jobs pass, the `release` stage automatically triggers. Make sure all the jobs succeed.
|
|
@@ -167,7 +168,7 @@ To create a pre-release or releasing in a different channel:
|
|
|
167
168
|
2. Create a PR for your feature branch with the channel branch as a base.
|
|
168
169
|
3. Pick a version following this format: `version-channel`. For example, `0.10.9-alpha`, `1-beta`, and more.
|
|
169
170
|
4. Update the `version` field in `package.json`.
|
|
170
|
-
5. Once you've received at least one approval, merge the Pull Request
|
|
171
|
+
5. Once you've received at least one approval, merge the Pull Request **with the rebase and merge strategy**.
|
|
171
172
|
6. Create a [GitHub Release](https://github.com/DataDog/datadog-ci/releases/new?target=alpha&tag=0.10.9-alpha&prerelease=1&title=Alpha+prerelease):
|
|
172
173
|
- Target the channel branch.
|
|
173
174
|
- Pick a tag based on your version `version-channel`.
|
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const clipanion_1 = require("clipanion");
|
|
9
|
+
const BETA_COMMANDS = ['gate'];
|
|
9
10
|
const onError = (err) => {
|
|
10
11
|
console.log(err);
|
|
11
12
|
process.exitCode = 1;
|
|
@@ -19,6 +20,9 @@ const cli = new clipanion_1.Cli({
|
|
|
19
20
|
});
|
|
20
21
|
const commandsPath = `${__dirname}/commands`;
|
|
21
22
|
for (const commandFolder of fs_1.default.readdirSync(commandsPath)) {
|
|
23
|
+
if (BETA_COMMANDS.includes(commandFolder)) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
22
26
|
const commandPath = `${commandsPath}/${commandFolder}`;
|
|
23
27
|
if (fs_1.default.statSync(commandPath).isDirectory()) {
|
|
24
28
|
require(`${commandPath}/cli`).forEach((command) => cli.register(command));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AAEnB,yCAA6B;AAG7B,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CAAA;AAED,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AACxC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAEzC,MAAM,GAAG,GAAG,IAAI,eAAG,CAAC;IAClB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;CAClD,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,GAAG,SAAS,WAAW,CAAA;AAC5C,KAAK,MAAM,aAAa,IAAI,YAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;IACxD,MAAM,WAAW,GAAG,GAAG,YAAY,IAAI,aAAa,EAAE,CAAA;IACtD,IAAI,YAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;KACxF;CACF;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,KAAK,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;CACH"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AAEnB,yCAA6B;AAG7B,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,CAAA;AAE9B,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CAAA;AAED,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AACxC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAEzC,MAAM,GAAG,GAAG,IAAI,eAAG,CAAC;IAClB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;CAClD,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,GAAG,SAAS,WAAW,CAAA;AAC5C,KAAK,MAAM,aAAa,IAAI,YAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;IACxD,IAAI,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QACzC,SAAQ;KACT;IACD,MAAM,WAAW,GAAG,GAAG,YAAY,IAAI,aAAa,EAAE,CAAA;IACtD,IAAI,YAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;KACxF;CACF;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,KAAK,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;CACH"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Writable } from 'stream';
|
|
2
|
+
import { AxiosPromise, AxiosRequestConfig } from 'axios';
|
|
3
|
+
import { EvaluationResponsePayload, Payload } from './interfaces';
|
|
4
|
+
export declare const evaluateGateRules: (request: (args: AxiosRequestConfig) => AxiosPromise<EvaluationResponsePayload>) => (evaluateRequest: Payload, write: Writable['write']) => Promise<import("axios").AxiosResponse<EvaluationResponsePayload>>;
|
|
5
|
+
export declare const apiConstructor: (baseIntakeUrl: string, apiKey: string, appKey: string) => {
|
|
6
|
+
evaluateGateRules: (evaluateRequest: Payload, write: Writable['write']) => Promise<import("axios").AxiosResponse<EvaluationResponsePayload>>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.apiConstructor = exports.evaluateGateRules = void 0;
|
|
13
|
+
const utils_1 = require("../../helpers/utils");
|
|
14
|
+
const evaluateGateRules = (request) => (evaluateRequest, write) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
const payload = JSON.stringify({
|
|
16
|
+
data: {
|
|
17
|
+
type: 'gate_evaluation',
|
|
18
|
+
attributes: {
|
|
19
|
+
tags: evaluateRequest.spanTags,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
return request({
|
|
24
|
+
data: payload,
|
|
25
|
+
headers: {
|
|
26
|
+
'Content-Type': 'application/json',
|
|
27
|
+
},
|
|
28
|
+
method: 'POST',
|
|
29
|
+
url: '/api/v2/quality-gates/evaluate',
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
exports.evaluateGateRules = evaluateGateRules;
|
|
33
|
+
const apiConstructor = (baseIntakeUrl, apiKey, appKey) => {
|
|
34
|
+
const serviceRequest = utils_1.getRequestBuilder({ baseUrl: baseIntakeUrl, apiKey, appKey });
|
|
35
|
+
return {
|
|
36
|
+
evaluateGateRules: exports.evaluateGateRules(serviceRequest),
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
exports.apiConstructor = apiConstructor;
|
|
40
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/gate/api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,+CAAqD;AAI9C,MAAM,iBAAiB,GAAG,CAC/B,OAA8E,EAC9E,EAAE,CAAC,CAAO,eAAwB,EAAE,KAAwB,EAAE,EAAE;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,EAAE;YACJ,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE,eAAe,CAAC,QAAQ;aAC/B;SACF;KACF,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,gCAAgC;KACtC,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AApBY,QAAA,iBAAiB,qBAoB7B;AAEM,MAAM,cAAc,GAAG,CAAC,aAAqB,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;IACtF,MAAM,cAAc,GAAG,yBAAiB,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAA;IAElF,OAAO;QACL,iBAAiB,EAAE,yBAAiB,CAAC,cAAc,CAAC;KACrD,CAAA;AACH,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/commands/gate/cli.ts"],"names":[],"mappings":";;AAAA,yCAA8C;AAE9C,MAAM,CAAC,OAAO,GAAG,CAAC,8BAAmB,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Command } from 'clipanion';
|
|
2
|
+
export declare class GateEvaluateCommand extends Command {
|
|
3
|
+
private config;
|
|
4
|
+
private dryRun;
|
|
5
|
+
private failOnEmpty;
|
|
6
|
+
execute(): Promise<number>;
|
|
7
|
+
private getApiHelper;
|
|
8
|
+
private getSpanTags;
|
|
9
|
+
private evaluateRules;
|
|
10
|
+
private handleEvaluationResponse;
|
|
11
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
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.GateEvaluateCommand = void 0;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const clipanion_1 = require("clipanion");
|
|
18
|
+
const ci_1 = require("../../helpers/ci");
|
|
19
|
+
const format_git_span_data_1 = require("../../helpers/git/format-git-span-data");
|
|
20
|
+
const user_provided_git_1 = require("../../helpers/user-provided-git");
|
|
21
|
+
const api_1 = require("./api");
|
|
22
|
+
const renderer_1 = require("./renderer");
|
|
23
|
+
const utils_1 = require("./utils");
|
|
24
|
+
class GateEvaluateCommand extends clipanion_1.Command {
|
|
25
|
+
constructor() {
|
|
26
|
+
// TODO add usage
|
|
27
|
+
super(...arguments);
|
|
28
|
+
this.config = {
|
|
29
|
+
apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
|
|
30
|
+
appKey: process.env.DATADOG_APP_KEY,
|
|
31
|
+
};
|
|
32
|
+
this.dryRun = false;
|
|
33
|
+
this.failOnEmpty = false;
|
|
34
|
+
}
|
|
35
|
+
execute() {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const api = this.getApiHelper();
|
|
38
|
+
const spanTags = yield this.getSpanTags();
|
|
39
|
+
const payload = {
|
|
40
|
+
spanTags,
|
|
41
|
+
};
|
|
42
|
+
return this.evaluateRules(api, payload);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
getApiHelper() {
|
|
46
|
+
if (!this.config.apiKey) {
|
|
47
|
+
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`);
|
|
48
|
+
throw new Error('API key is missing');
|
|
49
|
+
}
|
|
50
|
+
if (!this.config.appKey) {
|
|
51
|
+
this.context.stdout.write(`Missing ${chalk_1.default.red.bold('DATADOG_APP_KEY')} in your environment.\n`);
|
|
52
|
+
throw new Error('APP key is missing');
|
|
53
|
+
}
|
|
54
|
+
return api_1.apiConstructor(utils_1.getBaseIntakeUrl(), this.config.apiKey, this.config.appKey);
|
|
55
|
+
}
|
|
56
|
+
getSpanTags() {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
const ciSpanTags = ci_1.getCISpanTags();
|
|
59
|
+
const gitSpanTags = yield format_git_span_data_1.getGitMetadata();
|
|
60
|
+
const userGitSpanTags = user_provided_git_1.getUserGitSpanTags();
|
|
61
|
+
return Object.assign(Object.assign(Object.assign({}, gitSpanTags), ciSpanTags), userGitSpanTags);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
evaluateRules(api, evaluateRequest) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
this.context.stdout.write(renderer_1.renderGateEvaluationInput(evaluateRequest.spanTags));
|
|
67
|
+
if (this.dryRun) {
|
|
68
|
+
this.context.stdout.write(renderer_1.renderDryRunEvaluation());
|
|
69
|
+
return 0;
|
|
70
|
+
}
|
|
71
|
+
// To be extended with retries, error handling, etc.
|
|
72
|
+
return api
|
|
73
|
+
.evaluateGateRules(evaluateRequest, this.context.stdout.write.bind(this.context.stdout))
|
|
74
|
+
.then((response) => {
|
|
75
|
+
return this.handleEvaluationResponse(response.data.data.attributes);
|
|
76
|
+
})
|
|
77
|
+
.catch((error) => {
|
|
78
|
+
// TODO Handle unavailability etc.
|
|
79
|
+
this.context.stderr.write(renderer_1.renderGateEvaluationError(error));
|
|
80
|
+
return 1;
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
handleEvaluationResponse(evaluationResponse) {
|
|
85
|
+
this.context.stdout.write(renderer_1.renderEvaluationResponse(evaluationResponse));
|
|
86
|
+
if (evaluationResponse.status === 'failed' || (evaluationResponse.status === 'empty' && this.failOnEmpty)) {
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
return 0;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.GateEvaluateCommand = GateEvaluateCommand;
|
|
95
|
+
GateEvaluateCommand.addPath('gate', 'evaluate');
|
|
96
|
+
GateEvaluateCommand.addOption('dryRun', clipanion_1.Command.Boolean('--dry-run'));
|
|
97
|
+
GateEvaluateCommand.addOption('failOnEmpty', clipanion_1.Command.Boolean('--fail-on-empty'));
|
|
98
|
+
//# sourceMappingURL=evaluate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/commands/gate/evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Writable } from 'stream';
|
|
3
|
+
import { AxiosPromise } from 'axios';
|
|
4
|
+
import { SpanTags } from '../../helpers/interfaces';
|
|
5
|
+
export interface Payload {
|
|
6
|
+
spanTags: SpanTags;
|
|
7
|
+
}
|
|
8
|
+
export interface EvaluationResponsePayload {
|
|
9
|
+
data: {
|
|
10
|
+
attributes: EvaluationResponse;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
declare type GateStatus = 'passed' | 'failed' | 'empty';
|
|
14
|
+
export interface EvaluationResponse {
|
|
15
|
+
status: GateStatus;
|
|
16
|
+
rule_evaluations: RuleEvaluation[];
|
|
17
|
+
}
|
|
18
|
+
declare type RuleStatus = 'passed' | 'failed' | 'no_data';
|
|
19
|
+
export interface RuleEvaluation {
|
|
20
|
+
rule_id: string;
|
|
21
|
+
rule_name: string;
|
|
22
|
+
status: RuleStatus;
|
|
23
|
+
is_blocking: boolean;
|
|
24
|
+
failure_reason: string;
|
|
25
|
+
events_count: number;
|
|
26
|
+
}
|
|
27
|
+
export interface APIHelper {
|
|
28
|
+
evaluateGateRules(evaluateRequest: Payload, write: Writable['write']): AxiosPromise<EvaluationResponsePayload>;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/commands/gate/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SpanTags } from '../../helpers/interfaces';
|
|
2
|
+
import { EvaluationResponse, RuleEvaluation } from './interfaces';
|
|
3
|
+
export declare const renderEvaluationResponse: (evaluationResponse: EvaluationResponse) => string;
|
|
4
|
+
export declare const renderEmptyEvaluation: () => string;
|
|
5
|
+
export declare const renderStatus: (result: string) => string;
|
|
6
|
+
export declare const renderRuleEvaluation: (ruleEvaluation: RuleEvaluation) => string;
|
|
7
|
+
export declare const renderDryRunEvaluation: () => string;
|
|
8
|
+
export declare const renderGateEvaluationInput: (spanTags: SpanTags) => string;
|
|
9
|
+
export declare const renderGateEvaluationError: (error: any) => string;
|
|
@@ -0,0 +1,80 @@
|
|
|
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.renderGateEvaluationError = exports.renderGateEvaluationInput = exports.renderDryRunEvaluation = exports.renderRuleEvaluation = exports.renderStatus = exports.renderEmptyEvaluation = exports.renderEvaluationResponse = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const ICONS = {
|
|
9
|
+
FAILED: '❌',
|
|
10
|
+
SUCCESS: '✅',
|
|
11
|
+
WARNING: '⚠️',
|
|
12
|
+
INFO: 'ℹ️',
|
|
13
|
+
};
|
|
14
|
+
const renderEvaluationResponse = (evaluationResponse) => {
|
|
15
|
+
if (evaluationResponse.status.toLowerCase() === 'empty') {
|
|
16
|
+
return exports.renderEmptyEvaluation();
|
|
17
|
+
}
|
|
18
|
+
let fullStr = '';
|
|
19
|
+
fullStr += chalk_1.default.green('Successfully evaluated rules for the current pipeline.\n');
|
|
20
|
+
fullStr += `Overall result: ${exports.renderStatus(evaluationResponse.status)}\n`;
|
|
21
|
+
fullStr += `Number of rules evaluated: ${chalk_1.default.bold(evaluationResponse.rule_evaluations.length)}\n`;
|
|
22
|
+
fullStr += '\n';
|
|
23
|
+
fullStr += chalk_1.default.yellow('####### Rules evaluated #######\n');
|
|
24
|
+
evaluationResponse.rule_evaluations.forEach((ruleEvaluation) => (fullStr += exports.renderRuleEvaluation(ruleEvaluation)));
|
|
25
|
+
return fullStr;
|
|
26
|
+
};
|
|
27
|
+
exports.renderEvaluationResponse = renderEvaluationResponse;
|
|
28
|
+
const renderEmptyEvaluation = () => {
|
|
29
|
+
return chalk_1.default.yellow(`${ICONS.WARNING} No matching rules were found in Datadog. Use the '--fail-on-empty' option to fail the command in this situation.\n`);
|
|
30
|
+
};
|
|
31
|
+
exports.renderEmptyEvaluation = renderEmptyEvaluation;
|
|
32
|
+
const renderStatus = (result) => {
|
|
33
|
+
switch (result.toLowerCase()) {
|
|
34
|
+
case 'passed':
|
|
35
|
+
return chalk_1.default.green(`Passed ${ICONS.SUCCESS} `);
|
|
36
|
+
case 'failed':
|
|
37
|
+
return chalk_1.default.red(`Failed ${ICONS.FAILED} `);
|
|
38
|
+
case 'no_data':
|
|
39
|
+
return chalk_1.default.yellow(`No Data ${ICONS.WARNING} `);
|
|
40
|
+
}
|
|
41
|
+
return 'Unknown Status: ' + result.toLowerCase();
|
|
42
|
+
};
|
|
43
|
+
exports.renderStatus = renderStatus;
|
|
44
|
+
const renderRuleEvaluation = (ruleEvaluation) => {
|
|
45
|
+
// TODO add URL here once we have it
|
|
46
|
+
let fullStr = '';
|
|
47
|
+
fullStr += `Rule ID: ${ruleEvaluation.rule_id}\n`;
|
|
48
|
+
fullStr += `Rule Name: ${ruleEvaluation.rule_name}\n`;
|
|
49
|
+
fullStr += `Status: ${exports.renderStatus(ruleEvaluation.status)}\n`;
|
|
50
|
+
if (ruleEvaluation.status.toLowerCase() === 'failed') {
|
|
51
|
+
fullStr += `${chalk_1.default.red.bold('Failure reason')}: ${ruleEvaluation.failure_reason}\n`;
|
|
52
|
+
}
|
|
53
|
+
fullStr += `${chalk_1.default.yellow('Blocking')}: ${ruleEvaluation.is_blocking}\n`;
|
|
54
|
+
fullStr += '\n';
|
|
55
|
+
return fullStr;
|
|
56
|
+
};
|
|
57
|
+
exports.renderRuleEvaluation = renderRuleEvaluation;
|
|
58
|
+
const renderDryRunEvaluation = () => {
|
|
59
|
+
return chalk_1.default.yellow('Dry run mode is enabled. Not evaluating the rules.');
|
|
60
|
+
};
|
|
61
|
+
exports.renderDryRunEvaluation = renderDryRunEvaluation;
|
|
62
|
+
const renderGateEvaluationInput = (spanTags) => {
|
|
63
|
+
let fullStr = chalk_1.default.bold(`${ICONS.INFO} Evaluating rules matching the following information:\n`);
|
|
64
|
+
fullStr += `Repository: ${spanTags['git.repository_url']}\n`;
|
|
65
|
+
fullStr += `Branch: ${spanTags['git.branch']}\n`;
|
|
66
|
+
fullStr += `Pipeline Name: ${spanTags['ci.pipeline.name']}\n`;
|
|
67
|
+
fullStr += '\n';
|
|
68
|
+
return fullStr;
|
|
69
|
+
};
|
|
70
|
+
exports.renderGateEvaluationInput = renderGateEvaluationInput;
|
|
71
|
+
const renderGateEvaluationError = (error) => {
|
|
72
|
+
let fullStr = chalk_1.default.red('ERROR: Could not evaluate the rules.');
|
|
73
|
+
if (error.response) {
|
|
74
|
+
fullStr += chalk_1.default.red(` Error Status: ${error.response.status}`);
|
|
75
|
+
}
|
|
76
|
+
fullStr += '\n';
|
|
77
|
+
return fullStr;
|
|
78
|
+
};
|
|
79
|
+
exports.renderGateEvaluationError = renderGateEvaluationError;
|
|
80
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/gate/renderer.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://quality-gates.${process.env.DATADOG_SITE || process.env.DD_SITE}`;
|
|
7
|
+
}
|
|
8
|
+
return 'https://quality-gates.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/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"}
|
|
@@ -54,6 +54,7 @@ class UploadJUnitXMLCommand extends clipanion_1.Command {
|
|
|
54
54
|
apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
|
|
55
55
|
env: process.env.DD_ENV,
|
|
56
56
|
envVarTags: process.env.DD_TAGS,
|
|
57
|
+
envVarMetrics: process.env.DD_METRICS,
|
|
57
58
|
};
|
|
58
59
|
this.dryRun = false;
|
|
59
60
|
this.logs = false;
|
|
@@ -178,8 +179,10 @@ class UploadJUnitXMLCommand extends clipanion_1.Command {
|
|
|
178
179
|
const gitSpanTags = yield format_git_span_data_1.getGitMetadata();
|
|
179
180
|
const userGitSpanTags = user_provided_git_1.getUserGitSpanTags();
|
|
180
181
|
const envVarTags = this.config.envVarTags ? tags_1.parseTags(this.config.envVarTags.split(',')) : {};
|
|
182
|
+
const envVarMetrics = this.config.envVarMetrics ? tags_1.parseMetrics(this.config.envVarMetrics.split(',')) : {};
|
|
181
183
|
const cliTags = this.tags ? tags_1.parseTags(this.tags) : {};
|
|
182
|
-
|
|
184
|
+
const cliMetrics = this.metrics ? tags_1.parseMetrics(this.metrics) : {};
|
|
185
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, gitSpanTags), ciSpanTags), userGitSpanTags), cliTags), envVarTags), cliMetrics), envVarMetrics), (this.config.env ? { env: this.config.env } : {}));
|
|
183
186
|
});
|
|
184
187
|
}
|
|
185
188
|
uploadJUnitXML(api, jUnitXML) {
|
|
@@ -227,6 +230,10 @@ UploadJUnitXMLCommand.usage = clipanion_1.Command.Usage({
|
|
|
227
230
|
'Upload all jUnit XML test report files in current directory and add extra tags globally',
|
|
228
231
|
'datadog-ci junit upload --service my-service --tags key1:value1 --tags key2:value2 .',
|
|
229
232
|
],
|
|
233
|
+
[
|
|
234
|
+
'Upload all jUnit XML test report files in current directory and add extra metrics globally',
|
|
235
|
+
'datadog-ci junit upload --service my-service --metrics key1:123 --metrics key2:321 .',
|
|
236
|
+
],
|
|
230
237
|
[
|
|
231
238
|
'Upload all jUnit XML test report files in current directory to the datadoghq.eu site',
|
|
232
239
|
'DATADOG_SITE=datadoghq.eu datadog-ci junit upload --service my-service .',
|
|
@@ -250,6 +257,7 @@ UploadJUnitXMLCommand.addOption('service', clipanion_1.Command.String('--service
|
|
|
250
257
|
UploadJUnitXMLCommand.addOption('env', clipanion_1.Command.String('--env'));
|
|
251
258
|
UploadJUnitXMLCommand.addOption('dryRun', clipanion_1.Command.Boolean('--dry-run'));
|
|
252
259
|
UploadJUnitXMLCommand.addOption('tags', clipanion_1.Command.Array('--tags'));
|
|
260
|
+
UploadJUnitXMLCommand.addOption('metrics', clipanion_1.Command.Array('--metrics'));
|
|
253
261
|
UploadJUnitXMLCommand.addOption('basePaths', clipanion_1.Command.Rest({ required: 1 }));
|
|
254
262
|
UploadJUnitXMLCommand.addOption('maxConcurrency', clipanion_1.Command.String('--max-concurrency'));
|
|
255
263
|
UploadJUnitXMLCommand.addOption('logs', clipanion_1.Command.Boolean('--logs'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/junit/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAmB;AACnB,4CAAmB;AACnB,gDAAuB;AAEvB,kDAAyB;AACzB,yCAAiC;AACjC,qDAAuD;AACvD,gDAAuB;AACvB,sEAAuC;AAEvC,yCAA8C;AAC9C,iFAAqE;AAGrE,iDAAqD;AACrD,+CAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/junit/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export declare const LAYER_LOOKUP: {
|
|
|
5
5
|
readonly dotnet6: "dd-trace-dotnet";
|
|
6
6
|
readonly 'dotnetcore3.1': "dd-trace-dotnet";
|
|
7
7
|
readonly java11: "dd-trace-java";
|
|
8
|
+
readonly java17: "dd-trace-java";
|
|
8
9
|
readonly 'java8.al2': "dd-trace-java";
|
|
9
10
|
readonly 'nodejs12.x': "Datadog-Node12-x";
|
|
10
11
|
readonly 'nodejs14.x': "Datadog-Node14-x";
|
|
@@ -14,6 +15,8 @@ export declare const LAYER_LOOKUP: {
|
|
|
14
15
|
readonly 'python3.7': "Datadog-Python37";
|
|
15
16
|
readonly 'python3.8': "Datadog-Python38";
|
|
16
17
|
readonly 'python3.9': "Datadog-Python39";
|
|
18
|
+
readonly 'python3.10': "Datadog-Python310";
|
|
19
|
+
readonly 'ruby2.7': "Datadog-Ruby2-7";
|
|
17
20
|
};
|
|
18
21
|
export declare enum RuntimeType {
|
|
19
22
|
DOTNET = 0,
|
|
@@ -27,6 +30,7 @@ export declare const RUNTIME_LOOKUP: {
|
|
|
27
30
|
dotnet6: RuntimeType;
|
|
28
31
|
'dotnetcore3.1': RuntimeType;
|
|
29
32
|
java11: RuntimeType;
|
|
33
|
+
java17: RuntimeType;
|
|
30
34
|
'java8.al2': RuntimeType;
|
|
31
35
|
'nodejs12.x': RuntimeType;
|
|
32
36
|
'nodejs14.x': RuntimeType;
|
|
@@ -37,6 +41,7 @@ export declare const RUNTIME_LOOKUP: {
|
|
|
37
41
|
'python3.7': RuntimeType;
|
|
38
42
|
'python3.8': RuntimeType;
|
|
39
43
|
'python3.9': RuntimeType;
|
|
44
|
+
'python3.10': RuntimeType;
|
|
40
45
|
'ruby2.5': RuntimeType;
|
|
41
46
|
'ruby2.7': RuntimeType;
|
|
42
47
|
};
|
|
@@ -9,6 +9,7 @@ exports.LAYER_LOOKUP = {
|
|
|
9
9
|
dotnet6: 'dd-trace-dotnet',
|
|
10
10
|
'dotnetcore3.1': 'dd-trace-dotnet',
|
|
11
11
|
java11: 'dd-trace-java',
|
|
12
|
+
java17: 'dd-trace-java',
|
|
12
13
|
'java8.al2': 'dd-trace-java',
|
|
13
14
|
'nodejs12.x': 'Datadog-Node12-x',
|
|
14
15
|
'nodejs14.x': 'Datadog-Node14-x',
|
|
@@ -18,6 +19,8 @@ exports.LAYER_LOOKUP = {
|
|
|
18
19
|
'python3.7': 'Datadog-Python37',
|
|
19
20
|
'python3.8': 'Datadog-Python38',
|
|
20
21
|
'python3.9': 'Datadog-Python39',
|
|
22
|
+
'python3.10': 'Datadog-Python310',
|
|
23
|
+
'ruby2.7': 'Datadog-Ruby2-7',
|
|
21
24
|
};
|
|
22
25
|
var RuntimeType;
|
|
23
26
|
(function (RuntimeType) {
|
|
@@ -32,6 +35,7 @@ exports.RUNTIME_LOOKUP = {
|
|
|
32
35
|
dotnet6: RuntimeType.DOTNET,
|
|
33
36
|
'dotnetcore3.1': RuntimeType.DOTNET,
|
|
34
37
|
java11: RuntimeType.JAVA,
|
|
38
|
+
java17: RuntimeType.JAVA,
|
|
35
39
|
'java8.al2': RuntimeType.JAVA,
|
|
36
40
|
'nodejs12.x': RuntimeType.NODE,
|
|
37
41
|
'nodejs14.x': RuntimeType.NODE,
|
|
@@ -42,10 +46,11 @@ exports.RUNTIME_LOOKUP = {
|
|
|
42
46
|
'python3.7': RuntimeType.PYTHON,
|
|
43
47
|
'python3.8': RuntimeType.PYTHON,
|
|
44
48
|
'python3.9': RuntimeType.PYTHON,
|
|
49
|
+
'python3.10': RuntimeType.PYTHON,
|
|
45
50
|
'ruby2.5': RuntimeType.RUBY,
|
|
46
51
|
'ruby2.7': RuntimeType.RUBY,
|
|
47
52
|
};
|
|
48
|
-
exports.ARM_LAYERS = [exports.EXTENSION_LAYER_KEY, 'dotnet6', 'python3.8', 'python3.9'];
|
|
53
|
+
exports.ARM_LAYERS = [exports.EXTENSION_LAYER_KEY, 'dotnet6', 'python3.8', 'python3.9', 'python3.10', 'ruby2.'];
|
|
49
54
|
exports.ARM64_ARCHITECTURE = 'arm64';
|
|
50
55
|
exports.ARM_LAYER_SUFFIX = '-ARM';
|
|
51
56
|
exports.PYTHON_HANDLER_LOCATION = 'datadog_lambda.handler.handler';
|
|
@@ -98,7 +103,7 @@ exports.MAX_LAMBDA_STATE_CHECK_ATTEMPTS = 3;
|
|
|
98
103
|
// This RegExp ensures that the --extra-tags string
|
|
99
104
|
// matches a list of <key>:<value> separated by commas
|
|
100
105
|
// such as: layer:api,team:intake
|
|
101
|
-
exports.EXTRA_TAGS_REG_EXP = /^(([a-zA-Z]+)
|
|
106
|
+
exports.EXTRA_TAGS_REG_EXP = /^(([a-zA-Z]+)[\w\-/\.]*:[^,]+)+((\,)([a-zA-Z]+)[\w\-/\.]*:[^,]+)*$/g;
|
|
102
107
|
exports.AWS_ACCESS_KEY_ID_REG_EXP = /(?<![A-Z0-9])[A-Z0-9]{20}(?![A-Z0-9])/g;
|
|
103
108
|
exports.AWS_SECRET_ACCESS_KEY_REG_EXP = /(?<![A-Za-z0-9/+=])[A-Za-z0-9/+=]{40}(?![A-Za-z0-9/+=])/g;
|
|
104
109
|
exports.AWS_SECRET_ARN_REG_EXP = /arn:aws:secretsmanager:[\w-]+:\d{12}:secret:.+/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/commands/lambda/constants.ts"],"names":[],"mappings":";;;;AAAa,QAAA,8BAA8B,GAAG,mBAAmB,CAAA;AACpD,QAAA,mBAAmB,GAAG,WAAW,CAAA;AACjC,QAAA,YAAY,GAAG;IAC1B,CAAC,2BAAmB,CAAC,EAAE,sCAA8B;IACrD,OAAO,EAAE,iBAAiB;IAC1B,eAAe,EAAE,iBAAiB;IAClC,MAAM,EAAE,eAAe;IACvB,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/commands/lambda/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,7 +55,7 @@ export declare const getAWSFileCredentialsParams: (profile: string) => FromIniIn
|
|
|
55
55
|
* @returns {AwsCredentialIdentity} credentials object.
|
|
56
56
|
*/
|
|
57
57
|
export declare const getAWSProfileCredentials: (profile: string) => Promise<AwsCredentialIdentity | undefined>;
|
|
58
|
-
export declare const
|
|
58
|
+
export declare const getAWSCredentials: () => Promise<AwsCredentialIdentity | undefined>;
|
|
59
59
|
export declare const isMissingAnyDatadogApiKeyEnvVar: () => boolean;
|
|
60
60
|
export declare const isMissingDatadogEnvVars: () => boolean;
|
|
61
61
|
export declare const getAllLambdaFunctionConfigs: (lambdaClient: LambdaClient) => Promise<LFunctionConfiguration[]>;
|
|
@@ -114,8 +114,8 @@ export declare const getRegion: (functionARN: string) => string | undefined;
|
|
|
114
114
|
* @param runtime a string representing a Lambda FunctionConfiguration Runtime.
|
|
115
115
|
* @returns if a runtime is supported.
|
|
116
116
|
*/
|
|
117
|
-
export declare const isSupportedRuntime: (runtime?: string | undefined) => runtime is "dotnet6" | "python3.8" | "python3.9" | "dotnetcore3.1" | "java11" | "java8.al2" | "nodejs12.x" | "nodejs14.x" | "nodejs16.x" | "nodejs18.x" | "provided.al2" | "python3.6" | "python3.7" | "ruby2.5" | "ruby2.7";
|
|
118
|
-
export declare const isLayerRuntime: (runtime: string) => runtime is "extension" | "dotnet6" | "python3.8" | "python3.9" | "dotnetcore3.1" | "java11" | "java8.al2" | "nodejs12.x" | "nodejs14.x" | "nodejs16.x" | "nodejs18.x" | "python3.6" | "python3.7";
|
|
117
|
+
export declare const isSupportedRuntime: (runtime?: string | undefined) => runtime is "dotnet6" | "python3.8" | "python3.9" | "python3.10" | "dotnetcore3.1" | "java11" | "java17" | "java8.al2" | "nodejs12.x" | "nodejs14.x" | "nodejs16.x" | "nodejs18.x" | "provided.al2" | "python3.6" | "python3.7" | "ruby2.5" | "ruby2.7";
|
|
118
|
+
export declare const isLayerRuntime: (runtime: string) => runtime is "extension" | "dotnet6" | "python3.8" | "python3.9" | "python3.10" | "dotnetcore3.1" | "java11" | "java17" | "java8.al2" | "nodejs12.x" | "nodejs14.x" | "nodejs16.x" | "nodejs18.x" | "python3.6" | "python3.7" | "ruby2.7";
|
|
119
119
|
export declare const sentenceMatchesRegEx: (sentence: string, regex: RegExp) => RegExpMatchArray | null;
|
|
120
120
|
export declare const updateLambdaFunctionConfig: (lambdaClient: LambdaClient, cloudWatchLogsClient: CloudWatchLogsClient, config: FunctionConfiguration) => Promise<void>;
|
|
121
121
|
export declare const updateFunctionConfiguration: (client: LambdaClient, input: UpdateFunctionConfigurationCommandInput) => Promise<void>;
|