@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,15 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class SbomUploadCommand extends Command {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ protected fips: boolean;
6
+ protected fipsIgnoreError: boolean;
7
+ protected basePath: string;
8
+ protected serviceFromCli: string | undefined;
9
+ protected env: string;
10
+ protected tags: string[] | undefined;
11
+ protected gitPath: string | undefined;
12
+ protected debug: boolean | undefined;
13
+ protected noCiTags: boolean;
14
+ execute(): Promise<number | void>;
15
+ }
@@ -0,0 +1,46 @@
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.SbomUploadCommand = void 0;
13
+ const clipanion_1 = require("clipanion");
14
+ const plugin_1 = require("../../helpers/plugin");
15
+ class SbomUploadCommand extends clipanion_1.Command {
16
+ constructor() {
17
+ super(...arguments);
18
+ // BASE COMMAND START
19
+ this.fips = clipanion_1.Option.Boolean('--fips', false);
20
+ this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
21
+ // BASE COMMAND END
22
+ this.basePath = clipanion_1.Option.String();
23
+ this.serviceFromCli = clipanion_1.Option.String('--service');
24
+ this.env = clipanion_1.Option.String('--env', 'ci');
25
+ this.tags = clipanion_1.Option.Array('--tags');
26
+ this.gitPath = clipanion_1.Option.String('--git-repository');
27
+ this.debug = clipanion_1.Option.Boolean('--debug');
28
+ this.noCiTags = clipanion_1.Option.Boolean('--no-ci-tags', false);
29
+ }
30
+ execute() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ return (0, plugin_1.executePluginCommand)(this);
33
+ });
34
+ }
35
+ }
36
+ exports.SbomUploadCommand = SbomUploadCommand;
37
+ SbomUploadCommand.paths = [['sbom', 'upload']];
38
+ SbomUploadCommand.usage = clipanion_1.Command.Usage({
39
+ category: 'Static Analysis',
40
+ description: 'Upload SBOM files to Datadog.',
41
+ details: `
42
+ This command uploads SBOM files to Datadog for dependency tracking, vulnerability analysis, and compliance auditing.
43
+ `,
44
+ examples: [['Upload the SBOM file: sbom.json', 'datadog-ci sbom upload sbom.json']],
45
+ });
46
+ //# sourceMappingURL=upload-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-command.js","sourceRoot":"","sources":["../../../src/commands/sbom/upload-command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAyC;AAEzC,iDAAyD;AAEzD,MAAa,iBAAkB,SAAQ,mBAAO;IAA9C;;QAYE,qBAAqB;QACX,SAAI,GAAG,kBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACtC,oBAAe,GAAG,kBAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;QACxE,mBAAmB;QAET,aAAQ,GAAG,kBAAM,CAAC,MAAM,EAAE,CAAA;QAC1B,mBAAc,GAAG,kBAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAC3C,QAAG,GAAG,kBAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAClC,SAAI,GAAG,kBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC7B,YAAO,GAAG,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAC3C,UAAK,GAAG,kBAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACjC,aAAQ,GAAG,kBAAM,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IAK5D,CAAC;IAHc,OAAO;;YAClB,OAAO,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAA;QACnC,CAAC;KAAA;;AA3BH,8CA4BC;AA3Be,uBAAK,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,AAAvB,CAAuB;AAE5B,uBAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,iBAAiB;IAC3B,WAAW,EAAE,+BAA+B;IAC5C,OAAO,EAAE;;KAER;IACD,QAAQ,EAAE,CAAC,CAAC,iCAAiC,EAAE,kCAAkC,CAAC,CAAC;CACpF,CAAC,AAPiB,CAOjB"}
@@ -0,0 +1,15 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class InstrumentStepFunctionsCommand extends Command {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ protected dryRun: boolean;
6
+ protected environment: string | undefined;
7
+ protected forwarderArn: string | undefined;
8
+ protected service: string | undefined;
9
+ protected stepFunctionArns: string[] | undefined;
10
+ protected mergeStepFunctionAndLambdaTraces: boolean;
11
+ protected propagateUpstreamTrace: boolean;
12
+ protected fips: boolean;
13
+ protected fipsIgnoreError: boolean;
14
+ execute(): Promise<number | void>;
15
+ }
@@ -0,0 +1,55 @@
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.InstrumentStepFunctionsCommand = void 0;
13
+ const clipanion_1 = require("clipanion");
14
+ const plugin_1 = require("../../helpers/plugin");
15
+ class InstrumentStepFunctionsCommand extends clipanion_1.Command {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.dryRun = clipanion_1.Option.Boolean('-d,--dry-run', false);
19
+ this.environment = clipanion_1.Option.String('-e,--env');
20
+ this.forwarderArn = clipanion_1.Option.String('--forwarder');
21
+ this.service = clipanion_1.Option.String('--service');
22
+ this.stepFunctionArns = clipanion_1.Option.Array('-s,--step-function');
23
+ this.mergeStepFunctionAndLambdaTraces = clipanion_1.Option.Boolean('-mlt,--merge-lambda-traces,--merge-step-function-and-lambda-traces', false);
24
+ this.propagateUpstreamTrace = clipanion_1.Option.Boolean('--propagate-upstream-trace', false);
25
+ this.fips = clipanion_1.Option.Boolean('--fips', false);
26
+ this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
27
+ }
28
+ execute() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ return (0, plugin_1.executePluginCommand)(this);
31
+ });
32
+ }
33
+ }
34
+ exports.InstrumentStepFunctionsCommand = InstrumentStepFunctionsCommand;
35
+ InstrumentStepFunctionsCommand.paths = [['stepfunctions', 'instrument']];
36
+ InstrumentStepFunctionsCommand.usage = clipanion_1.Command.Usage({
37
+ category: 'Serverless',
38
+ description: 'Subscribe Step Function log groups to a Datadog Forwarder.',
39
+ details: '--step-function expects a Step Function ARN\n--forwarder expects a Lambda ARN',
40
+ examples: [
41
+ [
42
+ 'View and apply changes to subscribe a Step Function Log Group to a Datadog Forwarder',
43
+ 'datadog-ci stepfunctions instrument --step-function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction --forwarder arn:aws:lambda:us-east-1:000000000000:function:ExampleDatadogForwarder --env dev --service example-service',
44
+ ],
45
+ [
46
+ 'View changes to subscribe a Step Function Log Group to a Datadog Forwarder',
47
+ 'datadog-ci stepfunctions instrument --step-function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction --forwarder arn:aws:lambda:us-east-1:000000000000:function:ExampleDatadogForwarder --env dev --service example-service --dry-run',
48
+ ],
49
+ [
50
+ 'View and apply changes to subscribe multiple Step Function Log Groups to a Datadog Forwarder',
51
+ 'datadog-ci stepfunctions instrument --step-function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction1 --step-function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction2 --forwarder arn:aws:lambda:us-east-1:000000000000:function:ExampleDatadogForwarder --env dev --service example-service',
52
+ ],
53
+ ],
54
+ });
55
+ //# sourceMappingURL=instrument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrument.js","sourceRoot":"","sources":["../../../src/commands/stepfunctions/instrument.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAyC;AAEzC,iDAAyD;AAEzD,MAAa,8BAA+B,SAAQ,mBAAO;IAA3D;;QAuBY,WAAM,GAAG,kBAAM,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAC9C,gBAAW,GAAG,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACvC,iBAAY,GAAG,kBAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAC3C,YAAO,GAAG,kBAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACpC,qBAAgB,GAAG,kBAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACrD,qCAAgC,GAAG,kBAAM,CAAC,OAAO,CACzD,oEAAoE,EACpE,KAAK,CACN,CAAA;QACS,2BAAsB,GAAG,kBAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;QAE5E,SAAI,GAAG,kBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACtC,oBAAe,GAAG,kBAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;IAI1E,CAAC;IAHc,OAAO;;YAClB,OAAO,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAA;QACnC,CAAC;KAAA;;AAtCH,wEAuCC;AAtCe,oCAAK,GAAG,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,AAApC,CAAoC;AAEzC,oCAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,4DAA4D;IACzE,OAAO,EAAE,+EAA+E;IACxF,QAAQ,EAAE;QACR;YACE,sFAAsF;YACtF,mPAAmP;SACpP;QACD;YACE,4EAA4E;YAC5E,6PAA6P;SAC9P;QACD;YACE,8FAA8F;YAC9F,4UAA4U;SAC7U;KACF;CACF,CAAC,AAlBiB,CAkBjB"}
@@ -0,0 +1,14 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class UninstrumentStepFunctionsCommand extends Command {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ protected dryRun: boolean;
6
+ protected stepFunctionArns: string[] | undefined;
7
+ protected environment: string | undefined;
8
+ protected forwarderArn: string | undefined;
9
+ protected service: string | undefined;
10
+ protected mergeStepFunctionAndLambdaTraces: boolean;
11
+ protected fips: boolean;
12
+ protected fipsIgnoreError: boolean;
13
+ execute(): Promise<number | void>;
14
+ }
@@ -0,0 +1,56 @@
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.UninstrumentStepFunctionsCommand = void 0;
13
+ const clipanion_1 = require("clipanion");
14
+ const plugin_1 = require("../../helpers/plugin");
15
+ class UninstrumentStepFunctionsCommand extends clipanion_1.Command {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.dryRun = clipanion_1.Option.Boolean('-d,--dry-run', false);
19
+ this.stepFunctionArns = clipanion_1.Option.Array('-s,--step-function');
20
+ // The options below are to match what InstrumentStepFunctionsCommand has so that customers can switch from instrument to uninstrument.
21
+ // Lambda command adopts the same approach as well.
22
+ this.environment = clipanion_1.Option.String('-e,--env', { hidden: true });
23
+ this.forwarderArn = clipanion_1.Option.String('--forwarder', { hidden: true });
24
+ this.service = clipanion_1.Option.String('--service', { hidden: true });
25
+ this.mergeStepFunctionAndLambdaTraces = clipanion_1.Option.Boolean('-mlt,--merge-lambda-traces,--merge-step-function-and-lambda-traces', false, { hidden: true });
26
+ this.fips = clipanion_1.Option.Boolean('--fips', false);
27
+ this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
28
+ }
29
+ execute() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ return (0, plugin_1.executePluginCommand)(this);
32
+ });
33
+ }
34
+ }
35
+ exports.UninstrumentStepFunctionsCommand = UninstrumentStepFunctionsCommand;
36
+ UninstrumentStepFunctionsCommand.paths = [['stepfunctions', 'uninstrument']];
37
+ UninstrumentStepFunctionsCommand.usage = clipanion_1.Command.Usage({
38
+ category: 'Serverless',
39
+ description: 'Remove Step Function log groups subscription filter created by datadog-ci.',
40
+ details: '--stepfunction expects a Step Function ARN',
41
+ examples: [
42
+ [
43
+ 'View and apply changes to remove Step Functions log groups subscription filters created by datadog-ci',
44
+ 'datadog-ci stepfunctions uninstrument --step-function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
45
+ ],
46
+ [
47
+ 'View changes to remove Step Functions log groups subscription filters created by datadog-ci',
48
+ 'datadog-ci stepfunctions uninstrument --step-function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction --dry-run',
49
+ ],
50
+ [
51
+ 'View and apply changes to remove Step Functions log groups subscription filters created by datadog-ci',
52
+ 'datadog-ci stepfunctions uninstrument --step-function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction1 --step-function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction2',
53
+ ],
54
+ ],
55
+ });
56
+ //# sourceMappingURL=uninstrument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstrument.js","sourceRoot":"","sources":["../../../src/commands/stepfunctions/uninstrument.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAyC;AAEzC,iDAAyD;AAEzD,MAAa,gCAAiC,SAAQ,mBAAO;IAA7D;;QAuBY,WAAM,GAAG,kBAAM,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAC9C,qBAAgB,GAAG,kBAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAE/D,uIAAuI;QACvI,mDAAmD;QACzC,gBAAW,GAAG,kBAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;QACvD,iBAAY,GAAG,kBAAM,CAAC,MAAM,CAAC,aAAa,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;QAC3D,YAAO,GAAG,kBAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;QACpD,qCAAgC,GAAG,kBAAM,CAAC,OAAO,CACzD,oEAAoE,EACpE,KAAK,EACL,EAAC,MAAM,EAAE,IAAI,EAAC,CACf,CAAA;QAES,SAAI,GAAG,kBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACtC,oBAAe,GAAG,kBAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;IAI1E,CAAC;IAHc,OAAO;;YAClB,OAAO,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAA;QACnC,CAAC;KAAA;;AAzCH,4EA0CC;AAzCe,sCAAK,GAAG,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,AAAtC,CAAsC;AAE3C,sCAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,4EAA4E;IACzF,OAAO,EAAE,4CAA4C;IACrD,QAAQ,EAAE;QACR;YACE,uGAAuG;YACvG,8HAA8H;SAC/H;QACD;YACE,6FAA6F;YAC7F,wIAAwI;SACzI;QACD;YACE,uGAAuG;YACvG,uNAAuN;SACxN;KACF;CACF,CAAC,AAlBiB,CAkBjB"}
@@ -0,0 +1,16 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class DeployTestsCommand extends Command {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ protected apiKey: string | undefined;
6
+ protected appKey: string | undefined;
7
+ protected configPath: string | undefined;
8
+ protected datadogSite: string | undefined;
9
+ protected fips: boolean;
10
+ protected fipsIgnoreError: boolean;
11
+ files: string[] | undefined;
12
+ publicIds: string[] | undefined;
13
+ subdomain: string | undefined;
14
+ excludeFields: string[] | undefined;
15
+ execute(): Promise<number | void>;
16
+ }
@@ -0,0 +1,79 @@
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.DeployTestsCommand = void 0;
13
+ /* eslint-disable @typescript-eslint/member-ordering */
14
+ const clipanion_1 = require("clipanion");
15
+ const plugin_1 = require("../../helpers/plugin");
16
+ const utils_1 = require("../../helpers/utils");
17
+ const datadogDocsBaseUrl = 'https://docs.datadoghq.com';
18
+ // BASE COMMAND START
19
+ const $B1 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/account_management/api-app-keys`);
20
+ const $B2 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/continuous_testing/cicd_integrations/configuration#global-configuration-file`);
21
+ const $B3 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/getting_started/site/#access-the-datadog-site`);
22
+ // BASE COMMAND END
23
+ const $1 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/continuous_testing/cicd_integrations/configuration#test-files`);
24
+ class DeployTestsCommand extends clipanion_1.Command {
25
+ constructor() {
26
+ super(...arguments);
27
+ // BASE COMMAND START
28
+ this.apiKey = clipanion_1.Option.String('--apiKey', {
29
+ description: `Your Datadog API key. This key is ${$B1 `created in your Datadog organization`} and should be stored as a secret.`,
30
+ });
31
+ this.appKey = clipanion_1.Option.String('--appKey', {
32
+ description: `Your Datadog application key. This key is ${$B1 `created in your Datadog organization`} and should be stored as a secret.`,
33
+ });
34
+ this.configPath = clipanion_1.Option.String('--config', {
35
+ description: `The path to the ${$B2 `global configuration file`} that configures datadog-ci.`,
36
+ });
37
+ this.datadogSite = clipanion_1.Option.String('--datadogSite', {
38
+ description: `Your Datadog site. Possible values are listed ${$B3 `in this table`}.`,
39
+ });
40
+ this.fips = clipanion_1.Option.Boolean('--fips', false);
41
+ this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
42
+ // BASE COMMAND END
43
+ this.files = clipanion_1.Option.Array('-f,--files', {
44
+ description: `Glob patterns to detect Synthetic ${$1 `test configuration files`}}.`,
45
+ });
46
+ this.publicIds = clipanion_1.Option.Array('-p,--public-id', { description: 'Public IDs of Synthetic tests to deploy.' });
47
+ this.subdomain = clipanion_1.Option.String('--subdomain', {
48
+ description: 'The custom subdomain to access your Datadog organization. If your URL is `myorg.datadoghq.com`, the custom subdomain is `myorg`.',
49
+ });
50
+ this.excludeFields = clipanion_1.Option.Array('--exclude-field', {
51
+ description: 'Fields to exclude from partial updates, to avoid breaking Main Test Definitions with data specific to Local Test Definitions, like the Start URL. By default, all fields inside `config` are excluded.',
52
+ });
53
+ }
54
+ execute() {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ return (0, plugin_1.executePluginCommand)(this);
57
+ });
58
+ }
59
+ }
60
+ exports.DeployTestsCommand = DeployTestsCommand;
61
+ DeployTestsCommand.paths = [['synthetics', 'deploy-tests']];
62
+ DeployTestsCommand.usage = clipanion_1.Command.Usage({
63
+ category: 'Synthetics',
64
+ description: 'Deploy Local Test Definitions as Main Test Definitions in Datadog.',
65
+ details: `
66
+ This command deploys Local Test Definitions as Main Test Definitions in Datadog, usually when a feature branch is merged or during a deployment.
67
+ `,
68
+ examples: [
69
+ [
70
+ 'Explicitly specify the local test definitions to deploy',
71
+ 'datadog-ci synthetics deploy-tests --public-id pub-lic-id1 --public-id pub-lic-id2',
72
+ ],
73
+ [
74
+ 'Override the default glob pattern',
75
+ 'datadog-ci synthetics deploy-tests -f ./component-1/**/*.synthetics.json -f ./component-2/**/*.synthetics.json',
76
+ ],
77
+ ],
78
+ });
79
+ //# sourceMappingURL=deploy-tests-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-tests-command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/deploy-tests-command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAuD;AACvD,yCAAyC;AAEzC,iDAAyD;AACzD,+CAAoD;AAEpD,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;AAEvD,qBAAqB;AACrB,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAAC,GAAG,kBAAkB,kCAAkC,CAAC,CAAA;AACrF,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAC1B,GAAG,kBAAkB,+EAA+E,CACrG,CAAA;AACD,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAAC,GAAG,kBAAkB,gDAAgD,CAAC,CAAA;AACnG,mBAAmB;AAEnB,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,GAAG,kBAAkB,gEAAgE,CAAC,CAAA;AAElH,MAAa,kBAAmB,SAAQ,mBAAO;IAA/C;;QAqBE,qBAAqB;QACX,WAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,UAAU,EAAE;YAC3C,WAAW,EAAE,qCAAqC,GAAG,CAAA,sCAAsC,oCAAoC;SAChI,CAAC,CAAA;QACQ,WAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,UAAU,EAAE;YAC3C,WAAW,EAAE,6CAA6C,GAAG,CAAA,sCAAsC,oCAAoC;SACxI,CAAC,CAAA;QACQ,eAAU,GAAG,kBAAM,CAAC,MAAM,CAAC,UAAU,EAAE;YAC/C,WAAW,EAAE,mBAAmB,GAAG,CAAA,2BAA2B,8BAA8B;SAC7F,CAAC,CAAA;QACQ,gBAAW,GAAG,kBAAM,CAAC,MAAM,CAAC,eAAe,EAAE;YACrD,WAAW,EAAE,iDAAiD,GAAG,CAAA,eAAe,GAAG;SACpF,CAAC,CAAA;QAEQ,SAAI,GAAG,kBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACtC,oBAAe,GAAG,kBAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;QACxE,mBAAmB;QAEZ,UAAK,GAAG,kBAAM,CAAC,KAAK,CAAC,YAAY,EAAE;YACxC,WAAW,EAAE,qCAAqC,EAAE,CAAA,0BAA0B,IAAI;SACnF,CAAC,CAAA;QACK,cAAS,GAAG,kBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAE,0CAA0C,EAAC,CAAC,CAAA;QACrG,cAAS,GAAG,kBAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9C,WAAW,EACT,kIAAkI;SACrI,CAAC,CAAA;QACK,kBAAa,GAAG,kBAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACrD,WAAW,EACT,wMAAwM;SAC3M,CAAC,CAAA;IAKJ,CAAC;IAHc,OAAO;;YAClB,OAAO,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAA;QACnC,CAAC;KAAA;;AAtDH,gDAuDC;AAtDe,wBAAK,GAAG,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,AAAnC,CAAmC;AAExC,wBAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,oEAAoE;IACjF,OAAO,EAAE;;KAER;IACD,QAAQ,EAAE;QACR;YACE,yDAAyD;YACzD,oFAAoF;SACrF;QACD;YACE,mCAAmC;YACnC,gHAAgH;SACjH;KACF;CACF,CAAC,AAhBiB,CAgBjB"}
@@ -0,0 +1,15 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class ImportTestsCommand extends Command {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ protected apiKey: string | undefined;
6
+ protected appKey: string | undefined;
7
+ protected configPath: string | undefined;
8
+ protected datadogSite: string | undefined;
9
+ protected fips: boolean;
10
+ protected fipsIgnoreError: boolean;
11
+ files: string[] | undefined;
12
+ publicIds: string[] | undefined;
13
+ testSearchQuery: string | undefined;
14
+ execute(): Promise<number | void>;
15
+ }
@@ -0,0 +1,77 @@
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.ImportTestsCommand = void 0;
13
+ /* eslint-disable @typescript-eslint/member-ordering */
14
+ const clipanion_1 = require("clipanion");
15
+ const plugin_1 = require("../../helpers/plugin");
16
+ const utils_1 = require("../../helpers/utils");
17
+ const datadogDocsBaseUrl = 'https://docs.datadoghq.com';
18
+ const datadogAppBaseUrl = 'https://app.datadoghq.com';
19
+ // BASE COMMAND START
20
+ const $B1 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/account_management/api-app-keys`);
21
+ const $B2 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/continuous_testing/cicd_integrations/configuration#global-configuration-file`);
22
+ const $B3 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/getting_started/site/#access-the-datadog-site`);
23
+ // BASE COMMAND END
24
+ const $1 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/continuous_testing/cicd_integrations/configuration#test-files`);
25
+ const $2 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/synthetics/explore/#search`);
26
+ const $3 = (0, utils_1.makeTerminalLink)(`${datadogAppBaseUrl}/synthetics/tests`);
27
+ class ImportTestsCommand extends clipanion_1.Command {
28
+ constructor() {
29
+ super(...arguments);
30
+ // BASE COMMAND START
31
+ this.apiKey = clipanion_1.Option.String('--apiKey', {
32
+ description: `Your Datadog API key. This key is ${$B1 `created in your Datadog organization`} and should be stored as a secret.`,
33
+ });
34
+ this.appKey = clipanion_1.Option.String('--appKey', {
35
+ description: `Your Datadog application key. This key is ${$B1 `created in your Datadog organization`} and should be stored as a secret.`,
36
+ });
37
+ this.configPath = clipanion_1.Option.String('--config', {
38
+ description: `The path to the ${$B2 `global configuration file`} that configures datadog-ci.`,
39
+ });
40
+ this.datadogSite = clipanion_1.Option.String('--datadogSite', {
41
+ description: `Your Datadog site. Possible values are listed ${$B3 `in this table`}.`,
42
+ });
43
+ this.fips = clipanion_1.Option.Boolean('--fips', false);
44
+ this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
45
+ // BASE COMMAND END
46
+ // TODO: Let's not reuse `files` as it has a different meaning.
47
+ this.files = clipanion_1.Option.Array('-f,--files', {
48
+ description: `The path to the Synthetic ${$1 `test configuration file`} to which to append imported Local Test Definitions.`,
49
+ });
50
+ this.publicIds = clipanion_1.Option.Array('-p,--public-id', { description: 'Public IDs of Synthetic tests to import.' });
51
+ this.testSearchQuery = clipanion_1.Option.String('-s,--search', {
52
+ description: `Use a ${$2 `search query`} to select which Synthetic tests to import. Use the ${$3 `Synthetic Tests list page's search bar`} to craft your query, then copy and paste it.`,
53
+ });
54
+ }
55
+ execute() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ return (0, plugin_1.executePluginCommand)(this);
58
+ });
59
+ }
60
+ }
61
+ exports.ImportTestsCommand = ImportTestsCommand;
62
+ ImportTestsCommand.paths = [['synthetics', 'import-tests']];
63
+ ImportTestsCommand.usage = clipanion_1.Command.Usage({
64
+ category: 'Synthetics',
65
+ description: 'Import the Main Test Definition from a Datadog scheduled test as a Local Test Definition.',
66
+ details: `
67
+ This command imports a Main Test Definition from a Datadog scheduled test as a Local Test Definition to be used in local development.
68
+ `,
69
+ examples: [
70
+ [
71
+ 'Explicitly specify multiple tests to run',
72
+ 'datadog-ci synthetics import-tests --public-id pub-lic-id1 --public-id pub-lic-id2',
73
+ ],
74
+ ['Override the default glob pattern', 'datadog-ci synthetics import-tests -f test-file.synthetics.json'],
75
+ ],
76
+ });
77
+ //# sourceMappingURL=import-tests-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-tests-command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/import-tests-command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAuD;AACvD,yCAAyC;AAEzC,iDAAyD;AACzD,+CAAoD;AAEpD,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;AACvD,MAAM,iBAAiB,GAAG,2BAA2B,CAAA;AAErD,qBAAqB;AACrB,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAAC,GAAG,kBAAkB,kCAAkC,CAAC,CAAA;AACrF,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAC1B,GAAG,kBAAkB,+EAA+E,CACrG,CAAA;AACD,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAAC,GAAG,kBAAkB,gDAAgD,CAAC,CAAA;AACnG,mBAAmB;AAEnB,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,GAAG,kBAAkB,gEAAgE,CAAC,CAAA;AAClH,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,GAAG,kBAAkB,6BAA6B,CAAC,CAAA;AAC/E,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,GAAG,iBAAiB,mBAAmB,CAAC,CAAA;AAEpE,MAAa,kBAAmB,SAAQ,mBAAO;IAA/C;;QAkBE,qBAAqB;QACX,WAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,UAAU,EAAE;YAC3C,WAAW,EAAE,qCAAqC,GAAG,CAAA,sCAAsC,oCAAoC;SAChI,CAAC,CAAA;QACQ,WAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,UAAU,EAAE;YAC3C,WAAW,EAAE,6CAA6C,GAAG,CAAA,sCAAsC,oCAAoC;SACxI,CAAC,CAAA;QACQ,eAAU,GAAG,kBAAM,CAAC,MAAM,CAAC,UAAU,EAAE;YAC/C,WAAW,EAAE,mBAAmB,GAAG,CAAA,2BAA2B,8BAA8B;SAC7F,CAAC,CAAA;QACQ,gBAAW,GAAG,kBAAM,CAAC,MAAM,CAAC,eAAe,EAAE;YACrD,WAAW,EAAE,iDAAiD,GAAG,CAAA,eAAe,GAAG;SACpF,CAAC,CAAA;QAEQ,SAAI,GAAG,kBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACtC,oBAAe,GAAG,kBAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;QACxE,mBAAmB;QAEnB,+DAA+D;QACxD,UAAK,GAAG,kBAAM,CAAC,KAAK,CAAC,YAAY,EAAE;YACxC,WAAW,EAAE,6BAA6B,EAAE,CAAA,yBAAyB,sDAAsD;SAC5H,CAAC,CAAA;QACK,cAAS,GAAG,kBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAE,0CAA0C,EAAC,CAAC,CAAA;QACrG,oBAAe,GAAG,kBAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YACpD,WAAW,EAAE,SAAS,EAAE,CAAA,cAAc,uDAAuD,EAAE,CAAA,wCAAwC,+CAA+C;SACvL,CAAC,CAAA;IAKJ,CAAC;IAHc,OAAO;;YAClB,OAAO,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAA;QACnC,CAAC;KAAA;;AA/CH,gDAgDC;AA/Ce,wBAAK,GAAG,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,AAAnC,CAAmC;AAExC,wBAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,2FAA2F;IACxG,OAAO,EAAE;;KAER;IACD,QAAQ,EAAE;QACR;YACE,0CAA0C;YAC1C,oFAAoF;SACrF;QACD,CAAC,mCAAmC,EAAE,iEAAiE,CAAC;KACzG;CACF,CAAC,AAbiB,CAajB"}
@@ -0,0 +1,28 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class RunTestsCommand extends Command {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ jUnitReport: string | undefined;
6
+ runName: string | undefined;
7
+ protected apiKey: string | undefined;
8
+ protected appKey: string | undefined;
9
+ protected configPath: string | undefined;
10
+ protected datadogSite: string | undefined;
11
+ protected fips: boolean;
12
+ protected fipsIgnoreError: boolean;
13
+ batchTimeout: number | undefined;
14
+ failOnCriticalErrors: boolean | undefined;
15
+ failOnMissingTests: boolean | undefined;
16
+ failOnTimeout: boolean | undefined;
17
+ files: string[] | undefined;
18
+ mobileApplicationVersion: string | undefined;
19
+ mobileApplicationVersionFilePath: string | undefined;
20
+ overrides: string[] | undefined;
21
+ publicIds: string[] | undefined;
22
+ selectiveRerun: boolean | undefined;
23
+ subdomain: string | undefined;
24
+ testSearchQuery: string | undefined;
25
+ tunnel: boolean | undefined;
26
+ buildCommand: string | undefined;
27
+ execute(): Promise<number | void>;
28
+ }
@@ -0,0 +1,158 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.RunTestsCommand = void 0;
36
+ /* eslint-disable @typescript-eslint/member-ordering */
37
+ const clipanion_1 = require("clipanion");
38
+ const plugin_1 = require("../../helpers/plugin");
39
+ const utils_1 = require("../../helpers/utils");
40
+ const validation = __importStar(require("../../helpers/validation"));
41
+ const datadogDocsBaseUrl = 'https://docs.datadoghq.com';
42
+ const datadogAppBaseUrl = 'https://app.datadoghq.com';
43
+ // BASE COMMAND START
44
+ const $B1 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/account_management/api-app-keys`);
45
+ const $B2 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/continuous_testing/cicd_integrations/configuration#global-configuration-file`);
46
+ const $B3 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/getting_started/site/#access-the-datadog-site`);
47
+ // BASE COMMAND END
48
+ const $1 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/continuous_testing/cicd_integrations/configuration#test-files`);
49
+ const $2 = (0, utils_1.makeTerminalLink)(`${datadogAppBaseUrl}/synthetics/settings/continuous-testing`);
50
+ const $3 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/synthetics/explore/#search`);
51
+ const $4 = (0, utils_1.makeTerminalLink)(`${datadogAppBaseUrl}/synthetics/tests`);
52
+ const $5 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/continuous_testing/environments/proxy_firewall_vpn#what-is-the-testing-tunnel`);
53
+ const $6 = (0, utils_1.makeTerminalLink)(`${datadogDocsBaseUrl}/synthetics/mobile_app_testing/`);
54
+ class RunTestsCommand extends clipanion_1.Command {
55
+ constructor() {
56
+ super(...arguments);
57
+ // JUnit options
58
+ this.jUnitReport = clipanion_1.Option.String('-j,--jUnitReport', {
59
+ description: 'The filename for a JUnit report if you want to generate one.',
60
+ });
61
+ this.runName = clipanion_1.Option.String('-n,--runName', {
62
+ description: 'A name for this run, which will be included in the JUnit report.',
63
+ });
64
+ // BASE COMMAND START
65
+ this.apiKey = clipanion_1.Option.String('--apiKey', {
66
+ description: `Your Datadog API key. This key is ${$B1 `created in your Datadog organization`} and should be stored as a secret.`,
67
+ });
68
+ this.appKey = clipanion_1.Option.String('--appKey', {
69
+ description: `Your Datadog application key. This key is ${$B1 `created in your Datadog organization`} and should be stored as a secret.`,
70
+ });
71
+ this.configPath = clipanion_1.Option.String('--config', {
72
+ description: `The path to the ${$B2 `global configuration file`} that configures datadog-ci.`,
73
+ });
74
+ this.datadogSite = clipanion_1.Option.String('--datadogSite', {
75
+ description: `Your Datadog site. Possible values are listed ${$B3 `in this table`}.`,
76
+ });
77
+ this.fips = clipanion_1.Option.Boolean('--fips', false);
78
+ this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
79
+ // BASE COMMAND END
80
+ this.batchTimeout = clipanion_1.Option.String('--batchTimeout', {
81
+ description: 'The duration in milliseconds after which the CI batch fails as timed out. This does not affect the outcome of a test run that already started.',
82
+ validator: validation.isInteger(),
83
+ });
84
+ this.failOnCriticalErrors = clipanion_1.Option.Boolean('--failOnCriticalErrors', {
85
+ description: 'Fail the CI job if a critical error that is typically transient occurs, such as rate limits, authentication failures, or Datadog infrastructure issues.',
86
+ });
87
+ this.failOnMissingTests = clipanion_1.Option.Boolean('--failOnMissingTests', {
88
+ description: `Fail the CI job if the list of tests to run is empty or if some explicitly listed tests are missing.`,
89
+ });
90
+ this.failOnTimeout = clipanion_1.Option.Boolean('--failOnTimeout', {
91
+ description: 'A boolean flag that fails the CI job if at least one test exceeds the default test timeout.',
92
+ });
93
+ this.files = clipanion_1.Option.Array('-f,--files', {
94
+ description: `Glob patterns to detect Synthetic ${$1 `test configuration files`}}.`,
95
+ });
96
+ this.mobileApplicationVersion = clipanion_1.Option.String('--mobileApplicationVersion', {
97
+ description: `Override the mobile application version for ${$6 `Synthetic mobile application tests`}. The version must be uploaded and available within Datadog.`,
98
+ });
99
+ this.mobileApplicationVersionFilePath = clipanion_1.Option.String('--mobileApp,--mobileApplicationVersionFilePath', {
100
+ description: `Override the mobile application version for ${$6 `Synthetic mobile application tests`} with a local or recently built application.`,
101
+ });
102
+ this.overrides = clipanion_1.Option.Array('--override', {
103
+ description: 'Override specific test properties.',
104
+ });
105
+ this.publicIds = clipanion_1.Option.Array('-p,--public-id', {
106
+ description: `Public IDs of Synthetic tests to run. If no value is provided, tests are discovered in Synthetic ${$1 `test configuration files`}.`,
107
+ });
108
+ this.selectiveRerun = clipanion_1.Option.Boolean('--selectiveRerun', {
109
+ description: `Whether to only rerun failed tests. If a test has already passed for a given commit, it will not be rerun in subsequent CI batches. By default, your ${$2 `organization's default setting`} is used. Set it to \`false\` to force full runs when your configuration enables it by default.`,
110
+ });
111
+ this.subdomain = clipanion_1.Option.String('--subdomain', {
112
+ description: 'The custom subdomain to access your Datadog organization. If your URL is `myorg.datadoghq.com`, the custom subdomain is `myorg`.',
113
+ });
114
+ this.testSearchQuery = clipanion_1.Option.String('-s,--search', {
115
+ description: `Use a ${$3 `search query`} to select which Synthetic tests to run. Use the ${$4 `Synthetic Tests list page's search bar`} to craft your query, then copy and paste it.`,
116
+ });
117
+ this.tunnel = clipanion_1.Option.Boolean('-t,--tunnel', {
118
+ description: `Use the ${$5 `Continuous Testing tunnel`} to launch tests against internal environments.`,
119
+ });
120
+ this.buildCommand = clipanion_1.Option.String('--buildCommand', {
121
+ description: 'The build command to generate the assets to run the tests against.',
122
+ });
123
+ }
124
+ execute() {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ return (0, plugin_1.executePluginCommand)(this);
127
+ });
128
+ }
129
+ }
130
+ exports.RunTestsCommand = RunTestsCommand;
131
+ RunTestsCommand.paths = [
132
+ ['synthetics', 'run-tests'],
133
+ ['synthetics', 'build-and-test'],
134
+ ];
135
+ RunTestsCommand.usage = clipanion_1.Command.Usage({
136
+ category: 'Synthetics',
137
+ description: 'Run Synthetic tests with Datadog.',
138
+ details: `
139
+ This command will run Synthetic tests with Datadog, wait for the results and report a summary.\n
140
+ https://docs.datadoghq.com/continuous_testing/cicd_integrations
141
+ `,
142
+ examples: [
143
+ [
144
+ 'Explicitly specify multiple tests to run',
145
+ 'datadog-ci synthetics run-tests --public-id pub-lic-id1 --public-id pub-lic-id2',
146
+ ],
147
+ ['Discover tests with a search query', "datadog-ci synthetics run-tests --search 'tag:e2e-tests'"],
148
+ [
149
+ 'Override the default glob pattern to group the tests in suites',
150
+ 'datadog-ci synthetics run-tests -f ./component-1/**/*.synthetics.json -f ./component-2/**/*.synthetics.json',
151
+ ],
152
+ [
153
+ 'Override existing or inject new local and global variables in tests',
154
+ 'datadog-ci synthetics run-tests -f ./component-1/**/*.synthetics.json --override variables.NAME=VALUE',
155
+ ],
156
+ ],
157
+ });
158
+ //# sourceMappingURL=run-tests-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-tests-command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/run-tests-command.ts"],"names":[],"mappings":"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"}