@datadog/datadog-ci-base 3.21.0 → 3.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +2 -2
  2. package/dist/cli.d.ts +41 -0
  3. package/dist/cli.js +46 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/commands/aas/common.d.ts +51 -0
  6. package/dist/commands/aas/common.js +129 -0
  7. package/dist/commands/aas/common.js.map +1 -0
  8. package/dist/commands/aas/instrument.d.ts +18 -0
  9. package/dist/commands/aas/instrument.js +80 -0
  10. package/dist/commands/aas/instrument.js.map +1 -0
  11. package/dist/commands/aas/uninstrument.d.ts +6 -0
  12. package/dist/commands/aas/uninstrument.js +29 -0
  13. package/dist/commands/aas/uninstrument.js.map +1 -0
  14. package/dist/commands/cloud-run/constants.d.ts +3 -0
  15. package/dist/commands/cloud-run/constants.js +24 -0
  16. package/dist/commands/cloud-run/constants.js.map +1 -0
  17. package/dist/commands/cloud-run/flare.d.ts +18 -0
  18. package/dist/commands/cloud-run/flare.js +42 -0
  19. package/dist/commands/cloud-run/flare.js.map +1 -0
  20. package/dist/commands/cloud-run/instrument.d.ts +30 -0
  21. package/dist/commands/cloud-run/instrument.js +88 -0
  22. package/dist/commands/cloud-run/instrument.js.map +1 -0
  23. package/dist/commands/cloud-run/uninstrument.d.ts +15 -0
  24. package/dist/commands/cloud-run/uninstrument.js +53 -0
  25. package/dist/commands/cloud-run/uninstrument.js.map +1 -0
  26. package/dist/commands/deployment/correlate-command.d.ts +17 -0
  27. package/dist/commands/deployment/correlate-command.js +57 -0
  28. package/dist/commands/deployment/correlate-command.js.map +1 -0
  29. package/dist/commands/deployment/correlate-image-command.d.ts +12 -0
  30. package/dist/commands/deployment/correlate-image-command.js +38 -0
  31. package/dist/commands/deployment/correlate-image-command.js.map +1 -0
  32. package/dist/commands/deployment/gate-command.d.ts +21 -0
  33. package/dist/commands/deployment/gate-command.js +119 -0
  34. package/dist/commands/deployment/gate-command.js.map +1 -0
  35. package/dist/commands/deployment/mark-command.d.ts +18 -0
  36. package/dist/commands/deployment/mark-command.js +63 -0
  37. package/dist/commands/deployment/mark-command.js.map +1 -0
  38. package/dist/commands/dora/deployment-command.d.ts +20 -0
  39. package/dist/commands/dora/deployment-command.js +118 -0
  40. package/dist/commands/dora/deployment-command.js.map +1 -0
  41. package/dist/commands/gate/evaluate-command.d.ts +15 -0
  42. package/dist/commands/gate/evaluate-command.js +98 -0
  43. package/dist/commands/gate/evaluate-command.js.map +1 -0
  44. package/dist/commands/git-metadata/api.d.ts +3 -0
  45. package/dist/commands/git-metadata/api.js +13 -0
  46. package/dist/commands/git-metadata/api.js.map +1 -0
  47. package/dist/commands/git-metadata/git.d.ts +18 -0
  48. package/dist/commands/git-metadata/git.js +188 -0
  49. package/dist/commands/git-metadata/git.js.map +1 -0
  50. package/dist/commands/git-metadata/gitdb.d.ts +7 -0
  51. package/dist/commands/git-metadata/gitdb.js +334 -0
  52. package/dist/commands/git-metadata/gitdb.js.map +1 -0
  53. package/dist/commands/git-metadata/index.d.ts +1 -0
  54. package/dist/commands/git-metadata/index.js +18 -0
  55. package/dist/commands/git-metadata/index.js.map +1 -0
  56. package/dist/commands/git-metadata/interfaces.d.ts +10 -0
  57. package/dist/commands/git-metadata/interfaces.js +56 -0
  58. package/dist/commands/git-metadata/interfaces.js.map +1 -0
  59. package/dist/commands/git-metadata/library.d.ts +7 -0
  60. package/dist/commands/git-metadata/library.js +102 -0
  61. package/dist/commands/git-metadata/library.js.map +1 -0
  62. package/dist/commands/git-metadata/renderer.d.ts +7 -0
  63. package/dist/commands/git-metadata/renderer.js +29 -0
  64. package/dist/commands/git-metadata/renderer.js.map +1 -0
  65. package/dist/commands/git-metadata/upload.d.ts +20 -0
  66. package/dist/commands/git-metadata/upload.js +209 -0
  67. package/dist/commands/git-metadata/upload.js.map +1 -0
  68. package/dist/commands/lambda/flare.d.ts +16 -0
  69. package/dist/commands/lambda/flare.js +41 -0
  70. package/dist/commands/lambda/flare.js.map +1 -0
  71. package/dist/commands/lambda/instrument.d.ts +35 -0
  72. package/dist/commands/lambda/instrument.js +60 -0
  73. package/dist/commands/lambda/instrument.js.map +1 -0
  74. package/dist/commands/lambda/uninstrument.d.ts +33 -0
  75. package/dist/commands/lambda/uninstrument.js +58 -0
  76. package/dist/commands/lambda/uninstrument.js.map +1 -0
  77. package/dist/commands/plugin/check-command.d.ts +7 -0
  78. package/dist/commands/plugin/check-command.js +48 -0
  79. package/dist/commands/plugin/check-command.js.map +1 -0
  80. package/dist/commands/sarif/upload-command.d.ts +17 -0
  81. package/dist/commands/sarif/upload-command.js +62 -0
  82. package/dist/commands/sarif/upload-command.js.map +1 -0
  83. package/dist/commands/sbom/upload-command.d.ts +15 -0
  84. package/dist/commands/sbom/upload-command.js +46 -0
  85. package/dist/commands/sbom/upload-command.js.map +1 -0
  86. package/dist/commands/stepfunctions/instrument.d.ts +15 -0
  87. package/dist/commands/stepfunctions/instrument.js +55 -0
  88. package/dist/commands/stepfunctions/instrument.js.map +1 -0
  89. package/dist/commands/stepfunctions/uninstrument.d.ts +14 -0
  90. package/dist/commands/stepfunctions/uninstrument.js +56 -0
  91. package/dist/commands/stepfunctions/uninstrument.js.map +1 -0
  92. package/dist/commands/synthetics/deploy-tests-command.d.ts +16 -0
  93. package/dist/commands/synthetics/deploy-tests-command.js +79 -0
  94. package/dist/commands/synthetics/deploy-tests-command.js.map +1 -0
  95. package/dist/commands/synthetics/import-tests-command.d.ts +15 -0
  96. package/dist/commands/synthetics/import-tests-command.js +77 -0
  97. package/dist/commands/synthetics/import-tests-command.js.map +1 -0
  98. package/dist/commands/synthetics/run-tests-command.d.ts +28 -0
  99. package/dist/commands/synthetics/run-tests-command.js +158 -0
  100. package/dist/commands/synthetics/run-tests-command.js.map +1 -0
  101. package/dist/commands/synthetics/upload-application-command.d.ts +16 -0
  102. package/dist/commands/synthetics/upload-application-command.js +77 -0
  103. package/dist/commands/synthetics/upload-application-command.js.map +1 -0
  104. package/dist/commands/tag/cli.d.ts +1 -0
  105. package/dist/commands/tag/cli.js +5 -0
  106. package/dist/commands/tag/cli.js.map +1 -0
  107. package/dist/commands/tag/tag-command.d.ts +20 -0
  108. package/dist/commands/tag/tag-command.js +162 -0
  109. package/dist/commands/tag/tag-command.js.map +1 -0
  110. package/dist/constants.d.ts +39 -0
  111. package/dist/constants.js +105 -0
  112. package/dist/constants.js.map +1 -0
  113. package/dist/helpers/api.d.ts +5 -0
  114. package/dist/helpers/api.js +16 -0
  115. package/dist/helpers/api.js.map +1 -0
  116. package/dist/helpers/apikey.d.ts +15 -0
  117. package/dist/helpers/apikey.js +85 -0
  118. package/dist/helpers/apikey.js.map +1 -0
  119. package/dist/helpers/app.d.ts +5 -0
  120. package/dist/helpers/app.js +38 -0
  121. package/dist/helpers/app.js.map +1 -0
  122. package/dist/helpers/base-intake-url.d.ts +1 -0
  123. package/dist/helpers/base-intake-url.js +14 -0
  124. package/dist/helpers/base-intake-url.js.map +1 -0
  125. package/dist/helpers/ci.d.ts +71 -0
  126. package/dist/helpers/ci.js +671 -0
  127. package/dist/helpers/ci.js.map +1 -0
  128. package/dist/helpers/concurrency.d.ts +1 -0
  129. package/dist/helpers/concurrency.js +45 -0
  130. package/dist/helpers/concurrency.js.map +1 -0
  131. package/dist/helpers/config.d.ts +5 -0
  132. package/dist/helpers/config.js +3 -0
  133. package/dist/helpers/config.js.map +1 -0
  134. package/dist/helpers/env.d.ts +6 -0
  135. package/dist/helpers/env.js +50 -0
  136. package/dist/helpers/env.js.map +1 -0
  137. package/dist/helpers/errors.d.ts +2 -0
  138. package/dist/helpers/errors.js +7 -0
  139. package/dist/helpers/errors.js.map +1 -0
  140. package/dist/helpers/file-finder.d.ts +20 -0
  141. package/dist/helpers/file-finder.js +203 -0
  142. package/dist/helpers/file-finder.js.map +1 -0
  143. package/dist/helpers/filereader.d.ts +21 -0
  144. package/dist/helpers/filereader.js +59 -0
  145. package/dist/helpers/filereader.js.map +1 -0
  146. package/dist/helpers/fips.d.ts +1 -0
  147. package/dist/helpers/fips.js +24 -0
  148. package/dist/helpers/fips.js.map +1 -0
  149. package/dist/helpers/flare.d.ts +51 -0
  150. package/dist/helpers/flare.js +238 -0
  151. package/dist/helpers/flare.js.map +1 -0
  152. package/dist/helpers/formatting.d.ts +5 -0
  153. package/dist/helpers/formatting.js +13 -0
  154. package/dist/helpers/formatting.js.map +1 -0
  155. package/dist/helpers/fs.d.ts +31 -0
  156. package/dist/helpers/fs.js +117 -0
  157. package/dist/helpers/fs.js.map +1 -0
  158. package/dist/helpers/get-latest-version.d.ts +1 -0
  159. package/dist/helpers/get-latest-version.js +20 -0
  160. package/dist/helpers/get-latest-version.js.map +1 -0
  161. package/dist/helpers/git/format-git-sourcemaps-data.d.ts +16 -0
  162. package/dist/helpers/git/format-git-sourcemaps-data.js +178 -0
  163. package/dist/helpers/git/format-git-sourcemaps-data.js.map +1 -0
  164. package/dist/helpers/git/format-git-span-data.d.ts +2 -0
  165. package/dist/helpers/git/format-git-span-data.js +54 -0
  166. package/dist/helpers/git/format-git-span-data.js.map +1 -0
  167. package/dist/helpers/git/get-git-data.d.ts +13 -0
  168. package/dist/helpers/git/get-git-data.js +86 -0
  169. package/dist/helpers/git/get-git-data.js.map +1 -0
  170. package/dist/helpers/git/source-code-integration.d.ts +10 -0
  171. package/dist/helpers/git/source-code-integration.js +81 -0
  172. package/dist/helpers/git/source-code-integration.js.map +1 -0
  173. package/dist/helpers/glob.d.ts +12 -0
  174. package/dist/helpers/glob.js +70 -0
  175. package/dist/helpers/glob.js.map +1 -0
  176. package/dist/helpers/id.d.ts +2 -0
  177. package/dist/helpers/id.js +50 -0
  178. package/dist/helpers/id.js.map +1 -0
  179. package/dist/helpers/interfaces.d.ts +59 -0
  180. package/dist/helpers/interfaces.js +3 -0
  181. package/dist/helpers/interfaces.js.map +1 -0
  182. package/dist/helpers/is-standalone-binary.d.ts +1 -0
  183. package/dist/helpers/is-standalone-binary.js +25 -0
  184. package/dist/helpers/is-standalone-binary.js.map +1 -0
  185. package/dist/helpers/logger.d.ts +18 -0
  186. package/dist/helpers/logger.js +52 -0
  187. package/dist/helpers/logger.js.map +1 -0
  188. package/dist/helpers/message-box.d.ts +2 -0
  189. package/dist/helpers/message-box.js +28 -0
  190. package/dist/helpers/message-box.js.map +1 -0
  191. package/dist/helpers/metrics.d.ts +12 -0
  192. package/dist/helpers/metrics.js +36 -0
  193. package/dist/helpers/metrics.js.map +1 -0
  194. package/dist/helpers/plist.d.ts +44 -0
  195. package/dist/helpers/plist.js +93 -0
  196. package/dist/helpers/plist.js.map +1 -0
  197. package/dist/helpers/plugin.d.ts +10 -0
  198. package/dist/helpers/plugin.js +149 -0
  199. package/dist/helpers/plugin.js.map +1 -0
  200. package/dist/helpers/prompt.d.ts +9 -0
  201. package/dist/helpers/prompt.js +58 -0
  202. package/dist/helpers/prompt.js.map +1 -0
  203. package/dist/helpers/renderer.d.ts +60 -0
  204. package/dist/helpers/renderer.js +98 -0
  205. package/dist/helpers/renderer.js.map +1 -0
  206. package/dist/helpers/retry.d.ts +2 -0
  207. package/dist/helpers/retry.js +40 -0
  208. package/dist/helpers/retry.js.map +1 -0
  209. package/dist/helpers/tags.d.ts +82 -0
  210. package/dist/helpers/tags.js +244 -0
  211. package/dist/helpers/tags.js.map +1 -0
  212. package/dist/helpers/types.d.ts +3 -0
  213. package/dist/helpers/types.js +3 -0
  214. package/dist/helpers/types.js.map +1 -0
  215. package/dist/helpers/upload.d.ts +51 -0
  216. package/dist/helpers/upload.js +86 -0
  217. package/dist/helpers/upload.js.map +1 -0
  218. package/dist/helpers/user-provided-git.d.ts +2 -0
  219. package/dist/helpers/user-provided-git.js +49 -0
  220. package/dist/helpers/user-provided-git.js.map +1 -0
  221. package/dist/helpers/utils.d.ts +84 -0
  222. package/dist/helpers/utils.js +340 -0
  223. package/dist/helpers/utils.js.map +1 -0
  224. package/dist/helpers/validation.d.ts +19 -0
  225. package/dist/helpers/validation.js +77 -0
  226. package/dist/helpers/validation.js.map +1 -0
  227. package/dist/version.d.ts +1 -0
  228. package/dist/version.js +6 -0
  229. package/dist/version.js.map +1 -0
  230. package/package.json +19 -10
