serverless-plugin-datadog 3.3.0 → 3.5.2
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +31 -38
- package/dist/package.json +11 -2
- package/dist/src/env.d.ts +6 -3
- package/dist/src/env.d.ts.map +1 -1
- package/dist/src/env.js +25 -3
- package/dist/src/env.js.map +1 -1
- package/dist/src/git-metadata/__tests__/git.test.d.ts +2 -0
- package/dist/src/git-metadata/__tests__/git.test.d.ts.map +1 -0
- package/dist/src/git-metadata/__tests__/git.test.js +106 -0
- package/dist/src/git-metadata/__tests__/git.test.js.map +1 -0
- package/dist/src/git-metadata/api.d.ts +4 -0
- package/dist/src/git-metadata/api.d.ts.map +1 -0
- package/dist/src/git-metadata/api.js +13 -0
- package/dist/src/git-metadata/api.js.map +1 -0
- package/dist/src/git-metadata/interfaces.d.ts +10 -0
- package/dist/src/git-metadata/interfaces.d.ts.map +1 -0
- package/dist/src/git-metadata/interfaces.js +43 -0
- package/dist/src/git-metadata/interfaces.js.map +1 -0
- package/dist/src/git-metadata/renderer.d.ts +9 -0
- package/dist/src/git-metadata/renderer.d.ts.map +1 -0
- package/dist/src/git-metadata/renderer.js +32 -0
- package/dist/src/git-metadata/renderer.js.map +1 -0
- package/dist/src/git.d.ts +8 -0
- package/dist/src/git.d.ts.map +1 -0
- package/dist/src/git.js +115 -0
- package/dist/src/git.js.map +1 -0
- package/dist/src/helpers/__tests__/ci.test.d.ts +2 -0
- package/dist/src/helpers/__tests__/ci.test.d.ts.map +1 -0
- package/dist/src/helpers/__tests__/ci.test.js +147 -0
- package/dist/src/helpers/__tests__/ci.test.js.map +1 -0
- package/dist/src/helpers/__tests__/git.test.d.ts +2 -0
- package/dist/src/helpers/__tests__/git.test.d.ts.map +1 -0
- package/dist/src/helpers/__tests__/git.test.js +65 -0
- package/dist/src/helpers/__tests__/git.test.js.map +1 -0
- package/dist/src/helpers/__tests__/retry.test.d.ts +2 -0
- package/dist/src/helpers/__tests__/retry.test.d.ts.map +1 -0
- package/dist/src/helpers/__tests__/retry.test.js +99 -0
- package/dist/src/helpers/__tests__/retry.test.js.map +1 -0
- package/dist/src/helpers/__tests__/tags.test.d.ts +2 -0
- package/dist/src/helpers/__tests__/tags.test.d.ts.map +1 -0
- package/dist/src/helpers/__tests__/tags.test.js +17 -0
- package/dist/src/helpers/__tests__/tags.test.js.map +1 -0
- package/dist/src/helpers/__tests__/upload.test.d.ts +2 -0
- package/dist/src/helpers/__tests__/upload.test.d.ts.map +1 -0
- package/dist/src/helpers/__tests__/upload.test.js +185 -0
- package/dist/src/helpers/__tests__/upload.test.js.map +1 -0
- package/dist/src/helpers/__tests__/user-provided-git.test.d.ts +2 -0
- package/dist/src/helpers/__tests__/user-provided-git.test.d.ts.map +1 -0
- package/dist/src/helpers/__tests__/user-provided-git.test.js +64 -0
- package/dist/src/helpers/__tests__/user-provided-git.test.js.map +1 -0
- package/dist/src/helpers/__tests__/utils.test.d.ts +2 -0
- package/dist/src/helpers/__tests__/utils.test.d.ts.map +1 -0
- package/dist/src/helpers/__tests__/utils.test.js +345 -0
- package/dist/src/helpers/__tests__/utils.test.js.map +1 -0
- package/dist/src/helpers/apikey.d.ts +13 -0
- package/dist/src/helpers/apikey.d.ts.map +1 -0
- package/dist/src/helpers/apikey.js +74 -0
- package/dist/src/helpers/apikey.js.map +1 -0
- package/dist/src/helpers/ci.d.ts +16 -0
- package/dist/src/helpers/ci.d.ts.map +1 -0
- package/dist/src/helpers/ci.js +378 -0
- package/dist/src/helpers/ci.js.map +1 -0
- package/dist/src/helpers/errors.d.ts +3 -0
- package/dist/src/helpers/errors.d.ts.map +1 -0
- package/dist/src/helpers/errors.js +7 -0
- package/dist/src/helpers/errors.js.map +1 -0
- package/dist/src/helpers/formatting.d.ts +6 -0
- package/dist/src/helpers/formatting.d.ts.map +1 -0
- package/dist/src/helpers/formatting.js +13 -0
- package/dist/src/helpers/formatting.js.map +1 -0
- package/dist/src/helpers/git.d.ts +3 -0
- package/dist/src/helpers/git.d.ts.map +1 -0
- package/dist/src/helpers/git.js +52 -0
- package/dist/src/helpers/git.js.map +1 -0
- package/dist/src/helpers/interfaces.d.ts +20 -0
- package/dist/src/helpers/interfaces.d.ts.map +1 -0
- package/dist/src/helpers/interfaces.js +3 -0
- package/dist/src/helpers/interfaces.js.map +1 -0
- package/dist/src/helpers/metrics.d.ts +12 -0
- package/dist/src/helpers/metrics.d.ts.map +1 -0
- package/dist/src/helpers/metrics.js +36 -0
- package/dist/src/helpers/metrics.js.map +1 -0
- package/dist/src/helpers/retry.d.ts +3 -0
- package/dist/src/helpers/retry.d.ts.map +1 -0
- package/dist/src/helpers/retry.js +39 -0
- package/dist/src/helpers/retry.js.map +1 -0
- package/dist/src/helpers/tags.d.ts +29 -0
- package/dist/src/helpers/tags.d.ts.map +1 -0
- package/dist/src/helpers/tags.js +50 -0
- package/dist/src/helpers/tags.js.map +1 -0
- package/dist/src/helpers/upload.d.ts +45 -0
- package/dist/src/helpers/upload.d.ts.map +1 -0
- package/dist/src/helpers/upload.js +70 -0
- package/dist/src/helpers/upload.js.map +1 -0
- package/dist/src/helpers/user-provided-git.d.ts +2 -0
- package/dist/src/helpers/user-provided-git.d.ts.map +1 -0
- package/dist/src/helpers/user-provided-git.js +23 -0
- package/dist/src/helpers/user-provided-git.js.map +1 -0
- package/dist/src/helpers/utils.d.ts +31 -0
- package/dist/src/helpers/utils.d.ts.map +1 -0
- package/dist/src/helpers/utils.js +115 -0
- package/dist/src/helpers/utils.js.map +1 -0
- package/dist/src/index.d.ts +9 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +57 -13
- package/dist/src/index.js.map +1 -1
- package/dist/src/layer.d.ts.map +1 -1
- package/dist/src/layer.js +1 -2
- package/dist/src/layer.js.map +1 -1
- package/dist/src/layers-gov.json +8 -8
- package/dist/src/layers.json +84 -84
- package/dist/src/source-code-integration.d.ts +12 -0
- package/dist/src/source-code-integration.d.ts.map +1 -0
- package/dist/src/source-code-integration.js +76 -0
- package/dist/src/source-code-integration.js.map +1 -0
- package/package.json +11 -2
@@ -0,0 +1,20 @@
|
|
1
|
+
import { AxiosPromise, AxiosRequestConfig, AxiosResponse } from "axios";
|
2
|
+
import { 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
|
+
export interface Metadata {
|
4
|
+
ci: {
|
5
|
+
pipeline: {
|
6
|
+
url?: string;
|
7
|
+
};
|
8
|
+
provider: {
|
9
|
+
name: string;
|
10
|
+
};
|
11
|
+
};
|
12
|
+
git: {
|
13
|
+
branch?: string;
|
14
|
+
commitSha?: string;
|
15
|
+
};
|
16
|
+
}
|
17
|
+
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;
|
18
|
+
export declare type SpanTags = Partial<Record<SpanTag, string>>;
|
19
|
+
export declare type RequestBuilder = (args: AxiosRequestConfig) => AxiosPromise<AxiosResponse>;
|
20
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/helpers/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,OAAO,EACR,MAAM,QAAQ,CAAC;AAEhB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE;QACF,QAAQ,EAAE;YACR,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;QACF,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,GAAG,EAAE;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,oBAAY,OAAO,GACf,OAAO,WAAW,GAClB,OAAO,UAAU,GACjB,OAAO,cAAc,GACrB,OAAO,gBAAgB,GACvB,OAAO,kBAAkB,GACzB,OAAO,eAAe,GACtB,OAAO,gBAAgB,GACvB,OAAO,aAAa,GACpB,OAAO,iBAAiB,GACxB,OAAO,UAAU,GACjB,OAAO,kBAAkB,GACzB,OAAO,OAAO,GACd,OAAO,OAAO,GACd,OAAO,uBAAuB,GAC9B,OAAO,sBAAsB,GAC7B,OAAO,sBAAsB,GAC7B,OAAO,kBAAkB,GACzB,OAAO,yBAAyB,GAChC,OAAO,0BAA0B,GACjC,OAAO,yBAAyB,CAAC;AAErC,oBAAY,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAExD,oBAAY,cAAc,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/helpers/interfaces.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import metrics from "datadog-metrics";
|
2
|
+
export interface MetricsLogger {
|
3
|
+
logger: metrics.BufferedMetricsLogger;
|
4
|
+
flush(): Promise<void>;
|
5
|
+
}
|
6
|
+
export interface MetricsLoggerOptions {
|
7
|
+
datadogSite?: string;
|
8
|
+
defaultTags?: string[];
|
9
|
+
prefix: string;
|
10
|
+
}
|
11
|
+
export declare const getMetricsLogger: (opts: MetricsLoggerOptions) => MetricsLogger;
|
12
|
+
//# sourceMappingURL=metrics.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/helpers/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,iBAAiB,CAAC;AAGtC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC;IACtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,gBAAgB,SAAU,oBAAoB,KAAG,aAuB7D,CAAC"}
|
@@ -0,0 +1,36 @@
|
|
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.getMetricsLogger = void 0;
|
7
|
+
const datadog_metrics_1 = __importDefault(require("datadog-metrics"));
|
8
|
+
const proxy_agent_1 = __importDefault(require("proxy-agent"));
|
9
|
+
const getMetricsLogger = (opts) => {
|
10
|
+
const apiUrl = getBaseAPIUrl(opts.datadogSite);
|
11
|
+
const metricsOpts = {
|
12
|
+
// ProxyAgent will retrieve proxy agent from env vars when relevant
|
13
|
+
// agent is not in the type definitions file but has been introduced in datadog-metrics 0.8.x
|
14
|
+
agent: new proxy_agent_1.default(),
|
15
|
+
apiHost: apiUrl,
|
16
|
+
defaultTags: opts.defaultTags,
|
17
|
+
flushIntervalSeconds: 15,
|
18
|
+
host: "ci",
|
19
|
+
prefix: opts.prefix,
|
20
|
+
};
|
21
|
+
const logger = new datadog_metrics_1.default.BufferedMetricsLogger(metricsOpts);
|
22
|
+
return {
|
23
|
+
flush: () => new Promise((resolve, reject) => {
|
24
|
+
logger.flush(resolve, (err) => reject(new Error(`Could not flush metrics to ${apiUrl}: ${err}`)));
|
25
|
+
}),
|
26
|
+
logger,
|
27
|
+
};
|
28
|
+
};
|
29
|
+
exports.getMetricsLogger = getMetricsLogger;
|
30
|
+
const getBaseAPIUrl = (datadogSite) => {
|
31
|
+
if (datadogSite) {
|
32
|
+
return "api." + datadogSite;
|
33
|
+
}
|
34
|
+
return "api.datadoghq.com";
|
35
|
+
};
|
36
|
+
//# sourceMappingURL=metrics.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/helpers/metrics.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAsC;AACtC,8DAAqC;AAa9B,MAAM,gBAAgB,GAAG,CAAC,IAA0B,EAAiB,EAAE;IAC5E,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,WAAW,GAAG;QAClB,mEAAmE;QACnE,6FAA6F;QAC7F,KAAK,EAAE,IAAI,qBAAU,EAAE;QACvB,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,oBAAoB,EAAE,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,yBAAO,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAE9D,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACpG,CAAC,CAAC;QACJ,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,gBAAgB,oBAuB3B;AAEF,MAAM,aAAa,GAAG,CAAC,WAAoB,EAAE,EAAE;IAC7C,IAAI,WAAW,EAAE;QACf,OAAO,MAAM,GAAG,WAAW,CAAC;KAC7B;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/helpers/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAIhC,eAAO,MAAM,YAAY,qBAA4B,MAAM,QAAQ,GAAG,CAAC,aAAa,MAAM,OAAO,KAAG,QAAQ,IAAI,CAoB/G,CAAC"}
|
@@ -0,0 +1,39 @@
|
|
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.retryRequest = void 0;
|
16
|
+
const async_retry_1 = __importDefault(require("async-retry"));
|
17
|
+
const errorCodesNoRetry = [400, 403, 413];
|
18
|
+
const retryRequest = (requestPerformer, retryOpts) => __awaiter(void 0, void 0, void 0, function* () {
|
19
|
+
// Request function, passed to async-retry
|
20
|
+
const doRequest = (bail) => __awaiter(void 0, void 0, void 0, function* () {
|
21
|
+
try {
|
22
|
+
yield requestPerformer();
|
23
|
+
}
|
24
|
+
catch (error) {
|
25
|
+
if (error.response && errorCodesNoRetry.includes(error.response.status)) {
|
26
|
+
// If it's an axios error with a status code that is excluded from retries, we bail to avoid retrying
|
27
|
+
bail(error);
|
28
|
+
return;
|
29
|
+
}
|
30
|
+
// Other cases are retried: other axios HTTP errors as well as
|
31
|
+
// non-axios errors such as DNS resolution errors and connection timeouts
|
32
|
+
throw error;
|
33
|
+
}
|
34
|
+
});
|
35
|
+
// Do the actual call
|
36
|
+
return (0, async_retry_1.default)(doRequest, retryOpts);
|
37
|
+
});
|
38
|
+
exports.retryRequest = retryRequest;
|
39
|
+
//# sourceMappingURL=retry.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/helpers/retry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8DAAgC;AAEhC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnC,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,CAAC;SAC1B;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACvE,qGAAqG;gBACrG,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEZ,OAAO;aACR;YACD,8DAA8D;YAC9D,yEAAyE;YACzE,MAAM,KAAK,CAAC;SACb;IACH,CAAC,CAAA,CAAC;IAEF,qBAAqB;IACrB,OAAO,IAAA,qBAAK,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACrC,CAAC,CAAA,CAAC;AApBW,QAAA,YAAY,gBAoBvB"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
export declare const CI_PIPELINE_URL = "ci.pipeline.url";
|
2
|
+
export declare const CI_PROVIDER_NAME = "ci.provider.name";
|
3
|
+
export declare const CI_PIPELINE_ID = "ci.pipeline.id";
|
4
|
+
export declare const CI_PIPELINE_NAME = "ci.pipeline.name";
|
5
|
+
export declare const CI_PIPELINE_NUMBER = "ci.pipeline.number";
|
6
|
+
export declare const CI_WORKSPACE_PATH = "ci.workspace_path";
|
7
|
+
export declare const GIT_REPOSITORY_URL = "git.repository_url";
|
8
|
+
export declare const CI_JOB_URL = "ci.job.url";
|
9
|
+
export declare const CI_JOB_NAME = "ci.job.name";
|
10
|
+
export declare const CI_STAGE_NAME = "ci.stage.name";
|
11
|
+
export declare const CI_LEVEL = "_dd.ci.level";
|
12
|
+
export declare const CI_BUILD_LEVEL = "_dd.ci.build_level";
|
13
|
+
export declare const GIT_BRANCH = "git.branch";
|
14
|
+
export declare const GIT_COMMIT_AUTHOR_DATE = "git.commit.author.date";
|
15
|
+
export declare const GIT_COMMIT_AUTHOR_EMAIL = "git.commit.author.email";
|
16
|
+
export declare const GIT_COMMIT_AUTHOR_NAME = "git.commit.author.name";
|
17
|
+
export declare const GIT_COMMIT_COMMITTER_DATE = "git.commit.committer.date";
|
18
|
+
export declare const GIT_COMMIT_COMMITTER_EMAIL = "git.commit.committer.email";
|
19
|
+
export declare const GIT_COMMIT_COMMITTER_NAME = "git.commit.committer.name";
|
20
|
+
export declare const GIT_COMMIT_MESSAGE = "git.commit.message";
|
21
|
+
export declare const GIT_SHA = "git.commit.sha";
|
22
|
+
export declare const GIT_TAG = "git.tag";
|
23
|
+
export declare const SPAN_TYPE = "span.type";
|
24
|
+
/**
|
25
|
+
* Receives an array of the form ['key:value', 'key2:value2']
|
26
|
+
* and returns an object of the form {key: 'value', key2: 'value2'}
|
27
|
+
*/
|
28
|
+
export declare const parseTags: (tags: string[]) => {};
|
29
|
+
//# sourceMappingURL=tags.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/helpers/tags.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AAEvC,eAAO,MAAM,cAAc,uBAAuB,CAAC;AAGnD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AACrE,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AACrE,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,OAAO,mBAAmB,CAAC;AACxC,eAAO,MAAM,OAAO,YAAY,CAAC;AAGjC,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,EAAE,OAgBvC,CAAC"}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.parseTags = exports.SPAN_TYPE = exports.GIT_TAG = exports.GIT_SHA = exports.GIT_COMMIT_MESSAGE = exports.GIT_COMMIT_COMMITTER_NAME = exports.GIT_COMMIT_COMMITTER_EMAIL = exports.GIT_COMMIT_COMMITTER_DATE = exports.GIT_COMMIT_AUTHOR_NAME = exports.GIT_COMMIT_AUTHOR_EMAIL = exports.GIT_COMMIT_AUTHOR_DATE = exports.GIT_BRANCH = exports.CI_BUILD_LEVEL = exports.CI_LEVEL = exports.CI_STAGE_NAME = exports.CI_JOB_NAME = exports.CI_JOB_URL = exports.GIT_REPOSITORY_URL = exports.CI_WORKSPACE_PATH = exports.CI_PIPELINE_NUMBER = exports.CI_PIPELINE_NAME = exports.CI_PIPELINE_ID = exports.CI_PROVIDER_NAME = exports.CI_PIPELINE_URL = void 0;
|
4
|
+
// Build
|
5
|
+
exports.CI_PIPELINE_URL = "ci.pipeline.url";
|
6
|
+
exports.CI_PROVIDER_NAME = "ci.provider.name";
|
7
|
+
exports.CI_PIPELINE_ID = "ci.pipeline.id";
|
8
|
+
exports.CI_PIPELINE_NAME = "ci.pipeline.name";
|
9
|
+
exports.CI_PIPELINE_NUMBER = "ci.pipeline.number";
|
10
|
+
exports.CI_WORKSPACE_PATH = "ci.workspace_path";
|
11
|
+
exports.GIT_REPOSITORY_URL = "git.repository_url";
|
12
|
+
exports.CI_JOB_URL = "ci.job.url";
|
13
|
+
exports.CI_JOB_NAME = "ci.job.name";
|
14
|
+
exports.CI_STAGE_NAME = "ci.stage.name";
|
15
|
+
exports.CI_LEVEL = "_dd.ci.level";
|
16
|
+
// @deprecated TODO: remove this once backend is updated
|
17
|
+
exports.CI_BUILD_LEVEL = "_dd.ci.build_level";
|
18
|
+
// Git
|
19
|
+
exports.GIT_BRANCH = "git.branch";
|
20
|
+
exports.GIT_COMMIT_AUTHOR_DATE = "git.commit.author.date";
|
21
|
+
exports.GIT_COMMIT_AUTHOR_EMAIL = "git.commit.author.email";
|
22
|
+
exports.GIT_COMMIT_AUTHOR_NAME = "git.commit.author.name";
|
23
|
+
exports.GIT_COMMIT_COMMITTER_DATE = "git.commit.committer.date";
|
24
|
+
exports.GIT_COMMIT_COMMITTER_EMAIL = "git.commit.committer.email";
|
25
|
+
exports.GIT_COMMIT_COMMITTER_NAME = "git.commit.committer.name";
|
26
|
+
exports.GIT_COMMIT_MESSAGE = "git.commit.message";
|
27
|
+
exports.GIT_SHA = "git.commit.sha";
|
28
|
+
exports.GIT_TAG = "git.tag";
|
29
|
+
// General
|
30
|
+
exports.SPAN_TYPE = "span.type";
|
31
|
+
/**
|
32
|
+
* Receives an array of the form ['key:value', 'key2:value2']
|
33
|
+
* and returns an object of the form {key: 'value', key2: 'value2'}
|
34
|
+
*/
|
35
|
+
const parseTags = (tags) => {
|
36
|
+
try {
|
37
|
+
return tags.reduce((acc, keyValuePair) => {
|
38
|
+
if (!keyValuePair.includes(":")) {
|
39
|
+
return acc;
|
40
|
+
}
|
41
|
+
const [key, value] = keyValuePair.split(":");
|
42
|
+
return Object.assign(Object.assign({}, acc), { [key]: value });
|
43
|
+
}, {});
|
44
|
+
}
|
45
|
+
catch (e) {
|
46
|
+
return {};
|
47
|
+
}
|
48
|
+
};
|
49
|
+
exports.parseTags = parseTags;
|
50
|
+
//# sourceMappingURL=tags.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/helpers/tags.ts"],"names":[],"mappings":";;;AAAA,QAAQ;AACK,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACpC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAClC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,QAAQ,GAAG,cAAc,CAAC;AACvC,wDAAwD;AAC3C,QAAA,cAAc,GAAG,oBAAoB,CAAC;AAEnD,MAAM;AACO,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AACpD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAC1D,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAC3B,QAAA,OAAO,GAAG,SAAS,CAAC;AAEjC,UAAU;AACG,QAAA,SAAS,GAAG,WAAW,CAAC;AAErC;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAC,IAAc,EAAE,EAAE;IAC1C,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;YACvC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC/B,OAAO,GAAG,CAAC;aACZ;YACD,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE7C,uCACK,GAAG,KACN,CAAC,GAAG,CAAC,EAAE,KAAK,IACZ;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAC;KACX;AACH,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import FormData from "form-data";
|
3
|
+
import { ReadStream } from "fs";
|
4
|
+
import { ApiKeyValidator } from "./apikey";
|
5
|
+
import { RequestBuilder } from "./interfaces";
|
6
|
+
/** Multipart payload destined to be sent to Datadog's API
|
7
|
+
*/
|
8
|
+
export interface MultipartPayload {
|
9
|
+
content: Map<string, MultipartValue>;
|
10
|
+
}
|
11
|
+
export interface MultipartValue {
|
12
|
+
options?: FormData.AppendOptions | string;
|
13
|
+
value: string | ReadStream;
|
14
|
+
}
|
15
|
+
export interface UploadOptions {
|
16
|
+
/** ApiKeyValidator (optional) throws an InvalidConfigurationException when upload fails because
|
17
|
+
* of an invalid API key. Callers should most likely catch this exception and display it as a
|
18
|
+
* nice error message.
|
19
|
+
*/
|
20
|
+
apiKeyValidator?: ApiKeyValidator;
|
21
|
+
/** Retries is the amount of upload retries before giving up. Some requests are never retried
|
22
|
+
* (400, 413).
|
23
|
+
*/
|
24
|
+
retries: number;
|
25
|
+
/** Callback when upload fails (retries are not considered as failure)
|
26
|
+
*/
|
27
|
+
onError(error: Error): void;
|
28
|
+
/** Callback to execute before retries
|
29
|
+
*/
|
30
|
+
onRetry(error: Error, attempts: number): void;
|
31
|
+
/** Callback to execute before upload.
|
32
|
+
*/
|
33
|
+
onUpload(): void;
|
34
|
+
}
|
35
|
+
export declare enum UploadStatus {
|
36
|
+
Success = 0,
|
37
|
+
Failure = 1,
|
38
|
+
Skipped = 2
|
39
|
+
}
|
40
|
+
/** Upload a MultipartPayload to Datadog's API using the provided RequestBuilder.
|
41
|
+
* This handles retries as well as logging information about upload if a logger is provided in
|
42
|
+
* the options
|
43
|
+
*/
|
44
|
+
export declare const upload: (requestBuilder: RequestBuilder) => (payload: MultipartPayload, opts: UploadOptions) => Promise<UploadStatus>;
|
45
|
+
//# sourceMappingURL=upload.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/helpers/upload.ts"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C;GACG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC;IAC1C,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;OACG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE5B;OACG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9C;OACG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,oBAAY,YAAY;IACtB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,mBACA,cAAc,eACf,gBAAgB,QAAQ,aAAa,KAAG,QAAQ,YAAY,CAwB3E,CAAC"}
|
@@ -0,0 +1,70 @@
|
|
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.upload = exports.UploadStatus = void 0;
|
16
|
+
const form_data_1 = __importDefault(require("form-data"));
|
17
|
+
const retry_1 = require("./retry");
|
18
|
+
var UploadStatus;
|
19
|
+
(function (UploadStatus) {
|
20
|
+
UploadStatus[UploadStatus["Success"] = 0] = "Success";
|
21
|
+
UploadStatus[UploadStatus["Failure"] = 1] = "Failure";
|
22
|
+
UploadStatus[UploadStatus["Skipped"] = 2] = "Skipped";
|
23
|
+
})(UploadStatus = exports.UploadStatus || (exports.UploadStatus = {}));
|
24
|
+
/** Upload a MultipartPayload to Datadog's API using the provided RequestBuilder.
|
25
|
+
* This handles retries as well as logging information about upload if a logger is provided in
|
26
|
+
* the options
|
27
|
+
*/
|
28
|
+
const upload = (requestBuilder) => (payload, opts) => __awaiter(void 0, void 0, void 0, function* () {
|
29
|
+
opts.onUpload();
|
30
|
+
try {
|
31
|
+
yield (0, retry_1.retryRequest)(() => uploadMultipart(requestBuilder, payload), {
|
32
|
+
onRetry: opts.onRetry,
|
33
|
+
retries: opts.retries,
|
34
|
+
});
|
35
|
+
return UploadStatus.Success;
|
36
|
+
}
|
37
|
+
catch (error) {
|
38
|
+
if (opts.apiKeyValidator) {
|
39
|
+
// Raise an exception in case of invalid API key
|
40
|
+
yield opts.apiKeyValidator.verifyApiKey(error);
|
41
|
+
}
|
42
|
+
if (error.response && error.response.statusText) {
|
43
|
+
// Rewrite error to have formatted error string
|
44
|
+
opts.onError(new Error(`${error.message} (${error.response.statusText})`));
|
45
|
+
}
|
46
|
+
else {
|
47
|
+
// Default error handling
|
48
|
+
opts.onError(error);
|
49
|
+
}
|
50
|
+
return UploadStatus.Failure;
|
51
|
+
}
|
52
|
+
});
|
53
|
+
exports.upload = upload;
|
54
|
+
// Dependency follows-redirects sets a default maxBodyLength of 10 MB https://github.com/follow-redirects/follow-redirects/blob/b774a77e582b97174813b3eaeb86931becba69db/index.js#L391
|
55
|
+
// We don't want any hard limit enforced by the CLI, the backend will enforce a max size by returning 413 errors.
|
56
|
+
const maxBodyLength = Infinity;
|
57
|
+
const uploadMultipart = (request, payload) => __awaiter(void 0, void 0, void 0, function* () {
|
58
|
+
const form = new form_data_1.default();
|
59
|
+
payload.content.forEach((value, key) => {
|
60
|
+
form.append(key, value.value, value.options);
|
61
|
+
});
|
62
|
+
return request({
|
63
|
+
data: form,
|
64
|
+
headers: form.getHeaders(),
|
65
|
+
maxBodyLength,
|
66
|
+
method: "POST",
|
67
|
+
url: "v1/input",
|
68
|
+
});
|
69
|
+
});
|
70
|
+
//# sourceMappingURL=upload.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/helpers/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAAiC;AAIjC,mCAAuC;AAsCvC,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qDAAO,CAAA;IACP,qDAAO,CAAA;IACP,qDAAO,CAAA;AACT,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAED;;;GAGG;AACI,MAAM,MAAM,GACjB,CAAC,cAA8B,EAAE,EAAE,CACnC,CAAO,OAAyB,EAAE,IAAmB,EAAyB,EAAE;IAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChB,IAAI;QACF,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE;YACjE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC,OAAO,CAAC;KAC7B;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,gDAAgD;YAChD,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAChD;QACD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC/C,+CAA+C;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;SAC5E;aAAM;YACL,yBAAyB;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrB;QAED,OAAO,YAAY,CAAC,OAAO,CAAC;KAC7B;AACH,CAAC,CAAA,CAAC;AA1BS,QAAA,MAAM,UA0Bf;AAEJ,sLAAsL;AACtL,iHAAiH;AACjH,MAAM,aAAa,GAAG,QAAQ,CAAC;AAE/B,MAAM,eAAe,GAAG,CAAO,OAAuB,EAAE,OAAyB,EAAE,EAAE;IACnF,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAC5B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAqB,EAAE,GAAW,EAAE,EAAE;QAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;QAC1B,aAAa;QACb,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,UAAU;KAChB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"user-provided-git.d.ts","sourceRoot":"","sources":["../../../src/helpers/user-provided-git.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,kBAAkB,UA4B9B,CAAC"}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getUserGitMetadata = void 0;
|
4
|
+
const tags_1 = require("./tags");
|
5
|
+
const utils_1 = require("./utils");
|
6
|
+
const getUserGitMetadata = () => {
|
7
|
+
const { DD_GIT_REPOSITORY_URL, DD_GIT_COMMIT_SHA, DD_GIT_BRANCH, DD_GIT_TAG, DD_GIT_COMMIT_MESSAGE, DD_GIT_COMMIT_AUTHOR_NAME, DD_GIT_COMMIT_AUTHOR_EMAIL, DD_GIT_COMMIT_AUTHOR_DATE, DD_GIT_COMMIT_COMMITTER_NAME, DD_GIT_COMMIT_COMMITTER_EMAIL, DD_GIT_COMMIT_COMMITTER_DATE, } = process.env;
|
8
|
+
return (0, utils_1.removeEmptyValues)({
|
9
|
+
[tags_1.GIT_REPOSITORY_URL]: DD_GIT_REPOSITORY_URL,
|
10
|
+
[tags_1.GIT_BRANCH]: DD_GIT_BRANCH,
|
11
|
+
[tags_1.GIT_SHA]: DD_GIT_COMMIT_SHA,
|
12
|
+
[tags_1.GIT_TAG]: DD_GIT_TAG,
|
13
|
+
[tags_1.GIT_COMMIT_MESSAGE]: DD_GIT_COMMIT_MESSAGE,
|
14
|
+
[tags_1.GIT_COMMIT_COMMITTER_DATE]: DD_GIT_COMMIT_COMMITTER_DATE,
|
15
|
+
[tags_1.GIT_COMMIT_COMMITTER_EMAIL]: DD_GIT_COMMIT_COMMITTER_EMAIL,
|
16
|
+
[tags_1.GIT_COMMIT_COMMITTER_NAME]: DD_GIT_COMMIT_COMMITTER_NAME,
|
17
|
+
[tags_1.GIT_COMMIT_AUTHOR_DATE]: DD_GIT_COMMIT_AUTHOR_DATE,
|
18
|
+
[tags_1.GIT_COMMIT_AUTHOR_EMAIL]: DD_GIT_COMMIT_AUTHOR_EMAIL,
|
19
|
+
[tags_1.GIT_COMMIT_AUTHOR_NAME]: DD_GIT_COMMIT_AUTHOR_NAME,
|
20
|
+
});
|
21
|
+
};
|
22
|
+
exports.getUserGitMetadata = getUserGitMetadata;
|
23
|
+
//# sourceMappingURL=user-provided-git.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"user-provided-git.js","sourceRoot":"","sources":["../../../src/helpers/user-provided-git.ts"],"names":[],"mappings":";;;AAAA,iCAYgB;AAChB,mCAA4C;AAErC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,EACJ,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,GAC7B,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhB,OAAO,IAAA,yBAAiB,EAAC;QACvB,CAAC,yBAAkB,CAAC,EAAE,qBAAqB;QAC3C,CAAC,iBAAU,CAAC,EAAE,aAAa;QAC3B,CAAC,cAAO,CAAC,EAAE,iBAAiB;QAC5B,CAAC,cAAO,CAAC,EAAE,UAAU;QACrB,CAAC,yBAAkB,CAAC,EAAE,qBAAqB;QAC3C,CAAC,gCAAyB,CAAC,EAAE,4BAA4B;QACzD,CAAC,iCAA0B,CAAC,EAAE,6BAA6B;QAC3D,CAAC,gCAAyB,CAAC,EAAE,4BAA4B;QACzD,CAAC,6BAAsB,CAAC,EAAE,yBAAyB;QACnD,CAAC,8BAAuB,CAAC,EAAE,0BAA0B;QACrD,CAAC,6BAAsB,CAAC,EAAE,yBAAyB;KACpD,CAAC,CAAC;AACL,CAAC,CAAC;AA5BW,QAAA,kBAAkB,sBA4B7B"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { AxiosRequestConfig } from "axios";
|
2
|
+
import ProxyAgent from "proxy-agent";
|
3
|
+
import type { SpanTags } from "./interfaces";
|
4
|
+
export declare const pick: <T extends object, K extends keyof T>(base: T, keys: K[]) => Partial<T>;
|
5
|
+
export declare const getConfig: (configPath: string) => Promise<any>;
|
6
|
+
declare type ProxyType = "http" | "https" | "socks" | "socks4" | "socks4a" | "socks5" | "socks5h" | "pac+data" | "pac+file" | "pac+ftp" | "pac+http" | "pac+https";
|
7
|
+
export interface ProxyConfiguration {
|
8
|
+
auth?: {
|
9
|
+
password: string;
|
10
|
+
username: string;
|
11
|
+
};
|
12
|
+
host?: string;
|
13
|
+
port?: number;
|
14
|
+
protocol: ProxyType;
|
15
|
+
}
|
16
|
+
export declare const getProxyUrl: (options?: ProxyConfiguration | undefined) => string;
|
17
|
+
export interface RequestOptions {
|
18
|
+
apiKey: string;
|
19
|
+
appKey?: string;
|
20
|
+
baseUrl: string;
|
21
|
+
headers?: Map<string, string>;
|
22
|
+
overrideUrl?: string;
|
23
|
+
proxyOpts?: ProxyConfiguration;
|
24
|
+
}
|
25
|
+
export declare const getRequestBuilder: (options: RequestOptions) => (args: AxiosRequestConfig) => import("axios").AxiosPromise<any>;
|
26
|
+
export declare const getProxyAgent: (proxyOpts?: ProxyConfiguration | undefined) => ReturnType<typeof ProxyAgent>;
|
27
|
+
export declare const getApiHostForSite: (site: string) => string;
|
28
|
+
export declare const buildPath: (...args: string[]) => string;
|
29
|
+
export declare const removeEmptyValues: (tags: SpanTags) => {};
|
30
|
+
export {};
|
31
|
+
//# sourceMappingURL=utils.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAoB,MAAM,OAAO,CAAC;AAE7D,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,EAAW,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEtD,eAAO,MAAM,IAAI,yEAShB,CAAC;AAEF,eAAO,MAAM,SAAS,eAAsB,MAAM,iBAIjD,CAAC;AAEF,aAAK,SAAS,GACV,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,GACV,SAAS,GACT,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,gDAAmC,MAc1D,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,eAAO,MAAM,iBAAiB,YAAa,cAAc,YAsCzC,kBAAkB,sCACjC,CAAC;AAEF,eAAO,MAAM,aAAa,kDAAqC,WAAW,iBAAiB,CAI1F,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAU,MAAM,WAS7C,CAAC;AAIF,eAAO,MAAM,SAAS,YAAa,MAAM,EAAE,WAc7B,CAAC;AAEf,eAAO,MAAM,iBAAiB,SAAU,QAAQ,OAUxC,CAAC"}
|
@@ -0,0 +1,115 @@
|
|
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.removeEmptyValues = exports.buildPath = exports.getApiHostForSite = exports.getProxyAgent = exports.getRequestBuilder = exports.getProxyUrl = exports.getConfig = exports.pick = void 0;
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
17
|
+
const fs_1 = __importDefault(require("fs"));
|
18
|
+
const proxy_agent_1 = __importDefault(require("proxy-agent"));
|
19
|
+
const util_1 = require("util");
|
20
|
+
const pick = (base, keys) => {
|
21
|
+
const definedKeys = keys.filter((key) => !!base[key]);
|
22
|
+
const pickedObject = {};
|
23
|
+
for (const key of definedKeys) {
|
24
|
+
pickedObject[key] = base[key];
|
25
|
+
}
|
26
|
+
return pickedObject;
|
27
|
+
};
|
28
|
+
exports.pick = pick;
|
29
|
+
const getConfig = (configPath) => __awaiter(void 0, void 0, void 0, function* () {
|
30
|
+
const configFile = yield (0, util_1.promisify)(fs_1.default.readFile)(configPath, "utf-8");
|
31
|
+
return JSON.parse(configFile);
|
32
|
+
});
|
33
|
+
exports.getConfig = getConfig;
|
34
|
+
const getProxyUrl = (options) => {
|
35
|
+
if (!options) {
|
36
|
+
return "";
|
37
|
+
}
|
38
|
+
const { auth, host, port, protocol } = options;
|
39
|
+
if (!host || !port) {
|
40
|
+
return "";
|
41
|
+
}
|
42
|
+
const authFragment = auth ? `${auth.username}:${auth.password}@` : "";
|
43
|
+
return `${protocol}://${authFragment}${host}:${port}`;
|
44
|
+
};
|
45
|
+
exports.getProxyUrl = getProxyUrl;
|
46
|
+
const getRequestBuilder = (options) => {
|
47
|
+
const { apiKey, appKey, baseUrl, overrideUrl, proxyOpts } = options;
|
48
|
+
const overrideArgs = (args) => {
|
49
|
+
const newArguments = Object.assign(Object.assign({}, args), { headers: Object.assign(Object.assign({ "DD-API-KEY": apiKey }, (appKey ? { "DD-APPLICATION-KEY": appKey } : {})), args.headers) });
|
50
|
+
if (overrideUrl !== undefined) {
|
51
|
+
newArguments.url = overrideUrl;
|
52
|
+
}
|
53
|
+
const proxyAgent = (0, exports.getProxyAgent)(proxyOpts);
|
54
|
+
if (proxyAgent) {
|
55
|
+
newArguments.httpAgent = proxyAgent;
|
56
|
+
newArguments.httpsAgent = proxyAgent;
|
57
|
+
}
|
58
|
+
if (options.headers !== undefined) {
|
59
|
+
options.headers.forEach((value, key) => {
|
60
|
+
newArguments.headers[key] = value;
|
61
|
+
});
|
62
|
+
}
|
63
|
+
return newArguments;
|
64
|
+
};
|
65
|
+
const baseConfiguration = {
|
66
|
+
baseURL: baseUrl,
|
67
|
+
// Disabling proxy in Axios config as it's not working properly
|
68
|
+
// the passed httpAgent/httpsAgent are handling the proxy instead.
|
69
|
+
proxy: false,
|
70
|
+
};
|
71
|
+
return (args) => axios_1.default.create(baseConfiguration)(overrideArgs(args));
|
72
|
+
};
|
73
|
+
exports.getRequestBuilder = getRequestBuilder;
|
74
|
+
const getProxyAgent = (proxyOpts) => {
|
75
|
+
const proxyUrlFromConfiguration = (0, exports.getProxyUrl)(proxyOpts);
|
76
|
+
return new proxy_agent_1.default(proxyUrlFromConfiguration);
|
77
|
+
};
|
78
|
+
exports.getProxyAgent = getProxyAgent;
|
79
|
+
const getApiHostForSite = (site) => {
|
80
|
+
switch (site) {
|
81
|
+
case "datad0g.com":
|
82
|
+
return `app.${site}`;
|
83
|
+
case "datadoghq.com":
|
84
|
+
case "datadoghq.eu":
|
85
|
+
default:
|
86
|
+
return `api.${site}`;
|
87
|
+
}
|
88
|
+
};
|
89
|
+
exports.getApiHostForSite = getApiHostForSite;
|
90
|
+
// The buildPath function is used to concatenate several paths. The goal is to have a function working for both unix
|
91
|
+
// paths and URL whereas standard path.join does not work with both.
|
92
|
+
const buildPath = (...args) => args
|
93
|
+
.map((part, i) => {
|
94
|
+
if (i === 0) {
|
95
|
+
// For the first part, drop all / at the end of the path
|
96
|
+
return part.trim().replace(/[\/]*$/g, "");
|
97
|
+
}
|
98
|
+
else {
|
99
|
+
// For the following parts, remove all / at the beginning and at the end
|
100
|
+
return part.trim().replace(/(^[\/]*|[\/]*$)/g, "");
|
101
|
+
}
|
102
|
+
})
|
103
|
+
// Filter out emtpy parts
|
104
|
+
.filter((x) => x.length)
|
105
|
+
// Join all these parts with /
|
106
|
+
.join("/");
|
107
|
+
exports.buildPath = buildPath;
|
108
|
+
const removeEmptyValues = (tags) => Object.keys(tags).reduce((filteredTags, tag) => {
|
109
|
+
if (!tags[tag]) {
|
110
|
+
return filteredTags;
|
111
|
+
}
|
112
|
+
return Object.assign(Object.assign({}, filteredTags), { [tag]: tags[tag] });
|
113
|
+
}, {});
|
114
|
+
exports.removeEmptyValues = removeEmptyValues;
|
115
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
@@ -1,2 +1,10 @@
|
|
1
|
-
|
1
|
+
import { FunctionDefinition } from "serverless";
|
2
|
+
export interface ExtendedFunctionDefinition extends FunctionDefinition {
|
3
|
+
tags?: {
|
4
|
+
[key: string]: string;
|
5
|
+
};
|
6
|
+
environment?: {
|
7
|
+
[key: string]: string;
|
8
|
+
};
|
9
|
+
}
|
2
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAwBhD,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACjC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACzC"}
|