@copado/agentia-cli 0.6.0-alpha.0 → 0.7.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 +1025 -7
- package/dist/commands/auth/get.d.ts +23 -0
- package/dist/commands/auth/get.js +73 -0
- package/dist/commands/auth/get.js.map +1 -0
- package/dist/commands/auth/set.d.ts +21 -0
- package/dist/commands/auth/set.js +113 -0
- package/dist/commands/auth/set.js.map +1 -0
- package/dist/commands/environment/auth/status.d.ts +13 -0
- package/dist/commands/environment/auth/status.js +36 -0
- package/dist/commands/environment/auth/status.js.map +1 -0
- package/dist/commands/environment/auth/web/login.d.ts +15 -0
- package/dist/commands/environment/auth/web/login.js +55 -0
- package/dist/commands/environment/auth/web/login.js.map +1 -0
- package/dist/commands/environment/create.d.ts +22 -0
- package/dist/commands/environment/create.js +41 -0
- package/dist/commands/environment/create.js.map +1 -0
- package/dist/commands/environment/get.d.ts +10 -0
- package/dist/commands/environment/get.js +30 -0
- package/dist/commands/environment/get.js.map +1 -0
- package/dist/commands/environment/list.d.ts +17 -0
- package/dist/commands/environment/list.js +69 -0
- package/dist/commands/environment/list.js.map +1 -0
- package/dist/commands/environment/update.d.ts +23 -0
- package/dist/commands/environment/update.js +70 -0
- package/dist/commands/environment/update.js.map +1 -0
- package/dist/commands/job/get.d.ts +14 -0
- package/dist/commands/job/get.js +33 -0
- package/dist/commands/job/get.js.map +1 -0
- package/dist/commands/job/kill.d.ts +14 -0
- package/dist/commands/job/kill.js +34 -0
- package/dist/commands/job/kill.js.map +1 -0
- package/dist/commands/job/list.d.ts +18 -0
- package/dist/commands/job/list.js +68 -0
- package/dist/commands/job/list.js.map +1 -0
- package/dist/commands/job/pause.d.ts +14 -0
- package/dist/commands/job/pause.js +34 -0
- package/dist/commands/job/pause.js.map +1 -0
- package/dist/commands/job/resume.d.ts +14 -0
- package/dist/commands/job/resume.js +34 -0
- package/dist/commands/job/resume.js.map +1 -0
- package/dist/commands/job/run.d.ts +15 -0
- package/dist/commands/job/run.js +40 -0
- package/dist/commands/job/run.js.map +1 -0
- package/dist/commands/mcp/start.d.ts +7 -0
- package/dist/commands/mcp/start.js +15 -0
- package/dist/commands/mcp/start.js.map +1 -0
- package/dist/commands/metadata/content/compare.d.ts +40 -0
- package/dist/commands/metadata/content/compare.js +127 -0
- package/dist/commands/metadata/content/compare.js.map +1 -0
- package/dist/commands/metadata/content/get.d.ts +39 -0
- package/dist/commands/metadata/content/get.js +158 -0
- package/dist/commands/metadata/content/get.js.map +1 -0
- package/dist/commands/metadata/dependency/list.d.ts +49 -0
- package/dist/commands/metadata/dependency/list.js +216 -0
- package/dist/commands/metadata/dependency/list.js.map +1 -0
- package/dist/commands/metadata/index/compare.d.ts +34 -0
- package/dist/commands/metadata/index/compare.js +100 -0
- package/dist/commands/metadata/index/compare.js.map +1 -0
- package/dist/commands/metadata/list.d.ts +56 -0
- package/dist/commands/metadata/list.js +133 -0
- package/dist/commands/metadata/list.js.map +1 -0
- package/dist/commands/metadata/refresh/deleted.d.ts +15 -0
- package/dist/commands/metadata/refresh/deleted.js +55 -0
- package/dist/commands/metadata/refresh/deleted.js.map +1 -0
- package/dist/commands/metadata/refresh/run.d.ts +23 -0
- package/dist/commands/metadata/refresh/run.js +95 -0
- package/dist/commands/metadata/refresh/run.js.map +1 -0
- package/dist/commands/metadata/refresh/status.d.ts +14 -0
- package/dist/commands/metadata/refresh/status.js +49 -0
- package/dist/commands/metadata/refresh/status.js.map +1 -0
- package/dist/commands/pipeline/connection/list.d.ts +12 -0
- package/dist/commands/pipeline/connection/list.js +39 -0
- package/dist/commands/pipeline/connection/list.js.map +1 -0
- package/dist/commands/pipeline/get.d.ts +14 -0
- package/dist/commands/pipeline/get.js +33 -0
- package/dist/commands/pipeline/get.js.map +1 -0
- package/dist/commands/pipeline/list.d.ts +11 -0
- package/dist/commands/pipeline/list.js +30 -0
- package/dist/commands/pipeline/list.js.map +1 -0
- package/dist/commands/project/default/get.d.ts +21 -0
- package/dist/commands/project/default/get.js +44 -0
- package/dist/commands/project/default/get.js.map +1 -0
- package/dist/commands/project/default/set.d.ts +21 -0
- package/dist/commands/project/default/set.js +55 -0
- package/dist/commands/project/default/set.js.map +1 -0
- package/dist/commands/project/default/unset.d.ts +21 -0
- package/dist/commands/project/default/unset.js +45 -0
- package/dist/commands/project/default/unset.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agentia-command.d.ts +7 -0
- package/dist/lib/agentia-command.js +28 -0
- package/dist/lib/agentia-command.js.map +1 -0
- package/dist/lib/agentia-oauth-error-codes.d.ts +17 -0
- package/dist/lib/agentia-oauth-error-codes.js +30 -0
- package/dist/lib/agentia-oauth-error-codes.js.map +1 -0
- package/dist/lib/assert.d.ts +1 -0
- package/dist/lib/assert.js +7 -0
- package/dist/lib/assert.js.map +1 -0
- package/dist/lib/cicd-gateway.d.ts +57 -0
- package/dist/lib/cicd-gateway.js +221 -0
- package/dist/lib/cicd-gateway.js.map +1 -0
- package/dist/lib/cicd-region.d.ts +4 -0
- package/dist/lib/cicd-region.js +8 -0
- package/dist/lib/cicd-region.js.map +1 -0
- package/dist/lib/credential-store.d.ts +18 -0
- package/dist/lib/credential-store.js +43 -0
- package/dist/lib/credential-store.js.map +1 -0
- package/dist/lib/defaults-store.d.ts +12 -0
- package/dist/lib/defaults-store.js +142 -0
- package/dist/lib/defaults-store.js.map +1 -0
- package/dist/lib/dependency-from-changes.d.ts +6 -0
- package/dist/lib/dependency-from-changes.js +97 -0
- package/dist/lib/dependency-from-changes.js.map +1 -0
- package/dist/lib/environment-auth-status.d.ts +18 -0
- package/dist/lib/environment-auth-status.js +74 -0
- package/dist/lib/environment-auth-status.js.map +1 -0
- package/dist/lib/environment-auth.d.ts +26 -0
- package/dist/lib/environment-auth.js +150 -0
- package/dist/lib/environment-auth.js.map +1 -0
- package/dist/lib/environment-credential-selection.d.ts +14 -0
- package/dist/lib/environment-credential-selection.js +60 -0
- package/dist/lib/environment-credential-selection.js.map +1 -0
- package/dist/lib/environment-flags.d.ts +81 -0
- package/dist/lib/environment-flags.js +134 -0
- package/dist/lib/environment-flags.js.map +1 -0
- package/dist/lib/environment-types.d.ts +84 -0
- package/dist/lib/environment-types.js +52 -0
- package/dist/lib/environment-types.js.map +1 -0
- package/dist/lib/format.d.ts +5 -0
- package/dist/lib/format.js +8 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/job-types.d.ts +85 -0
- package/dist/lib/job-types.js +115 -0
- package/dist/lib/job-types.js.map +1 -0
- package/dist/lib/loopback-callback-server.d.ts +35 -0
- package/dist/lib/loopback-callback-server.js +162 -0
- package/dist/lib/loopback-callback-server.js.map +1 -0
- package/dist/lib/mcp/redaction.d.ts +2 -0
- package/dist/lib/mcp/redaction.js +24 -0
- package/dist/lib/mcp/redaction.js.map +1 -0
- package/dist/lib/mcp/result.d.ts +37 -0
- package/dist/lib/mcp/result.js +39 -0
- package/dist/lib/mcp/result.js.map +1 -0
- package/dist/lib/mcp/server.d.ts +5 -0
- package/dist/lib/mcp/server.js +24 -0
- package/dist/lib/mcp/server.js.map +1 -0
- package/dist/lib/mcp/tools.d.ts +235 -0
- package/dist/lib/mcp/tools.js +683 -0
- package/dist/lib/mcp/tools.js.map +1 -0
- package/dist/lib/metadata-common.d.ts +159 -0
- package/dist/lib/metadata-common.js +234 -0
- package/dist/lib/metadata-common.js.map +1 -0
- package/dist/lib/metadata-refresh.d.ts +68 -0
- package/dist/lib/metadata-refresh.js +104 -0
- package/dist/lib/metadata-refresh.js.map +1 -0
- package/dist/lib/open-browser.d.ts +8 -0
- package/dist/lib/open-browser.js +40 -0
- package/dist/lib/open-browser.js.map +1 -0
- package/dist/lib/pipeline-flags.d.ts +10 -0
- package/dist/lib/pipeline-flags.js +18 -0
- package/dist/lib/pipeline-flags.js.map +1 -0
- package/dist/lib/pipeline-types.d.ts +84 -0
- package/dist/lib/pipeline-types.js +67 -0
- package/dist/lib/pipeline-types.js.map +1 -0
- package/dist/lib/project-default-flags.d.ts +41 -0
- package/dist/lib/project-default-flags.js +82 -0
- package/dist/lib/project-default-flags.js.map +1 -0
- package/dist/lib/project-defaults.d.ts +23 -0
- package/dist/lib/project-defaults.js +51 -0
- package/dist/lib/project-defaults.js.map +1 -0
- package/dist/lib/user-context-types.d.ts +12 -0
- package/dist/lib/user-context-types.js +2 -0
- package/dist/lib/user-context-types.js.map +1 -0
- package/oclif.manifest.json +2315 -2
- package/package.json +5 -3
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { type CredentialType } from '../../lib/credential-store.js';
|
|
3
|
+
export type AuthCredentialResult = {
|
|
4
|
+
baseUrl?: null | string;
|
|
5
|
+
label: string;
|
|
6
|
+
masked?: string;
|
|
7
|
+
set: boolean;
|
|
8
|
+
type: CredentialType;
|
|
9
|
+
};
|
|
10
|
+
export type AuthGetResult = {
|
|
11
|
+
credentials: AuthCredentialResult[];
|
|
12
|
+
};
|
|
13
|
+
export default class AuthGet extends AgentiaCommand {
|
|
14
|
+
static description: string;
|
|
15
|
+
static examples: string[];
|
|
16
|
+
static flags: {
|
|
17
|
+
cicd: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
crt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
};
|
|
20
|
+
run(): Promise<AuthGetResult>;
|
|
21
|
+
private buildCredentialResult;
|
|
22
|
+
private formatCredentialLine;
|
|
23
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
3
|
+
import { ALL_CREDENTIAL_TYPES, credentialLabel, getCicdBaseUrl, getCredential, maskSecret, } from '../../lib/credential-store.js';
|
|
4
|
+
export default class AuthGet extends AgentiaCommand {
|
|
5
|
+
static description = 'Show stored authentication credentials from the system keychain';
|
|
6
|
+
static examples = [
|
|
7
|
+
'<%= config.bin %> <%= command.id %>',
|
|
8
|
+
'<%= config.bin %> <%= command.id %> --cicd',
|
|
9
|
+
'<%= config.bin %> <%= command.id %> --crt',
|
|
10
|
+
'<%= config.bin %> <%= command.id %> --cicd --crt',
|
|
11
|
+
'<%= config.bin %> <%= command.id %> --json',
|
|
12
|
+
];
|
|
13
|
+
static flags = {
|
|
14
|
+
cicd: Flags.boolean({
|
|
15
|
+
description: 'Show Copado API key for CICD authentication',
|
|
16
|
+
}),
|
|
17
|
+
crt: Flags.boolean({
|
|
18
|
+
description: 'Show PAT token for CRT authentication',
|
|
19
|
+
}),
|
|
20
|
+
};
|
|
21
|
+
async run() {
|
|
22
|
+
const { flags } = await this.parse(AuthGet);
|
|
23
|
+
const types = [];
|
|
24
|
+
if (flags.cicd) {
|
|
25
|
+
types.push('cicd');
|
|
26
|
+
}
|
|
27
|
+
if (flags.crt) {
|
|
28
|
+
types.push('crt');
|
|
29
|
+
}
|
|
30
|
+
const selectedTypes = types.length > 0 ? types : ALL_CREDENTIAL_TYPES;
|
|
31
|
+
const credentials = selectedTypes.map((type) => this.buildCredentialResult(type));
|
|
32
|
+
for (const credential of credentials) {
|
|
33
|
+
this.log(this.formatCredentialLine(credential));
|
|
34
|
+
}
|
|
35
|
+
return { credentials };
|
|
36
|
+
}
|
|
37
|
+
buildCredentialResult(type) {
|
|
38
|
+
const credential = getCredential(type);
|
|
39
|
+
if (credential === null) {
|
|
40
|
+
return {
|
|
41
|
+
label: credentialLabel(type),
|
|
42
|
+
set: false,
|
|
43
|
+
type,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (type === 'cicd') {
|
|
47
|
+
return {
|
|
48
|
+
baseUrl: getCicdBaseUrl(),
|
|
49
|
+
label: credentialLabel(type),
|
|
50
|
+
masked: maskSecret(credential),
|
|
51
|
+
set: true,
|
|
52
|
+
type,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
label: credentialLabel(type),
|
|
57
|
+
masked: maskSecret(credential),
|
|
58
|
+
set: true,
|
|
59
|
+
type,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
formatCredentialLine(credential) {
|
|
63
|
+
if (!credential.set) {
|
|
64
|
+
return `${credential.label}: not set`;
|
|
65
|
+
}
|
|
66
|
+
if (credential.type === 'cicd') {
|
|
67
|
+
const endpointLabel = credential.baseUrl === null || credential.baseUrl === undefined ? 'not set' : credential.baseUrl;
|
|
68
|
+
return `${credential.label}: ${credential.masked} (endpoint: ${endpointLabel})`;
|
|
69
|
+
}
|
|
70
|
+
return `${credential.label}: ${credential.masked}`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/auth/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { type CredentialType } from '../../lib/credential-store.js';
|
|
3
|
+
export type AuthSetResult = {
|
|
4
|
+
baseUrl?: string;
|
|
5
|
+
stored: Array<{
|
|
6
|
+
label: string;
|
|
7
|
+
type: CredentialType;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
export default class AuthSet extends AgentiaCommand {
|
|
11
|
+
static description: string;
|
|
12
|
+
static examples: string[];
|
|
13
|
+
static flags: {
|
|
14
|
+
cicd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
crt: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
'custom-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
region: import("@oclif/core/interfaces").OptionFlag<"na" | "emea" | "emea2" | "apac" | "apac2" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
};
|
|
19
|
+
run(): Promise<AuthSetResult>;
|
|
20
|
+
private resolveCicdEndpoint;
|
|
21
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
3
|
+
import { CicdGateway, normalizeCicdBaseUrl } from '../../lib/cicd-gateway.js';
|
|
4
|
+
import { CICD_REGIONS, isCicdRegion } from '../../lib/cicd-region.js';
|
|
5
|
+
import { credentialLabel, setCicdBaseUrl, setCredential } from '../../lib/credential-store.js';
|
|
6
|
+
export default class AuthSet extends AgentiaCommand {
|
|
7
|
+
static description = 'Store authentication credentials securely in the system keychain';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --region na',
|
|
10
|
+
'<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --custom-url https://dev.api.copado.com',
|
|
11
|
+
'<%= config.bin %> <%= command.id %> --cicd <copado-api-key>',
|
|
12
|
+
'<%= config.bin %> <%= command.id %> --crt <pat-token>',
|
|
13
|
+
'<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --region na --crt <pat-token>',
|
|
14
|
+
'<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --region na --json',
|
|
15
|
+
];
|
|
16
|
+
static flags = {
|
|
17
|
+
cicd: Flags.string({
|
|
18
|
+
description: 'Copado API key for CICD authentication',
|
|
19
|
+
}),
|
|
20
|
+
crt: Flags.string({
|
|
21
|
+
description: 'PAT token for CRT authentication',
|
|
22
|
+
}),
|
|
23
|
+
'custom-url': Flags.string({
|
|
24
|
+
description: 'CICD gateway base URL used instead of regional mapping',
|
|
25
|
+
}),
|
|
26
|
+
region: Flags.option({
|
|
27
|
+
description: 'CICD region used to resolve the gateway endpoint',
|
|
28
|
+
options: [...CICD_REGIONS],
|
|
29
|
+
})(),
|
|
30
|
+
};
|
|
31
|
+
async run() {
|
|
32
|
+
const { flags } = await this.parse(AuthSet);
|
|
33
|
+
const credentials = [];
|
|
34
|
+
if (flags.cicd !== undefined) {
|
|
35
|
+
credentials.push({ type: 'cicd', value: flags.cicd });
|
|
36
|
+
}
|
|
37
|
+
if (flags.crt !== undefined) {
|
|
38
|
+
credentials.push({ type: 'crt', value: flags.crt });
|
|
39
|
+
}
|
|
40
|
+
if ((flags.region !== undefined || flags['custom-url'] !== undefined) && flags.cicd === undefined) {
|
|
41
|
+
this.error('--region and --custom-url can only be used together with --cicd', { exit: 2 });
|
|
42
|
+
}
|
|
43
|
+
if (credentials.length === 0) {
|
|
44
|
+
this.error('Must provide at least one of --cicd or --crt', {
|
|
45
|
+
exit: 2,
|
|
46
|
+
suggestions: [
|
|
47
|
+
`${this.config.bin} auth set --cicd <copado-api-key> --region na`,
|
|
48
|
+
`${this.config.bin} auth set --cicd <copado-api-key> --custom-url https://dev.api.copado.com`,
|
|
49
|
+
`${this.config.bin} auth set --crt <pat-token>`,
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
if (flags.region !== undefined && !isCicdRegion(flags.region)) {
|
|
54
|
+
this.error(`Invalid region "${flags.region}"`, { exit: 2 });
|
|
55
|
+
}
|
|
56
|
+
if (flags['custom-url'] !== undefined) {
|
|
57
|
+
try {
|
|
58
|
+
normalizeCicdBaseUrl(flags['custom-url']);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
this.error(error.message, { exit: 2 });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
for (const { type, value } of credentials) {
|
|
65
|
+
if (value.trim().length === 0) {
|
|
66
|
+
this.error(`--${type} value cannot be empty`, { exit: 2 });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
let resolvedBaseUrl;
|
|
70
|
+
if (flags.cicd !== undefined) {
|
|
71
|
+
resolvedBaseUrl = await this.resolveCicdEndpoint(flags.cicd, flags.region, flags['custom-url']);
|
|
72
|
+
}
|
|
73
|
+
const stored = credentials.map(({ type }) => ({
|
|
74
|
+
label: credentialLabel(type),
|
|
75
|
+
type,
|
|
76
|
+
}));
|
|
77
|
+
for (const { type, value } of credentials) {
|
|
78
|
+
setCredential(type, value);
|
|
79
|
+
}
|
|
80
|
+
if (resolvedBaseUrl !== undefined) {
|
|
81
|
+
setCicdBaseUrl(resolvedBaseUrl);
|
|
82
|
+
}
|
|
83
|
+
for (const { label } of stored) {
|
|
84
|
+
this.log(`Stored ${label}.`);
|
|
85
|
+
}
|
|
86
|
+
if (resolvedBaseUrl !== undefined) {
|
|
87
|
+
this.log(`Stored CICD endpoint: ${resolvedBaseUrl}.`);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
baseUrl: resolvedBaseUrl,
|
|
91
|
+
stored,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
async resolveCicdEndpoint(apiKey, region, customUrl) {
|
|
95
|
+
let spinnerMessage = 'Discovering CICD endpoint';
|
|
96
|
+
if (customUrl !== undefined) {
|
|
97
|
+
spinnerMessage = 'Validating CICD API key for custom endpoint';
|
|
98
|
+
}
|
|
99
|
+
else if (region !== undefined) {
|
|
100
|
+
spinnerMessage = `Validating CICD API key for region ${region}`;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
return await this.withSpinner(spinnerMessage, () => CicdGateway.resolveAndValidateEndpoint(apiKey, {
|
|
104
|
+
customUrl,
|
|
105
|
+
region,
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
this.error('CICD API key could not be validated for the selected endpoint.', { exit: 1 });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/commands/auth/set.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { type EnvironmentAuthStatusResult } from '../../../lib/environment-auth-status.js';
|
|
3
|
+
export default class EnvironmentAuthStatus extends AgentiaCommand {
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
credentialid: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<EnvironmentAuthStatusResult>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Args, Flags, ux } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
+
import { runEnvironmentAuthStatus, } from '../../../lib/environment-auth-status.js';
|
|
4
|
+
import { formatEnvironmentAuthStatus } from '../../../lib/environment-types.js';
|
|
5
|
+
export default class EnvironmentAuthStatus extends AgentiaCommand {
|
|
6
|
+
static args = {
|
|
7
|
+
id: Args.string({
|
|
8
|
+
description: 'Copado environment ID',
|
|
9
|
+
name: 'id',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static description = 'Validate the authentication status of an environment credential';
|
|
14
|
+
static examples = [
|
|
15
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU --credentialid a0kKC000000hFmWYAU',
|
|
17
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU --json',
|
|
18
|
+
];
|
|
19
|
+
static flags = {
|
|
20
|
+
credentialid: Flags.string({
|
|
21
|
+
description: 'Credential ID to validate when automatic selection is not possible',
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { args, flags } = await this.parse(EnvironmentAuthStatus);
|
|
26
|
+
const result = await this.withSpinner('Validating environment credential', () => runEnvironmentAuthStatus({
|
|
27
|
+
credentialId: flags.credentialid,
|
|
28
|
+
environmentId: args.id,
|
|
29
|
+
}));
|
|
30
|
+
this.display(() => {
|
|
31
|
+
this.log(formatEnvironmentAuthStatus(result, { colorize: ux.colorize }));
|
|
32
|
+
});
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/commands/environment/auth/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAEL,wBAAwB,GACzB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAA;AAE7E,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,cAAc;IAC/D,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,iEAAiE,CAAA;IAC/F,MAAM,CAAU,QAAQ,GAAG;QACzB,uDAAuD;QACvD,yFAAyF;QACzF,8DAA8D;KAC/D,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,oEAAoE;SAClF,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAE7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mCAAmC,EAAE,GAAG,EAAE,CAC9E,wBAAwB,CAAC;YACvB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,aAAa,EAAE,IAAI,CAAC,EAAE;SACvB,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
2
|
+
import { type EnvironmentWebLoginResult } from '../../../../lib/environment-auth.js';
|
|
3
|
+
export default class EnvironmentAuthWebLogin extends AgentiaCommand {
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
credentialid: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
port: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
timeout: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<EnvironmentWebLoginResult>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
3
|
+
import { DEFAULT_AUTH_TIMEOUT_SECONDS, runEnvironmentWebLogin, } from '../../../../lib/environment-auth.js';
|
|
4
|
+
export default class EnvironmentAuthWebLogin extends AgentiaCommand {
|
|
5
|
+
static args = {
|
|
6
|
+
id: Args.string({
|
|
7
|
+
description: 'Copado environment ID',
|
|
8
|
+
name: 'id',
|
|
9
|
+
required: true,
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
static description = 'Authenticate an environment credential via browser web login';
|
|
13
|
+
static examples = [
|
|
14
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU',
|
|
15
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU --credentialid a0kKC000000hFmWYAU',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU --port 8085 --timeout 120',
|
|
17
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU --json',
|
|
18
|
+
];
|
|
19
|
+
static flags = {
|
|
20
|
+
credentialid: Flags.string({
|
|
21
|
+
description: 'Credential ID to authenticate when automatic selection is not possible',
|
|
22
|
+
}),
|
|
23
|
+
port: Flags.integer({
|
|
24
|
+
description: 'Local loopback port (default: scan 8080-8090)',
|
|
25
|
+
}),
|
|
26
|
+
timeout: Flags.integer({
|
|
27
|
+
default: DEFAULT_AUTH_TIMEOUT_SECONDS,
|
|
28
|
+
description: 'Max seconds to wait for browser login',
|
|
29
|
+
}),
|
|
30
|
+
};
|
|
31
|
+
async run() {
|
|
32
|
+
const { args, flags } = await this.parse(EnvironmentAuthWebLogin);
|
|
33
|
+
try {
|
|
34
|
+
const result = await this.withSpinner('Authenticating environment credential', () => runEnvironmentWebLogin({
|
|
35
|
+
credentialId: flags.credentialid,
|
|
36
|
+
environmentId: args.id,
|
|
37
|
+
port: flags.port,
|
|
38
|
+
quiet: this.jsonEnabled(),
|
|
39
|
+
timeoutSeconds: flags.timeout,
|
|
40
|
+
}));
|
|
41
|
+
this.display(() => {
|
|
42
|
+
this.log(`Authenticated credential "${result.credentialName}" for environment ${result.environmentId}.`);
|
|
43
|
+
});
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const { exitCode } = error;
|
|
48
|
+
if (exitCode !== undefined) {
|
|
49
|
+
this.error(error.message, { exit: exitCode });
|
|
50
|
+
}
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../../src/commands/environment/auth/web/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAA;AACjE,OAAO,EACL,4BAA4B,EAE5B,sBAAsB,GACvB,MAAM,qCAAqC,CAAA;AAE5C,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,cAAc;IACjE,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,8DAA8D,CAAA;IAC5F,MAAM,CAAU,QAAQ,GAAG;QACzB,uDAAuD;QACvD,yFAAyF;QACzF,iFAAiF;QACjF,8DAA8D;KAC/D,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,wEAAwE;SACtF,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,4BAA4B;YACrC,WAAW,EAAE,uCAAuC;SACrD,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAE/D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,uCAAuC,EAAE,GAAG,EAAE,CAClF,sBAAsB,CAAC;gBACrB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,aAAa,EAAE,IAAI,CAAC,EAAE;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;gBACzB,cAAc,EAAE,KAAK,CAAC,OAAO;aAC9B,CAAC,CACH,CAAA;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChB,IAAI,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,cAAc,qBAAqB,MAAM,CAAC,aAAa,GAAG,CAAC,CAAA;YAC1G,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAC,QAAQ,EAAC,GAAI,KAAqC,CAAA;YAEzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAA;YACxD,CAAC;YAED,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { type Environment } from '../../lib/environment-types.js';
|
|
3
|
+
export default class EnvironmentCreate extends AgentiaCommand {
|
|
4
|
+
static args: {
|
|
5
|
+
name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
readonly platform: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
readonly type: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
readonly 'apex-test-level': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
readonly namespace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
readonly 'promotion-default-credential': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
readonly 'run-specified-tests': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
readonly 'validation-promotion-default-credential': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
readonly 'enable-rollback': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
readonly 'index-back-promotion-metadata': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
readonly 'run-local-tests': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
};
|
|
21
|
+
run(): Promise<Environment>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
3
|
+
import { CicdGateway } from '../../lib/cicd-gateway.js';
|
|
4
|
+
import { buildCreatePayload, ENVIRONMENT_STRING_VALIDATION_KEYS, environmentCreateFlags, validateNonEmptyStringFields, } from '../../lib/environment-flags.js';
|
|
5
|
+
export default class EnvironmentCreate extends AgentiaCommand {
|
|
6
|
+
static args = {
|
|
7
|
+
name: Args.string({
|
|
8
|
+
description: 'Name of the environment to create',
|
|
9
|
+
required: true,
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
static description = 'Create a Copado environment';
|
|
13
|
+
static examples = [
|
|
14
|
+
'<%= config.bin %> <%= command.id %> Dev',
|
|
15
|
+
'<%= config.bin %> <%= command.id %> Dev --type Sandbox --platform SFDX',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> Dev --run-local-tests --apex-test-level "No Test Run"',
|
|
17
|
+
'<%= config.bin %> <%= command.id %> Dev --json',
|
|
18
|
+
];
|
|
19
|
+
static flags = environmentCreateFlags;
|
|
20
|
+
async run() {
|
|
21
|
+
const { args, flags } = await this.parse(EnvironmentCreate);
|
|
22
|
+
const payload = buildCreatePayload(args.name, flags);
|
|
23
|
+
const validationError = validateNonEmptyStringFields(payload, ENVIRONMENT_STRING_VALIDATION_KEYS);
|
|
24
|
+
if (validationError !== undefined) {
|
|
25
|
+
this.error(validationError, { exit: 2 });
|
|
26
|
+
}
|
|
27
|
+
const environment = await this.withSpinner('Creating environment', () => CicdGateway.call({
|
|
28
|
+
body: payload,
|
|
29
|
+
endpoint: '/corpus/environments',
|
|
30
|
+
headers: {
|
|
31
|
+
'Content-Type': 'application/json',
|
|
32
|
+
},
|
|
33
|
+
method: 'POST',
|
|
34
|
+
}));
|
|
35
|
+
this.display(() => {
|
|
36
|
+
this.log(`Created environment ${environment.name ?? args.name} (ID: ${environment.id ?? 'unknown id'}).`);
|
|
37
|
+
});
|
|
38
|
+
return environment;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/environment/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EACL,kBAAkB,EAClB,kCAAkC,EAClC,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,gCAAgC,CAAA;AAGvC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,cAAc;IAC3D,MAAM,CAAU,IAAI,GAAG;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,6BAA6B,CAAA;IAC3D,MAAM,CAAU,QAAQ,GAAG;QACzB,yCAAyC;QACzC,wEAAwE;QACxE,2FAA2F;QAC3F,gDAAgD;KACjD,CAAA;IACD,MAAM,CAAU,KAAK,GAAG,sBAAsB,CAAA;IAEvC,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACpD,MAAM,eAAe,GAAG,4BAA4B,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAA;QAEjG,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QACxC,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,EAAE,CACtE,WAAW,CAAC,IAAI,CAAc;YAC5B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,sBAAsB;YAChC,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,uBAAuB,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,SAAS,WAAW,CAAC,EAAE,IAAI,YAAY,IAAI,CAAC,CAAA;QAC3G,CAAC,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { type Environment } from '../../lib/environment-types.js';
|
|
3
|
+
export default class EnvironmentGet extends AgentiaCommand {
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
run(): Promise<Environment>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
3
|
+
import { CicdGateway } from '../../lib/cicd-gateway.js';
|
|
4
|
+
import { environmentEndpoint, formatEnvironmentDetail } from '../../lib/environment-types.js';
|
|
5
|
+
export default class EnvironmentGet extends AgentiaCommand {
|
|
6
|
+
static args = {
|
|
7
|
+
id: Args.string({
|
|
8
|
+
description: 'Copado environment ID',
|
|
9
|
+
name: 'id',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static description = 'Get a Copado environment by ID';
|
|
14
|
+
static examples = [
|
|
15
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> a0SKC000000CmZ2AU --json',
|
|
17
|
+
];
|
|
18
|
+
async run() {
|
|
19
|
+
const { args } = await this.parse(EnvironmentGet);
|
|
20
|
+
const environment = await this.withSpinner('Fetching environment', () => CicdGateway.call({
|
|
21
|
+
endpoint: environmentEndpoint(args.id),
|
|
22
|
+
method: 'GET',
|
|
23
|
+
}));
|
|
24
|
+
this.display(() => {
|
|
25
|
+
this.log(formatEnvironmentDetail(environment));
|
|
26
|
+
});
|
|
27
|
+
return environment;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/environment/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAmB,mBAAmB,EAAE,uBAAuB,EAAC,MAAM,gCAAgC,CAAA;AAE7G,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,cAAc;IACxD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,gCAAgC,CAAA;IAC9D,MAAM,CAAU,QAAQ,GAAG;QACzB,uDAAuD;QACvD,8DAA8D;KAC/D,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAE/C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,EAAE,CACtE,WAAW,CAAC,IAAI,CAAc;YAC5B,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,EAAE,KAAK;SACd,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACpB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { type Environment, type EnvironmentsResponse } from '../../lib/environment-types.js';
|
|
3
|
+
export type { Environment, EnvironmentsResponse } from '../../lib/environment-types.js';
|
|
4
|
+
export declare function normalizeEnvironments(response: EnvironmentsResponse): Environment[];
|
|
5
|
+
export declare const ENVIRONMENT_TABLE_DISPLAY_LIMIT = 100;
|
|
6
|
+
export declare function selectEnvironmentsForTableDisplay(environments: Environment[]): {
|
|
7
|
+
displayed: Environment[];
|
|
8
|
+
total: number;
|
|
9
|
+
truncated: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function formatEnvironmentTableTruncationMessage(total: number): string;
|
|
12
|
+
export declare function formatEnvironmentTable(environments: Environment[]): string;
|
|
13
|
+
export default class EnvironmentList extends AgentiaCommand {
|
|
14
|
+
static description: string;
|
|
15
|
+
static examples: string[];
|
|
16
|
+
run(): Promise<Environment[]>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { CicdGateway } from '../../lib/cicd-gateway.js';
|
|
3
|
+
import { cellValue, table } from '../../lib/format.js';
|
|
4
|
+
export function normalizeEnvironments(response) {
|
|
5
|
+
if (Array.isArray(response.data)) {
|
|
6
|
+
return response.data;
|
|
7
|
+
}
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
export const ENVIRONMENT_TABLE_DISPLAY_LIMIT = 100;
|
|
11
|
+
export function selectEnvironmentsForTableDisplay(environments) {
|
|
12
|
+
const total = environments.length;
|
|
13
|
+
const truncated = total > ENVIRONMENT_TABLE_DISPLAY_LIMIT;
|
|
14
|
+
return {
|
|
15
|
+
displayed: truncated ? environments.slice(0, ENVIRONMENT_TABLE_DISPLAY_LIMIT) : environments,
|
|
16
|
+
total,
|
|
17
|
+
truncated,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function formatEnvironmentTableTruncationMessage(total) {
|
|
21
|
+
return `Showing first ${ENVIRONMENT_TABLE_DISPLAY_LIMIT} of ${total} environments.`;
|
|
22
|
+
}
|
|
23
|
+
export function formatEnvironmentTable(environments) {
|
|
24
|
+
const header = [
|
|
25
|
+
{ alias: 'ID', value: 'id' },
|
|
26
|
+
{ alias: 'ORG ID', value: 'orgId' },
|
|
27
|
+
{ alias: 'NAME', value: 'name' },
|
|
28
|
+
{ alias: 'TYPE', value: 'type' },
|
|
29
|
+
{ alias: 'PLATFORM', value: 'platform' },
|
|
30
|
+
{ alias: 'CREDENTIALS', value: 'credentials' },
|
|
31
|
+
];
|
|
32
|
+
const rows = environments.map((environment) => ({
|
|
33
|
+
credentials: cellValue(environment.credentials?.length),
|
|
34
|
+
id: cellValue(environment.id),
|
|
35
|
+
name: cellValue(environment.name),
|
|
36
|
+
orgId: cellValue(environment.orgId),
|
|
37
|
+
platform: cellValue(environment.platform),
|
|
38
|
+
type: cellValue(environment.type),
|
|
39
|
+
}));
|
|
40
|
+
return table(header, rows);
|
|
41
|
+
}
|
|
42
|
+
export default class EnvironmentList extends AgentiaCommand {
|
|
43
|
+
static description = 'List Copado environments';
|
|
44
|
+
static examples = [
|
|
45
|
+
'<%= config.bin %> <%= command.id %>',
|
|
46
|
+
'<%= config.bin %> <%= command.id %> --json',
|
|
47
|
+
];
|
|
48
|
+
async run() {
|
|
49
|
+
await this.parse(EnvironmentList);
|
|
50
|
+
const response = await this.withSpinner('Fetching environments', () => CicdGateway.call({
|
|
51
|
+
endpoint: '/corpus/environments',
|
|
52
|
+
method: 'GET',
|
|
53
|
+
}));
|
|
54
|
+
const environments = normalizeEnvironments(response);
|
|
55
|
+
this.display(() => {
|
|
56
|
+
if (environments.length === 0) {
|
|
57
|
+
this.log('No environments found.');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const { displayed, total, truncated } = selectEnvironmentsForTableDisplay(environments);
|
|
61
|
+
if (truncated) {
|
|
62
|
+
this.log(formatEnvironmentTableTruncationMessage(total));
|
|
63
|
+
}
|
|
64
|
+
this.log(formatEnvironmentTable(displayed));
|
|
65
|
+
});
|
|
66
|
+
return environments;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/environment/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../lib/agentia-command.js';
|
|
2
|
+
import { type Environment } from '../../lib/environment-types.js';
|
|
3
|
+
export default class EnvironmentUpdate extends AgentiaCommand {
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
readonly 'apex-test-level': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
readonly name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
readonly namespace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
readonly platform: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
readonly 'promotion-default-credential': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
readonly 'run-specified-tests': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
readonly type: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
readonly 'validation-promotion-default-credential': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
readonly 'enable-rollback': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
readonly 'index-back-promotion-metadata': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
readonly 'run-local-tests': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
};
|
|
22
|
+
run(): Promise<Environment>;
|
|
23
|
+
}
|