@@ -0,0 +1,340 @@
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.isFile = exports.getGitHubEventPayload = exports.execute = exports.maskString = exports.formatBytes = exports.timedExecAsync = exports.filterAndFormatGithubRemote = exports.filterSensitiveInfoFromRepository = exports.performSubCommand = exports.pluralize = exports.normalizeRef = exports.recursivelyRemoveUndefinedValues = exports.removeUndefinedValues = exports.removeEmptyValues = exports.buildPath = exports.getApiHostForSite = exports.getProxyAgent = exports.getRequestBuilder = exports.getProxyUrl = exports.resolveConfigFromFile = exports.resolveConfigFromFileAndEnvironment = exports.getConfig = exports.pick = exports.makeTerminalLink = exports.DEFAULT_CONFIG_PATHS = void 0;
16
+ const child_process_1 = require("child_process");
17
+ const fs_1 = require("fs");
18
+ const util_1 = require("util");
19
+ const axios_1 = require("axios");
20
+ const clipanion_1 = require("clipanion");
21
+ const deep_extend_1 = __importDefault(require("deep-extend"));
22
+ const proxy_agent_1 = require("proxy-agent");
23
+ const terminal_link_1 = __importDefault(require("terminal-link"));
24
+ exports.DEFAULT_CONFIG_PATHS = ['datadog-ci.json'];
25
+ const makeTerminalLink = (url) => {
26
+ return ((strings) => (0, terminal_link_1.default)(strings[0], url));
27
+ };
28
+ exports.makeTerminalLink = makeTerminalLink;
29
+ const pick = (base, keys) => {
30
+ const definedKeys = keys.filter((key) => !!base[key]);
31
+ const pickedObject = {};
32
+ for (const key of definedKeys) {
33
+ pickedObject[key] = base[key];
34
+ }
35
+ return pickedObject;
36
+ };
37
+ exports.pick = pick;
38
+ const getConfig = (configPath) => __awaiter(void 0, void 0, void 0, function* () {
39
+ try {
40
+ const configFile = yield (0, util_1.promisify)(fs_1.readFile)(configPath, 'utf-8');
41
+ return JSON.parse(configFile);
42
+ }
43
+ catch (error) {
44
+ if (error instanceof SyntaxError) {
45
+ throw new Error('Config file is not correct JSON');
46
+ }
47
+ }
48
+ });
49
+ exports.getConfig = getConfig;
50
+ const resolveConfigPath = ({ configPath, defaultConfigPaths, }) => {
51
+ if (configPath) {
52
+ if ((0, fs_1.existsSync)(configPath)) {
53
+ return configPath;
54
+ }
55
+ throw new Error('Config file not found');
56
+ }
57
+ if (defaultConfigPaths) {
58
+ for (const path of defaultConfigPaths) {
59
+ if ((0, fs_1.existsSync)(path)) {
60
+ return path;
61
+ }
62
+ }
63
+ }
64
+ return undefined;
65
+ };
66
+ /**
67
+ * Applies configurations in this order of priority:
68
+ * environment > config file > base config
69
+ */
70
+ const resolveConfigFromFileAndEnvironment = (baseConfig, environment, params) => __awaiter(void 0, void 0, void 0, function* () {
71
+ const configFromFile = yield (0, exports.resolveConfigFromFile)(baseConfig, params);
72
+ if (params.configFromFileCallback) {
73
+ params.configFromFileCallback(configFromFile);
74
+ }
75
+ return (0, deep_extend_1.default)(configFromFile, (0, exports.removeUndefinedValues)(environment));
76
+ });
77
+ exports.resolveConfigFromFileAndEnvironment = resolveConfigFromFileAndEnvironment;
78
+ const resolveConfigFromFile = (baseConfig, params) => __awaiter(void 0, void 0, void 0, function* () {
79
+ const resolvedConfigPath = resolveConfigPath(params);
80
+ if (!resolvedConfigPath) {
81
+ return baseConfig;
82
+ }
83
+ const parsedConfig = yield (0, exports.getConfig)(resolvedConfigPath);
84
+ return (0, deep_extend_1.default)(baseConfig, parsedConfig);
85
+ });
86
+ exports.resolveConfigFromFile = resolveConfigFromFile;
87
+ const getProxyUrl = (options) => {
88
+ if (!options) {
89
+ return '';
90
+ }
91
+ const { auth, host, port, protocol } = options;
92
+ if (!host || !port) {
93
+ return '';
94
+ }
95
+ const authFragment = auth ? `${auth.username}:${auth.password}@` : '';
96
+ return `${protocol}://${authFragment}${host}:${port}`;
97
+ };
98
+ exports.getProxyUrl = getProxyUrl;
99
+ const getRequestBuilder = (options) => {
100
+ const { apiKey, appKey, baseUrl, overrideUrl, proxyOpts } = options;
101
+ const overrideArgs = (args) => {
102
+ const newArguments = Object.assign(Object.assign({}, args), { headers: Object.assign(Object.assign({ 'DD-API-KEY': apiKey }, (appKey ? { 'DD-APPLICATION-KEY': appKey } : {})), args.headers) });
103
+ if (overrideUrl !== undefined) {
104
+ newArguments.url = overrideUrl;
105
+ }
106
+ const proxyAgent = (0, exports.getProxyAgent)(proxyOpts);
107
+ if (proxyAgent) {
108
+ newArguments.httpAgent = proxyAgent;
109
+ newArguments.httpsAgent = proxyAgent;
110
+ }
111
+ if (options.headers !== undefined) {
112
+ options.headers.forEach((value, key) => {
113
+ newArguments.headers[key] = value;
114
+ });
115
+ }
116
+ return newArguments;
117
+ };
118
+ const baseConfiguration = {
119
+ baseURL: baseUrl,
120
+ // Disabling proxy in Axios config as it's not working properly
121
+ // the passed httpAgent/httpsAgent are handling the proxy instead.
122
+ proxy: false,
123
+ };
124
+ return (args) => (0, axios_1.create)(baseConfiguration)(overrideArgs(args));
125
+ };
126
+ exports.getRequestBuilder = getRequestBuilder;
127
+ const proxyAgentCache = new Map();
128
+ const getProxyAgent = (proxyOpts) => {
129
+ const proxyUrlFromConfiguration = (0, exports.getProxyUrl)(proxyOpts);
130
+ let proxyAgent = proxyAgentCache.get(proxyUrlFromConfiguration);
131
+ if (!proxyAgent) {
132
+ proxyAgent = createProxyAgentForUrl(proxyUrlFromConfiguration);
133
+ proxyAgentCache.set(proxyUrlFromConfiguration, proxyAgent);
134
+ }
135
+ return proxyAgent;
136
+ };
137
+ exports.getProxyAgent = getProxyAgent;
138
+ const createProxyAgentForUrl = (proxyUrl) => {
139
+ if (!proxyUrl) {
140
+ // Let the default proxy agent discover environment variables.
141
+ return new proxy_agent_1.ProxyAgent();
142
+ }
143
+ return new proxy_agent_1.ProxyAgent({
144
+ getProxyForUrl: (url) => {
145
+ // Do not proxy the WebSocket connections.
146
+ if (url === null || url === void 0 ? void 0 : url.match(/^wss?:/)) {
147
+ return '';
148
+ }
149
+ return proxyUrl;
150
+ },
151
+ });
152
+ };
153
+ const getApiHostForSite = (site) => {
154
+ switch (site) {
155
+ case 'datad0g.com':
156
+ return `app.${site}`;
157
+ case 'datadoghq.com':
158
+ case 'datadoghq.eu':
159
+ default:
160
+ return `api.${site}`;
161
+ }
162
+ };
163
+ exports.getApiHostForSite = getApiHostForSite;
164
+ // The buildPath function is used to concatenate several paths. The goal is to have a function working for both unix
165
+ // paths and URL whereas standard path.join does not work with both.
166
+ const buildPath = (...args) => args
167
+ .map((part, i) => {
168
+ if (i === 0) {
169
+ // For the first part, drop all / at the end of the path
170
+ return part.trim().replace(/[/]*$/g, '');
171
+ }
172
+ else {
173
+ // For the following parts, remove all / at the beginning and at the end
174
+ return part.trim().replace(/(^[/]*|[/]*$)/g, '');
175
+ }
176
+ })
177
+ // Filter out empty parts
178
+ .filter((x) => x.length)
179
+ // Join all these parts with /
180
+ .join('/');
181
+ exports.buildPath = buildPath;
182
+ const removeEmptyValues = (tags) => Object.keys(tags).reduce((filteredTags, tag) => {
183
+ if (!tags[tag]) {
184
+ return filteredTags;
185
+ }
186
+ return Object.assign(Object.assign({}, filteredTags), { [tag]: tags[tag] });
187
+ }, {});
188
+ exports.removeEmptyValues = removeEmptyValues;
189
+ const removeUndefinedValues = (object) => {
190
+ const newObject = Object.assign({}, object);
191
+ for (const [key, value] of Object.entries(newObject)) {
192
+ if (value === undefined) {
193
+ delete newObject[key];
194
+ }
195
+ }
196
+ return newObject;
197
+ };
198
+ exports.removeUndefinedValues = removeUndefinedValues;
199
+ const recursivelyRemoveUndefinedValues = (object) => {
200
+ const newObject = {};
201
+ for (const [key, value] of Object.entries(object)) {
202
+ if (typeof value === 'object' && !Array.isArray(value)) {
203
+ newObject[key] = (0, exports.recursivelyRemoveUndefinedValues)(value);
204
+ }
205
+ else if (value !== undefined) {
206
+ newObject[key] = value;
207
+ }
208
+ }
209
+ return newObject;
210
+ };
211
+ exports.recursivelyRemoveUndefinedValues = recursivelyRemoveUndefinedValues;
212
+ const normalizeRef = (ref) => {
213
+ if (!ref) {
214
+ return ref;
215
+ }
216
+ return ref.replace(/origin\/|refs\/heads\/|tags\//gm, '');
217
+ };
218
+ exports.normalizeRef = normalizeRef;
219
+ const pluralize = (nb, singular, plural) => {
220
+ if (nb >= 2) {
221
+ return `${nb} ${plural}`;
222
+ }
223
+ return `${nb} ${singular}`;
224
+ };
225
+ exports.pluralize = pluralize;
226
+ const performSubCommand = (command, commandArgs, context) => {
227
+ const cli = new clipanion_1.Cli();
228
+ cli.register(command);
229
+ return cli.run(commandArgs, context);
230
+ };
231
+ exports.performSubCommand = performSubCommand;
232
+ const filterSensitiveInfoFromRepository = (repositoryUrl) => {
233
+ try {
234
+ if (!repositoryUrl) {
235
+ return repositoryUrl;
236
+ }
237
+ if (repositoryUrl.startsWith('git@')) {
238
+ return repositoryUrl;
239
+ }
240
+ // Remove the username from ssh URLs
241
+ if (repositoryUrl.startsWith('ssh://')) {
242
+ const sshRegex = /^(ssh:\/\/)[^@/]*@/;
243
+ return repositoryUrl.replace(sshRegex, '$1');
244
+ }
245
+ const { protocol, host, pathname } = new URL(repositoryUrl);
246
+ if (!protocol || !host) {
247
+ return repositoryUrl;
248
+ }
249
+ return `${protocol}//${host}${pathname === '/' ? '' : pathname}`;
250
+ }
251
+ catch (e) {
252
+ return repositoryUrl;
253
+ }
254
+ };
255
+ exports.filterSensitiveInfoFromRepository = filterSensitiveInfoFromRepository;
256
+ // Removes sensitive info from the given git remote url and normalizes the url prefix.
257
+ // "git@github.com:" and "https://github.com/" prefixes will be normalized into "github.com/"
258
+ const filterAndFormatGithubRemote = (rawRemote) => {
259
+ rawRemote = (0, exports.filterSensitiveInfoFromRepository)(rawRemote);
260
+ if (!rawRemote) {
261
+ return rawRemote;
262
+ }
263
+ rawRemote = rawRemote.replace(/git@github\.com:|https:\/\/github\.com\//, 'github.com/');
264
+ return rawRemote;
265
+ };
266
+ exports.filterAndFormatGithubRemote = filterAndFormatGithubRemote;
267
+ const timedExecAsync = (f, input) => __awaiter(void 0, void 0, void 0, function* () {
268
+ const initialTime = Date.now();
269
+ yield f(input);
270
+ return (Date.now() - initialTime) / 1000;
271
+ });
272
+ exports.timedExecAsync = timedExecAsync;
273
+ /**
274
+ * Convert bytes to a formatted string in KB, MB, GB, etc.
275
+ * Note: Lambda documentation uses MB (instead of Mib) to refer to 1024 KB, so we follow that style here
276
+ * @param bytes
277
+ * @param decimals
278
+ */
279
+ const formatBytes = (bytes, decimals = 2) => {
280
+ if (!bytes) {
281
+ return '0 Bytes';
282
+ }
283
+ if (bytes < 0) {
284
+ throw Error("'bytes' can't be negative.");
285
+ }
286
+ const bytesPerKB = 1024;
287
+ const numDecimals = decimals < 0 ? 0 : decimals;
288
+ const units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
289
+ const i = Math.floor(Math.log(bytes) / Math.log(bytesPerKB));
290
+ const formattedBytes = parseFloat((bytes / Math.pow(bytesPerKB, i)).toFixed(numDecimals));
291
+ return `${formattedBytes} ${units[i]}`;
292
+ };
293
+ exports.formatBytes = formatBytes;
294
+ // Mask a string to hide sensitive values
295
+ const maskString = (value) => {
296
+ if (value === undefined) {
297
+ return '<unset>';
298
+ }
299
+ else if (value.length === 0) {
300
+ return '<empty>';
301
+ }
302
+ // Don't mask booleans
303
+ if (value.toLowerCase() === 'true' || value.toLowerCase() === 'false') {
304
+ return value;
305
+ }
306
+ // Dont mask numbers
307
+ if (!isNaN(Number(value))) {
308
+ return value;
309
+ }
310
+ // Mask entire string if it's short
311
+ if (value.length < 12) {
312
+ return '*'.repeat(16);
313
+ }
314
+ // Keep first two and last four characters if it's long
315
+ return value.slice(0, 2) + '*'.repeat(10) + value.slice(-4);
316
+ };
317
+ exports.maskString = maskString;
318
+ const execProc = (0, util_1.promisify)(child_process_1.exec);
319
+ const execute = (cmd, cwd) => execProc(cmd, {
320
+ cwd,
321
+ maxBuffer: 5 * 1024 * 5000,
322
+ });
323
+ exports.execute = execute;
324
+ const getGitHubEventPayload = () => {
325
+ if (!process.env.GITHUB_EVENT_PATH) {
326
+ return;
327
+ }
328
+ return JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, 'utf8'));
329
+ };
330
+ exports.getGitHubEventPayload = getGitHubEventPayload;
331
+ const isFile = (path) => {
332
+ try {
333
+ return (0, fs_1.statSync)(path).isFile();
334
+ }
335
+ catch (e) {
336
+ return false;
337
+ }
338
+ };
339
+ exports.isFile = isFile;
340
+ //# 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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"}
@@ -0,0 +1,19 @@
1
+ import * as t from 'typanion';
2
+ export declare const checkFile: (path: string) => {
3
+ empty: boolean;
4
+ exists: boolean;
5
+ };
6
+ /**
7
+ * Check if a string is a valid Datadog site.
8
+ *
9
+ * If the environment variable `DD_CI_BYPASS_SITE_VALIDATION` is
10
+ * set, then it will return `true`.
11
+ *
12
+ * @param site an optional string.
13
+ * @returns a boolean indicating if the provided site is valid a Datadog site.
14
+ */
15
+ export declare const isValidDatadogSite: (site?: string) => boolean;
16
+ export declare const checkAPIKeyOverride: (environmentAPIKey: string | undefined, configFileAPIKey: string | undefined, stdout: {
17
+ write: (message: string) => void;
18
+ }) => void;
19
+ export declare const isInteger: () => t.StrictValidator<unknown, number>;
@@ -0,0 +1,77 @@
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
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.isInteger = exports.checkAPIKeyOverride = exports.isValidDatadogSite = exports.checkFile = void 0;
30
+ const fs_1 = __importDefault(require("fs"));
31
+ const t = __importStar(require("typanion"));
32
+ const constants_1 = require("../constants");
33
+ const checkFile = (path) => {
34
+ try {
35
+ const stats = fs_1.default.statSync(path);
36
+ if (stats.size === 0) {
37
+ return { exists: true, empty: true };
38
+ }
39
+ }
40
+ catch (error) {
41
+ if (error.code === 'ENOENT') {
42
+ return { exists: false, empty: false };
43
+ }
44
+ // Other kind of error
45
+ throw error;
46
+ }
47
+ return { exists: true, empty: false };
48
+ };
49
+ exports.checkFile = checkFile;
50
+ /**
51
+ * Check if a string is a valid Datadog site.
52
+ *
53
+ * If the environment variable `DD_CI_BYPASS_SITE_VALIDATION` is
54
+ * set, then it will return `true`.
55
+ *
56
+ * @param site an optional string.
57
+ * @returns a boolean indicating if the provided site is valid a Datadog site.
58
+ */
59
+ const isValidDatadogSite = (site) => {
60
+ if (site === undefined) {
61
+ return false;
62
+ }
63
+ return !!process.env.DD_CI_BYPASS_SITE_VALIDATION || constants_1.DATADOG_SITES.includes(site.toLowerCase());
64
+ };
65
+ exports.isValidDatadogSite = isValidDatadogSite;
66
+ const renderDuplicateAPIKey = (environmentAPIKey) => {
67
+ return `API keys were specified both in a configuration file and in the environment.\nThe environment API key ending in ${environmentAPIKey.slice(-4)} will be used.\n`;
68
+ };
69
+ const checkAPIKeyOverride = (environmentAPIKey, configFileAPIKey, stdout) => {
70
+ if (configFileAPIKey && environmentAPIKey && configFileAPIKey !== environmentAPIKey) {
71
+ stdout.write(renderDuplicateAPIKey(environmentAPIKey));
72
+ }
73
+ };
74
+ exports.checkAPIKeyOverride = checkAPIKeyOverride;
75
+ const isInteger = () => t.cascade(t.isNumber(), t.isInteger());
76
+ exports.isInteger = isInteger;
77
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/helpers/validation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAmB;AAEnB,4CAA6B;AAE7B,4CAA0C;AAEnC,MAAM,SAAS,GAAwD,CAAC,IAAY,EAAE,EAAE;IAC7F,IAAI;QACF,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAA;SACnC;KACF;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,OAAO,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;SACrC;QACD,sBAAsB;QACtB,MAAM,KAAK,CAAA;KACZ;IAED,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;AACrC,CAAC,CAAA;AAfY,QAAA,SAAS,aAerB;AAED;;;;;;;;GAQG;AACI,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAW,EAAE;IAC3D,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,KAAK,CAAA;KACb;IAED,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,yBAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;AACjG,CAAC,CAAA;AANY,QAAA,kBAAkB,sBAM9B;AAED,MAAM,qBAAqB,GAAG,CAAC,iBAAyB,EAAE,EAAE;IAC1D,OAAO,mHAAmH,iBAAiB,CAAC,KAAK,CAC/I,CAAC,CAAC,CACH,kBAAkB,CAAA;AACrB,CAAC,CAAA;AAEM,MAAM,mBAAmB,GAAG,CACjC,iBAAqC,EACrC,gBAAoC,EACpC,MAA0C,EACpC,EAAE;IACR,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,gBAAgB,KAAK,iBAAiB,EAAE;QACnF,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,CAAA;KACvD;AACH,CAAC,CAAA;AARY,QAAA,mBAAmB,uBAQ/B;AAEM,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;AAAxD,QAAA,SAAS,aAA+C"}
@@ -0,0 +1 @@
1
+ export declare const cliVersion: string;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cliVersion = void 0;
4
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-var-requires
5
+ exports.cliVersion = require('../package.json').version;
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,0GAA0G;AAC7F,QAAA,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAiB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,12 @@
1
1
  {
2
2
  "name": "@datadog/datadog-ci-base",
3
- "version": "3.21.0",
3
+ "version": "3.21.1",
4
+ "description": "Base package for Datadog CI",
4
5
  "license": "Apache-2.0",
6
+ "keywords": [
7
+ "datadog",
8
+ "datadog-ci"
9
+ ],
5
10
  "homepage": "https://github.com/DataDog/datadog-ci/tree/master/packages/base",
6
11
  "repository": {
7
12
  "type": "git",
@@ -45,15 +50,16 @@
45
50
  "prepack": "yarn package:clean-dist"
46
51
  },
47
52
  "peerDependencies": {
48
- "@datadog/datadog-ci-plugin-aas": "3.21.0",
49
- "@datadog/datadog-ci-plugin-cloud-run": "3.21.0",
50
- "@datadog/datadog-ci-plugin-dora": "3.21.0",
51
- "@datadog/datadog-ci-plugin-gate": "0.1.0",
52
- "@datadog/datadog-ci-plugin-lambda": "3.21.0",
53
- "@datadog/datadog-ci-plugin-sarif": "3.21.0",
54
- "@datadog/datadog-ci-plugin-sbom": "3.21.0",
55
- "@datadog/datadog-ci-plugin-stepfunctions": "3.21.0",
56
- "@datadog/datadog-ci-plugin-synthetics": "3.21.0"
53
+ "@datadog/datadog-ci-plugin-aas": "3.21.1",
54
+ "@datadog/datadog-ci-plugin-cloud-run": "3.21.1",
55
+ "@datadog/datadog-ci-plugin-deployment": "3.20.1",
56
+ "@datadog/datadog-ci-plugin-dora": "3.21.1",
57
+ "@datadog/datadog-ci-plugin-gate": "0.1.1",
58
+ "@datadog/datadog-ci-plugin-lambda": "3.21.1",
59
+ "@datadog/datadog-ci-plugin-sarif": "3.21.1",
60
+ "@datadog/datadog-ci-plugin-sbom": "3.21.1",
61
+ "@datadog/datadog-ci-plugin-stepfunctions": "3.21.1",
62
+ "@datadog/datadog-ci-plugin-synthetics": "3.21.1"
57
63
  },
58
64
  "peerDependenciesMeta": {
59
65
  "@datadog/datadog-ci-plugin-aas": {
@@ -62,6 +68,9 @@
62
68
  "@datadog/datadog-ci-plugin-cloud-run": {
63
69
  "optional": true
64
70
  },
71
+ "@datadog/datadog-ci-plugin-deployment": {
72
+ "optional": true
73
+ },
65
74
  "@datadog/datadog-ci-plugin-dora": {
66
75
  "optional": true
67
76
  },