@copado/agentia-cli 0.29.0-alpha.0 → 0.31.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +918 -54
- package/dist/commands/auth/get.d.ts +2 -0
- package/dist/commands/auth/get.js +13 -2
- package/dist/commands/auth/get.js.map +1 -1
- package/dist/commands/auth/set.d.ts +6 -0
- package/dist/commands/auth/set.js +43 -4
- package/dist/commands/auth/set.js.map +1 -1
- package/dist/commands/testing/build/list.d.ts +16 -0
- package/dist/commands/testing/build/list.js +47 -0
- package/dist/commands/testing/build/list.js.map +1 -0
- package/dist/commands/testing/build/logs.d.ts +21 -0
- package/dist/commands/testing/build/logs.js +42 -0
- package/dist/commands/testing/build/logs.js.map +1 -0
- package/dist/commands/testing/build/run.d.ts +19 -0
- package/dist/commands/testing/build/run.js +39 -0
- package/dist/commands/testing/build/run.js.map +1 -0
- package/dist/commands/testing/create.d.ts +18 -0
- package/dist/commands/testing/create.js +46 -0
- package/dist/commands/testing/create.js.map +1 -0
- package/dist/commands/testing/job/create.d.ts +18 -0
- package/dist/commands/testing/job/create.js +46 -0
- package/dist/commands/testing/job/create.js.map +1 -0
- package/dist/commands/testing/job/download.d.ts +22 -0
- package/dist/commands/testing/job/download.js +56 -0
- package/dist/commands/testing/job/download.js.map +1 -0
- package/dist/commands/testing/job/files.d.ts +19 -0
- package/dist/commands/testing/job/files.js +35 -0
- package/dist/commands/testing/job/files.js.map +1 -0
- package/dist/commands/testing/job/list.d.ts +14 -0
- package/dist/commands/testing/job/list.js +32 -0
- package/dist/commands/testing/job/list.js.map +1 -0
- package/dist/commands/testing/job/upload.d.ts +29 -0
- package/dist/commands/testing/job/upload.js +57 -0
- package/dist/commands/testing/job/upload.js.map +1 -0
- package/dist/commands/testing/logs.d.ts +21 -0
- package/dist/commands/testing/logs.js +42 -0
- package/dist/commands/testing/logs.js.map +1 -0
- package/dist/commands/testing/project/create.d.ts +14 -0
- package/dist/commands/testing/project/create.js +36 -0
- package/dist/commands/testing/project/create.js.map +1 -0
- package/dist/commands/testing/project/list.d.ts +13 -0
- package/dist/commands/testing/project/list.js +31 -0
- package/dist/commands/testing/project/list.js.map +1 -0
- package/dist/commands/testing/robot/create.d.ts +19 -0
- package/dist/commands/testing/robot/create.js +60 -0
- package/dist/commands/testing/robot/create.js.map +1 -0
- package/dist/commands/testing/robot/list.d.ts +13 -0
- package/dist/commands/testing/robot/list.js +28 -0
- package/dist/commands/testing/robot/list.js.map +1 -0
- package/dist/commands/testing/run.d.ts +19 -0
- package/dist/commands/testing/run.js +32 -0
- package/dist/commands/testing/run.js.map +1 -0
- package/dist/commands/testing/status.d.ts +16 -0
- package/dist/commands/testing/status.js +47 -0
- package/dist/commands/testing/status.js.map +1 -0
- package/dist/commands/testing/test/create.d.ts +1 -0
- package/dist/commands/testing/test/create.js +2 -0
- package/dist/commands/testing/test/create.js.map +1 -0
- package/dist/commands/testing/test/logs.d.ts +1 -0
- package/dist/commands/testing/test/logs.js +2 -0
- package/dist/commands/testing/test/logs.js.map +1 -0
- package/dist/commands/testing/test/run.d.ts +1 -0
- package/dist/commands/testing/test/run.js +2 -0
- package/dist/commands/testing/test/run.js.map +1 -0
- package/dist/commands/testing/test/status.d.ts +1 -0
- package/dist/commands/testing/test/status.js +2 -0
- package/dist/commands/testing/test/status.js.map +1 -0
- package/dist/commands/testing/test/update.d.ts +1 -0
- package/dist/commands/testing/test/update.js +2 -0
- package/dist/commands/testing/test/update.js.map +1 -0
- package/dist/commands/testing/update.d.ts +29 -0
- package/dist/commands/testing/update.js +57 -0
- package/dist/commands/testing/update.js.map +1 -0
- package/dist/commands/testing/variable/create.d.ts +20 -0
- package/dist/commands/testing/variable/create.js +65 -0
- package/dist/commands/testing/variable/create.js.map +1 -0
- package/dist/commands/testing/variable/delete.d.ts +19 -0
- package/dist/commands/testing/variable/delete.js +30 -0
- package/dist/commands/testing/variable/delete.js.map +1 -0
- package/dist/commands/testing/variable/list.d.ts +15 -0
- package/dist/commands/testing/variable/list.js +40 -0
- package/dist/commands/testing/variable/list.js.map +1 -0
- package/dist/lib/credential-store.d.ts +4 -0
- package/dist/lib/credential-store.js +14 -0
- package/dist/lib/credential-store.js.map +1 -1
- package/dist/lib/mcp/testing-tools.d.ts +144 -0
- package/dist/lib/mcp/testing-tools.js +366 -0
- package/dist/lib/mcp/testing-tools.js.map +1 -0
- package/dist/lib/mcp/tools.d.ts +268 -0
- package/dist/lib/mcp/tools.js +3 -0
- package/dist/lib/mcp/tools.js.map +1 -1
- package/dist/lib/testing-config.d.ts +17 -0
- package/dist/lib/testing-config.js +68 -0
- package/dist/lib/testing-config.js.map +1 -0
- package/dist/lib/testing-flags.d.ts +33 -0
- package/dist/lib/testing-flags.js +70 -0
- package/dist/lib/testing-flags.js.map +1 -0
- package/dist/lib/testing-gateway.d.ts +33 -0
- package/dist/lib/testing-gateway.js +161 -0
- package/dist/lib/testing-gateway.js.map +1 -0
- package/dist/lib/testing-operations.d.ts +99 -0
- package/dist/lib/testing-operations.js +268 -0
- package/dist/lib/testing-operations.js.map +1 -0
- package/dist/lib/testing-types.d.ts +138 -0
- package/dist/lib/testing-types.js +190 -0
- package/dist/lib/testing-types.js.map +1 -0
- package/oclif.manifest.json +2323 -85
- package/package.json +4 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
3
|
+
import { testingConnectionFlags, testingConnectionOptions, testingProjectFlag } from '../../lib/testing-flags.js';
|
|
4
|
+
import { runTestingBuild } from '../../lib/testing-operations.js';
|
|
5
|
+
import { formatTestingRecord } from '../../lib/testing-types.js';
|
|
6
|
+
export default class TestingRun extends AgentiaCommand {
|
|
7
|
+
static args = {
|
|
8
|
+
id: Args.integer({
|
|
9
|
+
description: 'CRT job/test ID to run.',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static description = 'Run a Copado Robotic Testing test';
|
|
14
|
+
static examples = [
|
|
15
|
+
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id>',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --json',
|
|
17
|
+
];
|
|
18
|
+
static flags = {
|
|
19
|
+
...testingConnectionFlags,
|
|
20
|
+
...testingProjectFlag,
|
|
21
|
+
};
|
|
22
|
+
async run() {
|
|
23
|
+
const { args, flags } = await this.parse(TestingRun);
|
|
24
|
+
const result = await this.withSpinner('Running testing test', () => runTestingBuild({ ...testingConnectionOptions(flags), jobId: args.id, projectId: flags.project }));
|
|
25
|
+
this.display(() => {
|
|
26
|
+
this.log('Testing run started');
|
|
27
|
+
this.log(formatTestingRecord({ build: result.build, jobId: result.jobId, projectId: result.projectId }));
|
|
28
|
+
});
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/testing/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,sBAAsB,EAAE,wBAAwB,EAAE,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AAC/G,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAC,mBAAmB,EAA6B,MAAM,4BAA4B,CAAA;AAE1F,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,cAAc;IACpD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;YACf,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,mCAAmC,CAAA;IACjE,MAAM,CAAU,QAAQ,GAAG;QACzB,qEAAqE;QACrE,4EAA4E;KAC7E,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;KACtB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,EAAE,CACjE,eAAe,CAAC,EAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,CAChG,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;YAC/B,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAC,CAAC,CAAC,CAAA;QACxG,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { type TestingBuild } from '../../lib/testing-types.js';
|
|
3
|
+
export default class TestingStatus extends AgentiaCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
job: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
'result-size': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
status: import("@oclif/core/interfaces").OptionFlag<"failed" | "aborted" | "executing" | "finished" | "queued" | "succeeded" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
org: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
pat: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<TestingBuild[]>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
3
|
+
import { testingConnectionFlags, testingConnectionOptions, testingProjectFlag } from '../../lib/testing-flags.js';
|
|
4
|
+
import { listTestingBuilds } from '../../lib/testing-operations.js';
|
|
5
|
+
import { formatTestingTable, TESTING_BUILD_STATUSES } from '../../lib/testing-types.js';
|
|
6
|
+
export default class TestingStatus extends AgentiaCommand {
|
|
7
|
+
static description = 'List Copado Robotic Testing run status';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> <%= command.id %> --project <project-id>',
|
|
10
|
+
'<%= config.bin %> <%= command.id %> --project <project-id> --job <job-id> --status executing --json',
|
|
11
|
+
];
|
|
12
|
+
static flags = {
|
|
13
|
+
...testingConnectionFlags,
|
|
14
|
+
...testingProjectFlag,
|
|
15
|
+
job: Flags.integer({
|
|
16
|
+
description: 'Limit status to one CRT job/test ID.',
|
|
17
|
+
}),
|
|
18
|
+
'result-size': Flags.option({
|
|
19
|
+
default: 'compact',
|
|
20
|
+
description: 'CRT build result size.',
|
|
21
|
+
options: ['compact'],
|
|
22
|
+
})(),
|
|
23
|
+
status: Flags.option({
|
|
24
|
+
description: 'Build status filter.',
|
|
25
|
+
options: [...TESTING_BUILD_STATUSES],
|
|
26
|
+
})(),
|
|
27
|
+
};
|
|
28
|
+
async run() {
|
|
29
|
+
const { flags } = await this.parse(TestingStatus);
|
|
30
|
+
const builds = await this.withSpinner('Fetching testing run status', () => listTestingBuilds({
|
|
31
|
+
...testingConnectionOptions(flags),
|
|
32
|
+
jobId: flags.job,
|
|
33
|
+
projectId: flags.project,
|
|
34
|
+
resultSize: flags['result-size'],
|
|
35
|
+
status: flags.status,
|
|
36
|
+
}));
|
|
37
|
+
this.display(() => {
|
|
38
|
+
if (builds.length === 0) {
|
|
39
|
+
this.log('No testing runs found.');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.log(formatTestingTable(builds));
|
|
43
|
+
});
|
|
44
|
+
return builds;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/testing/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,sBAAsB,EAAE,wBAAwB,EAAE,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AAC/G,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAE,sBAAsB,EAA6C,MAAM,4BAA4B,CAAA;AAEjI,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACvD,MAAM,CAAU,WAAW,GAAG,wCAAwC,CAAA;IACtE,MAAM,CAAU,QAAQ,GAAG;QACzB,4DAA4D;QAC5D,qGAAqG;KACtG,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EAAE,sCAAsC;SACpD,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC,EAAE;QACJ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;SACrC,CAAC,EAAE;KACL,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,6BAA6B,EAAE,GAAG,EAAE,CACxE,iBAAiB,CAAC;YAChB,GAAG,wBAAwB,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,KAAK,CAAC,GAAG;YAChB,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,UAAU,EAAE,KAAK,CAAC,aAAa,CAAc;YAC7C,MAAM,EAAE,KAAK,CAAC,MAAwC;SACvD,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;gBAClC,OAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '../create.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/testing/test/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '../logs.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../src/commands/testing/test/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '../run.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/testing/test/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '../status.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/commands/testing/test/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '../update.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/testing/test/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { type TestingFileOperation } from '../../lib/testing-types.js';
|
|
3
|
+
export type TestingUpdateResult = {
|
|
4
|
+
operations: TestingFileOperation[];
|
|
5
|
+
response: Record<string, unknown>;
|
|
6
|
+
};
|
|
7
|
+
export default class TestingUpdate extends AgentiaCommand {
|
|
8
|
+
static args: {
|
|
9
|
+
id: import("@oclif/core/interfaces").Arg<number, {
|
|
10
|
+
max?: number;
|
|
11
|
+
min?: number;
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
static description: string;
|
|
15
|
+
static examples: string[];
|
|
16
|
+
static flags: {
|
|
17
|
+
'author-email': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
'author-name': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
+
add: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
remove: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
replace: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
branch: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
|
+
project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
24
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
25
|
+
org: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
26
|
+
pat: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
27
|
+
};
|
|
28
|
+
run(): Promise<TestingUpdateResult>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
3
|
+
import { testingBranchFlag, testingConnectionFlags, testingConnectionOptions, testingProjectFlag, testingUploadOperationFlags, } from '../../lib/testing-flags.js';
|
|
4
|
+
import { buildFileOperationsFromSpecs, DEFAULT_TESTING_AUTHOR, uploadTestingJobFiles } from '../../lib/testing-operations.js';
|
|
5
|
+
import { formatTestingRecord } from '../../lib/testing-types.js';
|
|
6
|
+
export default class TestingUpdate extends AgentiaCommand {
|
|
7
|
+
static args = {
|
|
8
|
+
id: Args.integer({
|
|
9
|
+
description: 'CRT job/test ID.',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static description = 'Update a Copado Robotic Testing test by uploading file operations';
|
|
14
|
+
static examples = [
|
|
15
|
+
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --replace tests.robot',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --add new.robot --remove old.robot --json',
|
|
17
|
+
];
|
|
18
|
+
static flags = {
|
|
19
|
+
...testingConnectionFlags,
|
|
20
|
+
...testingProjectFlag,
|
|
21
|
+
...testingBranchFlag,
|
|
22
|
+
...testingUploadOperationFlags,
|
|
23
|
+
'author-email': Flags.string({
|
|
24
|
+
default: DEFAULT_TESTING_AUTHOR.email,
|
|
25
|
+
description: 'Author email for CRT file history.',
|
|
26
|
+
}),
|
|
27
|
+
'author-name': Flags.string({
|
|
28
|
+
default: DEFAULT_TESTING_AUTHOR.name,
|
|
29
|
+
description: 'Author name for CRT file history.',
|
|
30
|
+
}),
|
|
31
|
+
};
|
|
32
|
+
async run() {
|
|
33
|
+
const { args, flags } = await this.parse(TestingUpdate);
|
|
34
|
+
const operations = buildFileOperationsFromSpecs({
|
|
35
|
+
add: flags.add,
|
|
36
|
+
remove: flags.remove,
|
|
37
|
+
replace: flags.replace,
|
|
38
|
+
});
|
|
39
|
+
if (operations.length === 0) {
|
|
40
|
+
this.error('Provide at least one of --add, --replace, or --remove.', { exit: 2 });
|
|
41
|
+
}
|
|
42
|
+
const result = await this.withSpinner('Updating testing test', () => uploadTestingJobFiles({
|
|
43
|
+
...testingConnectionOptions(flags),
|
|
44
|
+
author: { email: flags['author-email'], name: flags['author-name'] },
|
|
45
|
+
branch: flags.branch,
|
|
46
|
+
jobId: args.id,
|
|
47
|
+
operations,
|
|
48
|
+
projectId: flags.project,
|
|
49
|
+
}));
|
|
50
|
+
this.display(() => {
|
|
51
|
+
this.log(`Testing test updated with ${operations.length} file operation(s).`);
|
|
52
|
+
this.log(formatTestingRecord(result.response));
|
|
53
|
+
});
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/testing/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAC,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,iCAAiC,CAAA;AAC3H,OAAO,EAAC,mBAAmB,EAA4B,MAAM,4BAA4B,CAAA;AAOzF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACvD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;YACf,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,mEAAmE,CAAA;IACjG,MAAM,CAAU,QAAQ,GAAG;QACzB,2FAA2F;QAC3F,+GAA+G;KAChH,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,GAAG,iBAAiB;QACpB,GAAG,2BAA2B;QAC9B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC;YAC3B,OAAO,EAAE,sBAAsB,CAAC,KAAK;YACrC,WAAW,EAAE,oCAAoC;SAClD,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,sBAAsB,CAAC,IAAI;YACpC,WAAW,EAAE,mCAAmC;SACjD,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACrD,MAAM,UAAU,GAAG,4BAA4B,CAAC;YAC9C,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAA;QAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,wDAAwD,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAClE,qBAAqB,CAAC;YACpB,GAAG,wBAAwB,CAAC,KAAK,CAAC;YAClC,MAAM,EAAE,EAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,EAAC;YAClE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,IAAI,CAAC,EAAE;YACd,UAAU;YACV,SAAS,EAAE,KAAK,CAAC,OAAO;SACzB,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,6BAA6B,UAAU,CAAC,MAAM,qBAAqB,CAAC,CAAA;YAC7E,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
export default class TestingVariableCreate extends AgentiaCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
job: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
key: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
robot: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
sensitive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
type: import("@oclif/core/interfaces").OptionFlag<"clp" | "dataset" | "secret" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
'user-specific': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
value: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
org: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
pat: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
};
|
|
19
|
+
run(): Promise<unknown>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
+
import { testingConnectionFlags, testingConnectionOptions, testingProjectFlag, } from '../../../lib/testing-flags.js';
|
|
4
|
+
import { createTestingVariable } from '../../../lib/testing-operations.js';
|
|
5
|
+
import { formatTestingRecord, TESTING_VARIABLE_TYPES } from '../../../lib/testing-types.js';
|
|
6
|
+
export default class TestingVariableCreate extends AgentiaCommand {
|
|
7
|
+
static description = 'Create a Copado Robotic Testing variable/secret';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> <%= command.id %> --project <project-id> --key BASE_URL --value https://example.com',
|
|
10
|
+
'<%= config.bin %> <%= command.id %> --project <project-id> --key TOKEN --value secret --sensitive --json',
|
|
11
|
+
];
|
|
12
|
+
static flags = {
|
|
13
|
+
...testingConnectionFlags,
|
|
14
|
+
...testingProjectFlag,
|
|
15
|
+
description: Flags.string({
|
|
16
|
+
description: 'Variable description.',
|
|
17
|
+
}),
|
|
18
|
+
job: Flags.integer({
|
|
19
|
+
description: 'Scope the variable to a CRT job/test ID.',
|
|
20
|
+
}),
|
|
21
|
+
key: Flags.string({
|
|
22
|
+
description: 'Variable key.',
|
|
23
|
+
required: true,
|
|
24
|
+
}),
|
|
25
|
+
robot: Flags.integer({
|
|
26
|
+
description: 'Scope the variable to a CRT robot ID.',
|
|
27
|
+
}),
|
|
28
|
+
sensitive: Flags.boolean({
|
|
29
|
+
default: false,
|
|
30
|
+
description: 'Mark the variable as sensitive.',
|
|
31
|
+
}),
|
|
32
|
+
type: Flags.option({
|
|
33
|
+
description: 'CRT variable type.',
|
|
34
|
+
options: [...TESTING_VARIABLE_TYPES],
|
|
35
|
+
})(),
|
|
36
|
+
'user-specific': Flags.boolean({
|
|
37
|
+
default: false,
|
|
38
|
+
description: 'Create a user-specific variable.',
|
|
39
|
+
}),
|
|
40
|
+
value: Flags.string({
|
|
41
|
+
description: 'Variable value. Avoid this flag for secrets if shell history is a concern.',
|
|
42
|
+
}),
|
|
43
|
+
};
|
|
44
|
+
async run() {
|
|
45
|
+
const { flags } = await this.parse(TestingVariableCreate);
|
|
46
|
+
const result = await this.withSpinner('Creating testing variable', () => createTestingVariable({
|
|
47
|
+
...testingConnectionOptions(flags),
|
|
48
|
+
description: flags.description,
|
|
49
|
+
jobId: flags.job,
|
|
50
|
+
key: flags.key,
|
|
51
|
+
projectId: flags.project,
|
|
52
|
+
robotId: flags.robot,
|
|
53
|
+
sensitive: flags.sensitive,
|
|
54
|
+
type: flags.type,
|
|
55
|
+
userSpecific: flags['user-specific'],
|
|
56
|
+
value: flags.value,
|
|
57
|
+
}));
|
|
58
|
+
this.display(() => {
|
|
59
|
+
this.log('Testing variable created');
|
|
60
|
+
this.log(formatTestingRecord(result));
|
|
61
|
+
});
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/testing/variable/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAC,mBAAmB,EAAE,sBAAsB,EAA2B,MAAM,+BAA+B,CAAA;AAEnH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,cAAc;IAC/D,MAAM,CAAU,WAAW,GAAG,iDAAiD,CAAA;IAC/E,MAAM,CAAU,QAAQ,GAAG;QACzB,uGAAuG;QACvG,0GAA0G;KAC3G,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,uBAAuB;SACrC,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EAAE,0CAA0C;SACxD,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,uCAAuC;SACrD,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,iCAAiC;SAC/C,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;SACrC,CAAC,EAAE;QACJ,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,kCAAkC;SAChD,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,4EAA4E;SAC1F,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE,GAAG,EAAE,CACtE,qBAAqB,CAAC;YACpB,GAAG,wBAAwB,CAAC,KAAK,CAAC;YAClC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,GAAG;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,OAAO,EAAE,KAAK,CAAC,KAAK;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAuC;YACnD,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC;YACpC,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;YACpC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAiC,CAAC,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
export type TestingVariableDeleteResult = {
|
|
3
|
+
projectId: number;
|
|
4
|
+
variableId: string;
|
|
5
|
+
};
|
|
6
|
+
export default class TestingVariableDelete extends AgentiaCommand {
|
|
7
|
+
static args: {
|
|
8
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
+
};
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
org: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
pat: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<TestingVariableDeleteResult>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
+
import { testingConnectionFlags, testingConnectionOptions, testingProjectFlag, } from '../../../lib/testing-flags.js';
|
|
4
|
+
import { deleteTestingVariable } from '../../../lib/testing-operations.js';
|
|
5
|
+
export default class TestingVariableDelete extends AgentiaCommand {
|
|
6
|
+
static args = {
|
|
7
|
+
id: Args.string({
|
|
8
|
+
description: 'CRT variable/secret ID.',
|
|
9
|
+
required: true,
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
static description = 'Delete a Copado Robotic Testing variable/secret';
|
|
13
|
+
static examples = [
|
|
14
|
+
'<%= config.bin %> <%= command.id %> <variable-id> --project <project-id>',
|
|
15
|
+
'<%= config.bin %> <%= command.id %> <variable-id> --project <project-id> --json',
|
|
16
|
+
];
|
|
17
|
+
static flags = {
|
|
18
|
+
...testingConnectionFlags,
|
|
19
|
+
...testingProjectFlag,
|
|
20
|
+
};
|
|
21
|
+
async run() {
|
|
22
|
+
const { args, flags } = await this.parse(TestingVariableDelete);
|
|
23
|
+
const result = await this.withSpinner('Deleting testing variable', () => deleteTestingVariable({ ...testingConnectionOptions(flags), projectId: flags.project, variableId: args.id }));
|
|
24
|
+
this.display(() => {
|
|
25
|
+
this.log(`Deleted testing variable ${args.id}.`);
|
|
26
|
+
});
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/commands/testing/variable/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAA;AAOxE,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,cAAc;IAC/D,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,iDAAiD,CAAA;IAC/E,MAAM,CAAU,QAAQ,GAAG;QACzB,0EAA0E;QAC1E,iFAAiF;KAClF,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;KACtB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE,GAAG,EAAE,CACtE,qBAAqB,CAAC,EAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAC3G,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { type TestingVariable } from '../../../lib/testing-types.js';
|
|
3
|
+
export default class TestingVariableList extends AgentiaCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
job: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
robot: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
org: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
pat: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<TestingVariable[]>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
+
import { testingConnectionFlags, testingConnectionOptions, testingProjectFlag, } from '../../../lib/testing-flags.js';
|
|
4
|
+
import { listTestingVariables } from '../../../lib/testing-operations.js';
|
|
5
|
+
import { formatTestingTable } from '../../../lib/testing-types.js';
|
|
6
|
+
export default class TestingVariableList extends AgentiaCommand {
|
|
7
|
+
static description = 'List Copado Robotic Testing variables/secrets';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> <%= command.id %> --project <project-id>',
|
|
10
|
+
'<%= config.bin %> <%= command.id %> --project <project-id> --job <job-id> --json',
|
|
11
|
+
];
|
|
12
|
+
static flags = {
|
|
13
|
+
...testingConnectionFlags,
|
|
14
|
+
...testingProjectFlag,
|
|
15
|
+
job: Flags.integer({
|
|
16
|
+
description: 'Client-side filter for a CRT job/test ID.',
|
|
17
|
+
}),
|
|
18
|
+
robot: Flags.integer({
|
|
19
|
+
description: 'Client-side filter for a CRT robot ID.',
|
|
20
|
+
}),
|
|
21
|
+
};
|
|
22
|
+
async run() {
|
|
23
|
+
const { flags } = await this.parse(TestingVariableList);
|
|
24
|
+
const variables = await this.withSpinner('Fetching testing variables', () => listTestingVariables({
|
|
25
|
+
...testingConnectionOptions(flags),
|
|
26
|
+
jobId: flags.job,
|
|
27
|
+
projectId: flags.project,
|
|
28
|
+
robotId: flags.robot,
|
|
29
|
+
}));
|
|
30
|
+
this.display(() => {
|
|
31
|
+
if (variables.length === 0) {
|
|
32
|
+
this.log('No testing variables found.');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.log(formatTestingTable(variables));
|
|
36
|
+
});
|
|
37
|
+
return variables;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/testing/variable/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAC,kBAAkB,EAAuB,MAAM,+BAA+B,CAAA;AAEtF,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,cAAc;IAC7D,MAAM,CAAU,WAAW,GAAG,+CAA+C,CAAA;IAC7E,MAAM,CAAU,QAAQ,GAAG;QACzB,4DAA4D;QAC5D,kFAAkF;KACnF,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EAAE,2CAA2C;SACzD,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,wCAAwC;SACtD,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACrD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAC1E,oBAAoB,CAAC;YACnB,GAAG,wBAAwB,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,KAAK,CAAC,GAAG;YAChB,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,OAAO,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;gBACvC,OAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,OAAO,SAAS,CAAA;IAClB,CAAC"}
|
|
@@ -12,6 +12,10 @@ export declare function getCredential(type: CredentialType): null | string;
|
|
|
12
12
|
export declare function deleteCredential(type: CredentialType): boolean;
|
|
13
13
|
export declare function setCicdBaseUrl(baseUrl: string): void;
|
|
14
14
|
export declare function getCicdBaseUrl(): null | string;
|
|
15
|
+
export declare function setCrtDomain(domain: string): void;
|
|
16
|
+
export declare function getCrtDomain(): null | string;
|
|
17
|
+
export declare function setCrtOrgId(orgId: string): void;
|
|
18
|
+
export declare function getCrtOrgId(): null | string;
|
|
15
19
|
export declare function credentialLabel(type: CredentialType): string;
|
|
16
20
|
export declare function maskSecret(secret: string): string;
|
|
17
21
|
export declare function setEntryFactoryForTests(factory: EntryFactory): void;
|
|
@@ -6,6 +6,8 @@ const CREDENTIAL_ACCOUNTS = {
|
|
|
6
6
|
crt: 'copado-crt-pat-token',
|
|
7
7
|
};
|
|
8
8
|
const CICD_BASE_URL_ACCOUNT = 'copado-cicd-base-url';
|
|
9
|
+
const CRT_DOMAIN_ACCOUNT = 'copado-crt-domain';
|
|
10
|
+
const CRT_ORG_ID_ACCOUNT = 'copado-crt-org-id';
|
|
9
11
|
const defaultEntryFactory = (service, account) => new Entry(service, account);
|
|
10
12
|
let entryFactory = defaultEntryFactory;
|
|
11
13
|
export function setCredential(type, secret) {
|
|
@@ -23,6 +25,18 @@ export function setCicdBaseUrl(baseUrl) {
|
|
|
23
25
|
export function getCicdBaseUrl() {
|
|
24
26
|
return entryFactory(KEYRING_SERVICE, CICD_BASE_URL_ACCOUNT).getPassword();
|
|
25
27
|
}
|
|
28
|
+
export function setCrtDomain(domain) {
|
|
29
|
+
entryFactory(KEYRING_SERVICE, CRT_DOMAIN_ACCOUNT).setPassword(domain);
|
|
30
|
+
}
|
|
31
|
+
export function getCrtDomain() {
|
|
32
|
+
return entryFactory(KEYRING_SERVICE, CRT_DOMAIN_ACCOUNT).getPassword();
|
|
33
|
+
}
|
|
34
|
+
export function setCrtOrgId(orgId) {
|
|
35
|
+
entryFactory(KEYRING_SERVICE, CRT_ORG_ID_ACCOUNT).setPassword(orgId);
|
|
36
|
+
}
|
|
37
|
+
export function getCrtOrgId() {
|
|
38
|
+
return entryFactory(KEYRING_SERVICE, CRT_ORG_ID_ACCOUNT).getPassword();
|
|
39
|
+
}
|
|
26
40
|
export function credentialLabel(type) {
|
|
27
41
|
return type === 'cicd' ? 'Copado API key (CICD)' : 'PAT token (CRT)';
|
|
28
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/lib/credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAA;AAI5C,MAAM,CAAC,MAAM,oBAAoB,GAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAErE,MAAM,mBAAmB,GAAmC;IAC1D,IAAI,EAAE,qBAAqB;IAC3B,GAAG,EAAE,sBAAsB;CAC5B,CAAA;AAED,MAAM,qBAAqB,GAAG,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/lib/credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAA;AAI5C,MAAM,CAAC,MAAM,oBAAoB,GAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAErE,MAAM,mBAAmB,GAAmC;IAC1D,IAAI,EAAE,qBAAqB;IAC3B,GAAG,EAAE,sBAAsB;CAC5B,CAAA;AAED,MAAM,qBAAqB,GAAG,sBAAsB,CAAA;AACpD,MAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAC9C,MAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAU9C,MAAM,mBAAmB,GAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAE3F,IAAI,YAAY,GAAiB,mBAAmB,CAAA;AAEpD,MAAM,UAAU,aAAa,CAAC,IAAoB,EAAE,MAAc;IAChE,YAAY,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAoB;IAChD,OAAO,YAAY,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,OAAO,YAAY,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA;AAClF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,YAAY,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACvB,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAA;AACnC,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,uBAAuB,CAAC,OAAqB;IAC3D,YAAY,GAAG,OAAO,CAAA;AACxB,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,yBAAyB;IACvC,YAAY,GAAG,mBAAmB,CAAA;AACpC,CAAC"}
|