@copado/agentia-cli 0.53.0-alpha.0 → 0.56.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 +232 -112
- package/dist/commands/cicd/credential/create.d.ts +12 -0
- package/dist/commands/cicd/credential/create.js +39 -0
- package/dist/commands/cicd/credential/create.js.map +1 -0
- package/dist/commands/cicd/credential/update.d.ts +15 -0
- package/dist/commands/cicd/credential/update.js +57 -0
- package/dist/commands/cicd/credential/update.js.map +1 -0
- package/dist/commands/cicd/work/commit.d.ts +31 -0
- package/dist/commands/cicd/work/commit.js +254 -0
- package/dist/commands/cicd/work/commit.js.map +1 -0
- package/dist/lib/environment-credential-flags.d.ts +26 -0
- package/dist/lib/environment-credential-flags.js +70 -0
- package/dist/lib/environment-credential-flags.js.map +1 -0
- package/dist/lib/environment-credential-operations.d.ts +15 -0
- package/dist/lib/environment-credential-operations.js +41 -0
- package/dist/lib/environment-credential-operations.js.map +1 -0
- package/dist/lib/environment-types.d.ts +7 -0
- package/dist/lib/environment-types.js +6 -0
- package/dist/lib/environment-types.js.map +1 -1
- package/dist/lib/mcp/result.d.ts +4 -0
- package/dist/lib/mcp/result.js +6 -2
- package/dist/lib/mcp/result.js.map +1 -1
- package/dist/lib/mcp/tools.d.ts +40 -0
- package/dist/lib/mcp/tools.js +60 -0
- package/dist/lib/mcp/tools.js.map +1 -1
- package/dist/lib/mcp/work-tools.d.ts +24 -0
- package/dist/lib/mcp/work-tools.js +106 -0
- package/dist/lib/mcp/work-tools.js.map +1 -1
- package/dist/lib/setup-templates.d.ts +1 -1
- package/dist/lib/setup-templates.js +17 -6
- package/dist/lib/setup-templates.js.map +1 -1
- package/dist/lib/work-commit.d.ts +118 -0
- package/dist/lib/work-commit.js +348 -0
- package/dist/lib/work-commit.js.map +1 -0
- package/oclif.manifest.json +297 -1
- package/package.json +4 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { type EnvironmentCredential } from '../../../lib/environment-types.js';
|
|
3
|
+
export default class CredentialCreate extends AgentiaCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
readonly default: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
readonly environmentid: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
readonly name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<EnvironmentCredential>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { credentialCreateFlags, EnvironmentCredentialInputError, validateCredentialName, } from '../../../lib/environment-credential-flags.js';
|
|
3
|
+
import { createEnvironmentCredential, resolveEnvironmentOrgType, } from '../../../lib/environment-credential-operations.js';
|
|
4
|
+
export default class CredentialCreate extends AgentiaCommand {
|
|
5
|
+
static description = 'Create a Copado environment credential';
|
|
6
|
+
static examples = [
|
|
7
|
+
'<%= config.bin %> <%= command.id %> --environmentid <environment-id> --name "CI User"',
|
|
8
|
+
'<%= config.bin %> <%= command.id %> --environmentid <environment-id> --name "CI User" --default',
|
|
9
|
+
'<%= config.bin %> <%= command.id %> --environmentid <environment-id> --name "CI User" --json',
|
|
10
|
+
];
|
|
11
|
+
static flags = credentialCreateFlags;
|
|
12
|
+
async run() {
|
|
13
|
+
const { flags } = await this.parse(CredentialCreate);
|
|
14
|
+
const nameError = validateCredentialName(flags.name);
|
|
15
|
+
if (nameError !== undefined) {
|
|
16
|
+
this.error(nameError, { exit: 2 });
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const orgType = await this.withSpinner('Fetching environment', () => resolveEnvironmentOrgType(flags.environmentid));
|
|
20
|
+
const credential = await this.withSpinner('Creating credential', () => createEnvironmentCredential({
|
|
21
|
+
defaultCredential: flags.default,
|
|
22
|
+
environmentId: flags.environmentid,
|
|
23
|
+
name: flags.name,
|
|
24
|
+
orgType,
|
|
25
|
+
}));
|
|
26
|
+
this.display(() => {
|
|
27
|
+
this.log(`Created credential ${credential.name ?? flags.name} (ID: ${credential.id ?? 'unknown id'}).`);
|
|
28
|
+
});
|
|
29
|
+
return credential;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
if (error instanceof EnvironmentCredentialInputError) {
|
|
33
|
+
this.error(error.message, { exit: error.exitCode });
|
|
34
|
+
}
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/cicd/credential/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,mDAAmD,CAAA;AAG1D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc;IAC1D,MAAM,CAAU,WAAW,GAAG,wCAAwC,CAAA;IACtE,MAAM,CAAU,QAAQ,GAAG;QACzB,uFAAuF;QACvF,iGAAiG;QACjG,8FAA8F;KAC/F,CAAA;IACD,MAAM,CAAU,KAAK,GAAG,qBAAqB,CAAA;IAEtC,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAClD,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEpD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QAClC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAClE,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAC/C,CAAA;YACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE,CACpE,2BAA2B,CAAC;gBAC1B,iBAAiB,EAAE,KAAK,CAAC,OAAO;gBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO;aACR,CAAC,CACH,CAAA;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChB,IAAI,CAAC,GAAG,CAAC,sBAAsB,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,SAAS,UAAU,CAAC,EAAE,IAAI,YAAY,IAAI,CAAC,CAAA;YACzG,CAAC,CAAC,CAAA;YAEF,OAAO,UAAU,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,+BAA+B,EAAE,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAC,CAAC,CAAA;YACnD,CAAC;YAED,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { type EnvironmentCredential } from '../../../lib/environment-types.js';
|
|
3
|
+
export default class CredentialUpdate 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 default: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
readonly environmentid: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
readonly name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<EnvironmentCredential>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
+
import { collectCredentialUpdateFlagKeys, credentialUpdateFlags, EnvironmentCredentialInputError, validateCredentialName, } from '../../../lib/environment-credential-flags.js';
|
|
4
|
+
import { resolveEnvironmentOrgType, updateEnvironmentCredential, } from '../../../lib/environment-credential-operations.js';
|
|
5
|
+
export default class CredentialUpdate extends AgentiaCommand {
|
|
6
|
+
static args = {
|
|
7
|
+
id: Args.string({
|
|
8
|
+
description: 'Copado credential ID',
|
|
9
|
+
required: true,
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
static description = 'Update a Copado environment credential by ID';
|
|
13
|
+
static examples = [
|
|
14
|
+
'<%= config.bin %> <%= command.id %> <credential-id> --environmentid <environment-id> --name "CI User"',
|
|
15
|
+
'<%= config.bin %> <%= command.id %> <credential-id> --environmentid <environment-id> --default',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> <credential-id> --environmentid <environment-id> --no-default --json',
|
|
17
|
+
];
|
|
18
|
+
static flags = credentialUpdateFlags;
|
|
19
|
+
async run() {
|
|
20
|
+
const { args, flags } = await this.parse(CredentialUpdate);
|
|
21
|
+
const selectedKeys = collectCredentialUpdateFlagKeys(flags);
|
|
22
|
+
if (selectedKeys.length === 0) {
|
|
23
|
+
this.error('Must provide at least one flag to update.', {
|
|
24
|
+
exit: 2,
|
|
25
|
+
suggestions: [
|
|
26
|
+
`${this.config.bin} cicd credential update ${args.id} --environmentid ${flags.environmentid} --name <name>`,
|
|
27
|
+
`${this.config.bin} cicd credential update ${args.id} --environmentid ${flags.environmentid} --default`,
|
|
28
|
+
],
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const nameError = validateCredentialName(flags.name);
|
|
32
|
+
if (nameError !== undefined) {
|
|
33
|
+
this.error(nameError, { exit: 2 });
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const orgType = await this.withSpinner('Fetching environment', () => resolveEnvironmentOrgType(flags.environmentid));
|
|
37
|
+
const credential = await this.withSpinner('Updating credential', () => updateEnvironmentCredential({
|
|
38
|
+
credentialId: args.id,
|
|
39
|
+
defaultCredential: flags.default,
|
|
40
|
+
environmentId: flags.environmentid,
|
|
41
|
+
name: flags.name,
|
|
42
|
+
orgType,
|
|
43
|
+
}));
|
|
44
|
+
this.display(() => {
|
|
45
|
+
this.log(`Updated credential ${credential.name ?? flags.name ?? args.id} (ID: ${credential.id ?? args.id}).`);
|
|
46
|
+
});
|
|
47
|
+
return credential;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
if (error instanceof EnvironmentCredentialInputError) {
|
|
51
|
+
this.error(error.message, { exit: error.exitCode });
|
|
52
|
+
}
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/cicd/credential/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { type WorkCommitResult } from '../../../lib/work-commit.js';
|
|
3
|
+
export default class WorkCommit extends AgentiaCommand {
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
action: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
'base-branch': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
cloud: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
'commit-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
'execute-commit': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
message: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
'metadata-category': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
'metadata-message': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
+
'metadata-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
'metadata-raw-json': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
'metadata-type': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
'platform-experience': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
|
+
'recreate-feature-branch': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
24
|
+
selection: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
25
|
+
stdin: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
26
|
+
wait: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
27
|
+
'wait-timeout': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
28
|
+
};
|
|
29
|
+
run(): Promise<WorkCommitResult>;
|
|
30
|
+
protected toErrorJson(err: unknown): unknown;
|
|
31
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
4
|
+
import { resolveWorkItemId, WorkActiveResolutionError } from '../../../lib/work-active.js';
|
|
5
|
+
import { buildWorkCommitRequest, formatWorkCommitResult, normalizeWorkCommitInput, performWorkCommit, WORK_COMMIT_ACTIONS, WORK_COMMIT_DEFAULT_TIMEOUT_SECONDS, WORK_COMMIT_PLATFORM_EXPERIENCES, WorkCommitJobFailedError, WorkCommitTimeoutError, WorkCommitValidationError, } from '../../../lib/work-commit.js';
|
|
6
|
+
function readStdin() {
|
|
7
|
+
if (process.stdin.isTTY) {
|
|
8
|
+
throw new WorkCommitValidationError('Cannot read --stdin from an interactive terminal. Pipe JSON input or use --file <path>.');
|
|
9
|
+
}
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
let data = '';
|
|
12
|
+
process.stdin.setEncoding('utf8');
|
|
13
|
+
process.stdin.on('data', (chunk) => {
|
|
14
|
+
data += chunk;
|
|
15
|
+
});
|
|
16
|
+
process.stdin.on('end', () => resolve(data));
|
|
17
|
+
process.stdin.on('error', reject);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function readJsonFile(path) {
|
|
21
|
+
try {
|
|
22
|
+
return readFileSync(path, 'utf8');
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
throw new WorkCommitValidationError(`Cannot read JSON request file ${path}: ${error.message}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function parseJsonValue(raw, label) {
|
|
29
|
+
try {
|
|
30
|
+
return JSON.parse(raw);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
throw new WorkCommitValidationError(`${label} must contain valid JSON: ${error.message}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function hasSimpleChangeFlags(flags) {
|
|
37
|
+
return (flags.action !== undefined ||
|
|
38
|
+
flags['metadata-category'] !== undefined ||
|
|
39
|
+
flags['metadata-message'] !== undefined ||
|
|
40
|
+
flags['metadata-name'] !== undefined ||
|
|
41
|
+
flags['metadata-raw-json'] !== undefined ||
|
|
42
|
+
flags['metadata-type'] !== undefined ||
|
|
43
|
+
flags.selection !== undefined);
|
|
44
|
+
}
|
|
45
|
+
function simpleInputFromFlags(flags) {
|
|
46
|
+
const rawJson = flags['metadata-raw-json'] === undefined
|
|
47
|
+
? undefined
|
|
48
|
+
: parseJsonValue(flags['metadata-raw-json'], '--metadata-raw-json');
|
|
49
|
+
return {
|
|
50
|
+
baseBranch: flags['base-branch'] ?? null,
|
|
51
|
+
changes: [
|
|
52
|
+
{
|
|
53
|
+
...(flags.action === undefined ? {} : { a: flags.action }),
|
|
54
|
+
...(flags['metadata-category'] === undefined ? {} : { c: flags['metadata-category'] }),
|
|
55
|
+
...(rawJson === undefined ? {} : { j: rawJson }),
|
|
56
|
+
...(flags['metadata-message'] === undefined ? {} : { m: flags['metadata-message'] }),
|
|
57
|
+
n: flags['metadata-name'],
|
|
58
|
+
...(flags.selection === undefined ? {} : { selections: flags.selection }),
|
|
59
|
+
t: flags['metadata-type'],
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
commitId: flags['commit-id'],
|
|
63
|
+
executeCommit: flags['execute-commit'],
|
|
64
|
+
message: flags.message,
|
|
65
|
+
recreateFeatureBranch: flags['recreate-feature-branch'],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async function jsonInputFromFlags(flags) {
|
|
69
|
+
const raw = flags.file === undefined ? await readStdin() : readJsonFile(flags.file);
|
|
70
|
+
const input = normalizeWorkCommitInput(parseJsonValue(raw, flags.file === undefined ? 'stdin' : flags.file));
|
|
71
|
+
return {
|
|
72
|
+
...input,
|
|
73
|
+
...(flags['base-branch'] === undefined ? {} : { baseBranch: flags['base-branch'] }),
|
|
74
|
+
...(flags['commit-id'] === undefined ? {} : { commitId: flags['commit-id'] }),
|
|
75
|
+
...(flags['execute-commit'] ? {} : { executeCommit: false }),
|
|
76
|
+
...(flags.message === undefined ? {} : { message: flags.message }),
|
|
77
|
+
...(flags['recreate-feature-branch'] ? { recreateFeatureBranch: true } : {}),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
async function commitInputFromFlags(flags) {
|
|
81
|
+
const jsonModes = [flags.file !== undefined, flags.stdin].filter(Boolean).length;
|
|
82
|
+
const simpleMode = hasSimpleChangeFlags(flags);
|
|
83
|
+
if (jsonModes > 1) {
|
|
84
|
+
throw new WorkCommitValidationError('Use only one JSON input mode: --file or --stdin.');
|
|
85
|
+
}
|
|
86
|
+
if (jsonModes > 0 && simpleMode) {
|
|
87
|
+
throw new WorkCommitValidationError('Use JSON input or simple metadata flags, not both.');
|
|
88
|
+
}
|
|
89
|
+
if (jsonModes > 0) {
|
|
90
|
+
return jsonInputFromFlags(flags);
|
|
91
|
+
}
|
|
92
|
+
if (!simpleMode) {
|
|
93
|
+
throw new WorkCommitValidationError('Requires simple metadata flags such as --metadata-name and --metadata-type, or JSON input with --file/--stdin.');
|
|
94
|
+
}
|
|
95
|
+
return simpleInputFromFlags(flags);
|
|
96
|
+
}
|
|
97
|
+
export default class WorkCommit extends AgentiaCommand {
|
|
98
|
+
static args = {
|
|
99
|
+
id: Args.string({
|
|
100
|
+
description: 'User story ID (defaults to the active work item from `work set`)',
|
|
101
|
+
required: false,
|
|
102
|
+
}),
|
|
103
|
+
};
|
|
104
|
+
static description = [
|
|
105
|
+
'Create and optionally wait for a Copado cloud commit job for a user story.',
|
|
106
|
+
'Preflights the story, submits POST /release/commit, and polls the job monitor by default.',
|
|
107
|
+
].join(' ');
|
|
108
|
+
static examples = [
|
|
109
|
+
'<%= config.bin %> <%= command.id %> --cloud --message "Commit AccountService" --metadata-name AccountService --metadata-type ApexClass --action Add',
|
|
110
|
+
'<%= config.bin %> <%= command.id %> a07XXXXXXXXXXXXXXX --cloud --message "Update Aura files" --metadata-name accountEditor --metadata-type AuraDefinitionBundle --action SelectiveCommit --selection accountEditor/accountEditor.cmp --selection accountEditor/accountEditorController.js',
|
|
111
|
+
'cat commit-request.json | <%= config.bin %> <%= command.id %> --cloud --stdin --json',
|
|
112
|
+
];
|
|
113
|
+
static flags = {
|
|
114
|
+
action: Flags.string({
|
|
115
|
+
description: 'Metadata action for simple flag input. Defaults to Add.',
|
|
116
|
+
options: [...WORK_COMMIT_ACTIONS],
|
|
117
|
+
}),
|
|
118
|
+
'base-branch': Flags.string({
|
|
119
|
+
description: 'Optional base branch to include in the commit request.',
|
|
120
|
+
}),
|
|
121
|
+
cloud: Flags.boolean({
|
|
122
|
+
default: false,
|
|
123
|
+
description: 'Use the Copado cloud commit API. Required for this command.',
|
|
124
|
+
}),
|
|
125
|
+
'commit-id': Flags.string({
|
|
126
|
+
description: 'Existing local Git commit identifier to register when --no-execute-commit is used.',
|
|
127
|
+
}),
|
|
128
|
+
'execute-commit': Flags.boolean({
|
|
129
|
+
allowNo: true,
|
|
130
|
+
default: true,
|
|
131
|
+
description: 'Execute the Copado commit job. Use --no-execute-commit only with --commit-id.',
|
|
132
|
+
}),
|
|
133
|
+
file: Flags.string({
|
|
134
|
+
char: 'f',
|
|
135
|
+
description: 'Path to a JSON commit request body.',
|
|
136
|
+
}),
|
|
137
|
+
message: Flags.string({
|
|
138
|
+
char: 'm',
|
|
139
|
+
description: 'Commit message. Required unless provided by JSON input.',
|
|
140
|
+
}),
|
|
141
|
+
'metadata-category': Flags.string({
|
|
142
|
+
description: 'Optional metadata category for simple flag input, usually SFDX.',
|
|
143
|
+
}),
|
|
144
|
+
'metadata-message': Flags.string({
|
|
145
|
+
description: 'Optional per-change message for simple flag input.',
|
|
146
|
+
}),
|
|
147
|
+
'metadata-name': Flags.string({
|
|
148
|
+
description: 'Metadata full name for simple flag input.',
|
|
149
|
+
}),
|
|
150
|
+
'metadata-raw-json': Flags.string({
|
|
151
|
+
description: 'Optional raw metadata JSON value for simple flag input.',
|
|
152
|
+
}),
|
|
153
|
+
'metadata-type': Flags.string({
|
|
154
|
+
description: 'Metadata type for simple flag input, for example ApexClass.',
|
|
155
|
+
}),
|
|
156
|
+
'platform-experience': Flags.string({
|
|
157
|
+
default: 'sfdx',
|
|
158
|
+
description: 'Initial platform-experience header for preflight. The preflight response wins for commit.',
|
|
159
|
+
options: [...WORK_COMMIT_PLATFORM_EXPERIENCES],
|
|
160
|
+
}),
|
|
161
|
+
'recreate-feature-branch': Flags.boolean({
|
|
162
|
+
default: false,
|
|
163
|
+
description: 'Ask Copado to recreate the feature branch before committing.',
|
|
164
|
+
}),
|
|
165
|
+
selection: Flags.string({
|
|
166
|
+
description: 'Selected file inside a bundle for SelectiveCommit. Can be provided multiple times.',
|
|
167
|
+
multiple: true,
|
|
168
|
+
}),
|
|
169
|
+
stdin: Flags.boolean({
|
|
170
|
+
default: false,
|
|
171
|
+
description: 'Read a JSON commit request body from stdin.',
|
|
172
|
+
}),
|
|
173
|
+
wait: Flags.boolean({
|
|
174
|
+
allowNo: true,
|
|
175
|
+
default: true,
|
|
176
|
+
description: 'Poll the commit job to a terminal status when a jobExecution Id is returned.',
|
|
177
|
+
}),
|
|
178
|
+
'wait-timeout': Flags.integer({
|
|
179
|
+
default: WORK_COMMIT_DEFAULT_TIMEOUT_SECONDS,
|
|
180
|
+
description: 'Maximum seconds to wait for the commit job.',
|
|
181
|
+
}),
|
|
182
|
+
};
|
|
183
|
+
async run() {
|
|
184
|
+
const { args, flags } = await this.parse(WorkCommit);
|
|
185
|
+
const commitFlags = flags;
|
|
186
|
+
if (!commitFlags.cloud) {
|
|
187
|
+
this.error('Only cloud commit is supported for now. Pass --cloud to use POST /release/commit.', { exit: 2 });
|
|
188
|
+
}
|
|
189
|
+
if (!Number.isInteger(commitFlags['wait-timeout']) || commitFlags['wait-timeout'] <= 0) {
|
|
190
|
+
this.error('--wait-timeout must be a positive integer.', { exit: 2 });
|
|
191
|
+
}
|
|
192
|
+
let workItemId;
|
|
193
|
+
try {
|
|
194
|
+
workItemId = await resolveWorkItemId(args.id);
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
if (error instanceof WorkActiveResolutionError) {
|
|
198
|
+
this.error(error.message, {
|
|
199
|
+
exit: 1,
|
|
200
|
+
suggestions: [`${this.config.bin} cicd work set <id>`],
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
try {
|
|
206
|
+
const input = await commitInputFromFlags(commitFlags);
|
|
207
|
+
const request = buildWorkCommitRequest(input, { message: commitFlags.message, userStoryId: workItemId });
|
|
208
|
+
const result = await performWorkCommit({
|
|
209
|
+
hooks: {
|
|
210
|
+
log: (message) => this.display(() => this.log(message)),
|
|
211
|
+
withSpinner: (message, action) => this.withSpinner(message, action),
|
|
212
|
+
},
|
|
213
|
+
initialPlatformExperience: commitFlags['platform-experience'],
|
|
214
|
+
request,
|
|
215
|
+
timeoutSeconds: commitFlags['wait-timeout'],
|
|
216
|
+
wait: commitFlags.wait,
|
|
217
|
+
});
|
|
218
|
+
this.display(() => {
|
|
219
|
+
this.log(formatWorkCommitResult(result));
|
|
220
|
+
});
|
|
221
|
+
return result;
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
if (error instanceof WorkCommitValidationError) {
|
|
225
|
+
this.error(error.message, { exit: 2 });
|
|
226
|
+
}
|
|
227
|
+
if (error instanceof WorkCommitJobFailedError || error instanceof WorkCommitTimeoutError) {
|
|
228
|
+
this.display(() => {
|
|
229
|
+
if (error.result !== undefined) {
|
|
230
|
+
this.log(formatWorkCommitResult(error.result));
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
error.oclif = { exit: 1 };
|
|
234
|
+
throw error;
|
|
235
|
+
}
|
|
236
|
+
throw error;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
toErrorJson(err) {
|
|
240
|
+
const base = super.toErrorJson(err);
|
|
241
|
+
if (err instanceof WorkCommitJobFailedError || err instanceof WorkCommitTimeoutError) {
|
|
242
|
+
return {
|
|
243
|
+
...base,
|
|
244
|
+
error: {
|
|
245
|
+
...(base.error && typeof base.error === 'object' ? base.error : {}),
|
|
246
|
+
...(err.jobMonitor === undefined ? {} : { jobMonitor: err.jobMonitor }),
|
|
247
|
+
...(err.result === undefined ? {} : { result: err.result }),
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
return base;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../../src/commands/cicd/work/commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type EnvironmentCredentialMutationPayload } from './environment-types.js';
|
|
2
|
+
export declare const CUSTOM_DOMAIN_CREDENTIALS_UNSUPPORTED_MESSAGE = "Creating or updating credentials for Custom Domain environments is not supported.";
|
|
3
|
+
export declare const ENVIRONMENT_TYPE_REQUIRED_MESSAGE = "Environment type is required to create or update a credential.";
|
|
4
|
+
export declare class EnvironmentCredentialInputError extends Error {
|
|
5
|
+
readonly exitCode = 2;
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
export declare const credentialEnvironmentIdFlag: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
export declare const credentialCreateFlags: {
|
|
10
|
+
readonly default: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
readonly environmentid: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
readonly name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
export declare const credentialUpdateFlags: {
|
|
15
|
+
readonly default: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
readonly environmentid: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
readonly name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
};
|
|
19
|
+
export type CredentialUpdateFlagValues = {
|
|
20
|
+
default?: boolean;
|
|
21
|
+
name?: string;
|
|
22
|
+
};
|
|
23
|
+
export declare function collectCredentialUpdateFlagKeys(flags: CredentialUpdateFlagValues): Array<'default' | 'name'>;
|
|
24
|
+
export declare function validateCredentialName(name: string | undefined): string | undefined;
|
|
25
|
+
export declare function buildCredentialCreatePayload(name: string, orgType: string, defaultCredential: boolean): EnvironmentCredentialMutationPayload;
|
|
26
|
+
export declare function buildCredentialUpdatePayload(orgType: string, flags: CredentialUpdateFlagValues): EnvironmentCredentialMutationPayload;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
export const CUSTOM_DOMAIN_CREDENTIALS_UNSUPPORTED_MESSAGE = 'Creating or updating credentials for Custom Domain environments is not supported.';
|
|
3
|
+
export const ENVIRONMENT_TYPE_REQUIRED_MESSAGE = 'Environment type is required to create or update a credential.';
|
|
4
|
+
export class EnvironmentCredentialInputError extends Error {
|
|
5
|
+
exitCode = 2;
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = 'EnvironmentCredentialInputError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export const credentialEnvironmentIdFlag = Flags.string({
|
|
12
|
+
description: 'Copado environment ID',
|
|
13
|
+
required: true,
|
|
14
|
+
});
|
|
15
|
+
export const credentialCreateFlags = {
|
|
16
|
+
default: Flags.boolean({
|
|
17
|
+
allowNo: true,
|
|
18
|
+
default: false,
|
|
19
|
+
description: 'Mark this credential as the environment default',
|
|
20
|
+
}),
|
|
21
|
+
environmentid: credentialEnvironmentIdFlag,
|
|
22
|
+
name: Flags.string({
|
|
23
|
+
description: 'Credential name',
|
|
24
|
+
required: true,
|
|
25
|
+
}),
|
|
26
|
+
};
|
|
27
|
+
export const credentialUpdateFlags = {
|
|
28
|
+
default: Flags.boolean({
|
|
29
|
+
allowNo: true,
|
|
30
|
+
description: 'Mark this credential as the environment default',
|
|
31
|
+
}),
|
|
32
|
+
environmentid: credentialEnvironmentIdFlag,
|
|
33
|
+
name: Flags.string({
|
|
34
|
+
description: 'Credential name',
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
export function collectCredentialUpdateFlagKeys(flags) {
|
|
38
|
+
const selected = [];
|
|
39
|
+
if (flags.name !== undefined) {
|
|
40
|
+
selected.push('name');
|
|
41
|
+
}
|
|
42
|
+
if (flags.default !== undefined) {
|
|
43
|
+
selected.push('default');
|
|
44
|
+
}
|
|
45
|
+
return selected;
|
|
46
|
+
}
|
|
47
|
+
export function validateCredentialName(name) {
|
|
48
|
+
if (typeof name === 'string' && name.trim().length === 0) {
|
|
49
|
+
return 'name value cannot be empty';
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
export function buildCredentialCreatePayload(name, orgType, defaultCredential) {
|
|
54
|
+
return {
|
|
55
|
+
defaultCredential,
|
|
56
|
+
name,
|
|
57
|
+
orgType,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function buildCredentialUpdatePayload(orgType, flags) {
|
|
61
|
+
const payload = { orgType };
|
|
62
|
+
if (flags.name !== undefined) {
|
|
63
|
+
payload.name = flags.name;
|
|
64
|
+
}
|
|
65
|
+
if (flags.default !== undefined) {
|
|
66
|
+
payload.defaultCredential = flags.default;
|
|
67
|
+
}
|
|
68
|
+
return payload;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=environment-credential-flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-credential-flags.js","sourceRoot":"","sources":["../../src/lib/environment-credential-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAIjC,MAAM,CAAC,MAAM,6CAA6C,GACxD,mFAAmF,CAAA;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,gEAAgE,CAAA;AAEjH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,QAAQ,GAAG,CAAC,CAAA;IAErB,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAA;IAC/C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC,MAAM,CAAC;IACtD,WAAW,EAAE,uBAAuB;IACpC,QAAQ,EAAE,IAAI;CACf,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,iDAAiD;KAC/D,CAAC;IACF,aAAa,EAAE,2BAA2B;IAC1C,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,IAAI;KACf,CAAC;CACM,CAAA;AAEV,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,iDAAiD;KAC/D,CAAC;IACF,aAAa,EAAE,2BAA2B;IAC1C,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,iBAAiB;KAC/B,CAAC;CACM,CAAA;AAOV,MAAM,UAAU,+BAA+B,CAAC,KAAiC;IAC/E,MAAM,QAAQ,GAA8B,EAAE,CAAA;IAE9C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAwB;IAC7D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,4BAA4B,CAAA;IACrC,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAAY,EACZ,OAAe,EACf,iBAA0B;IAE1B,OAAO;QACL,iBAAiB;QACjB,IAAI;QACJ,OAAO;KACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAe,EACf,KAAiC;IAEjC,MAAM,OAAO,GAAyC,EAAC,OAAO,EAAC,CAAA;IAE/D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAA;IAC3C,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type EnvironmentCredential } from './environment-types.js';
|
|
2
|
+
export declare function resolveEnvironmentOrgType(environmentId: string): Promise<string>;
|
|
3
|
+
export declare function createEnvironmentCredential(input: {
|
|
4
|
+
defaultCredential: boolean;
|
|
5
|
+
environmentId: string;
|
|
6
|
+
name: string;
|
|
7
|
+
orgType: string;
|
|
8
|
+
}): Promise<EnvironmentCredential>;
|
|
9
|
+
export declare function updateEnvironmentCredential(input: {
|
|
10
|
+
credentialId: string;
|
|
11
|
+
defaultCredential?: boolean;
|
|
12
|
+
environmentId: string;
|
|
13
|
+
name?: string;
|
|
14
|
+
orgType: string;
|
|
15
|
+
}): Promise<EnvironmentCredential>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CicdGateway } from './cicd-gateway.js';
|
|
2
|
+
import { buildCredentialCreatePayload, buildCredentialUpdatePayload, CUSTOM_DOMAIN_CREDENTIALS_UNSUPPORTED_MESSAGE, ENVIRONMENT_TYPE_REQUIRED_MESSAGE, EnvironmentCredentialInputError, } from './environment-credential-flags.js';
|
|
3
|
+
import { environmentCredentialEndpoint, environmentCredentialsEndpoint, environmentEndpoint, } from './environment-types.js';
|
|
4
|
+
export async function resolveEnvironmentOrgType(environmentId) {
|
|
5
|
+
const environment = await CicdGateway.call({
|
|
6
|
+
endpoint: environmentEndpoint(environmentId),
|
|
7
|
+
method: 'GET',
|
|
8
|
+
});
|
|
9
|
+
const orgType = typeof environment.type === 'string' ? environment.type.trim() : '';
|
|
10
|
+
if (orgType.length === 0) {
|
|
11
|
+
throw new EnvironmentCredentialInputError(ENVIRONMENT_TYPE_REQUIRED_MESSAGE);
|
|
12
|
+
}
|
|
13
|
+
if (orgType === 'Custom Domain') {
|
|
14
|
+
throw new EnvironmentCredentialInputError(CUSTOM_DOMAIN_CREDENTIALS_UNSUPPORTED_MESSAGE);
|
|
15
|
+
}
|
|
16
|
+
return orgType;
|
|
17
|
+
}
|
|
18
|
+
export async function createEnvironmentCredential(input) {
|
|
19
|
+
return CicdGateway.call({
|
|
20
|
+
body: buildCredentialCreatePayload(input.name, input.orgType, input.defaultCredential),
|
|
21
|
+
endpoint: environmentCredentialsEndpoint(input.environmentId),
|
|
22
|
+
headers: {
|
|
23
|
+
'Content-Type': 'application/json',
|
|
24
|
+
},
|
|
25
|
+
method: 'POST',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export async function updateEnvironmentCredential(input) {
|
|
29
|
+
return CicdGateway.call({
|
|
30
|
+
body: buildCredentialUpdatePayload(input.orgType, {
|
|
31
|
+
default: input.defaultCredential,
|
|
32
|
+
name: input.name,
|
|
33
|
+
}),
|
|
34
|
+
endpoint: environmentCredentialEndpoint(input.environmentId, input.credentialId),
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
},
|
|
38
|
+
method: 'PATCH',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=environment-credential-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-credential-operations.js","sourceRoot":"","sources":["../../src/lib/environment-credential-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,6CAA6C,EAC7C,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAGL,6BAA6B,EAC7B,8BAA8B,EAC9B,mBAAmB,GACpB,MAAM,wBAAwB,CAAA;AAE/B,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,aAAqB;IACnE,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,CAAc;QACtD,QAAQ,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAC5C,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,+BAA+B,CAAC,iCAAiC,CAAC,CAAA;IAC9E,CAAC;IAED,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;QAChC,MAAM,IAAI,+BAA+B,CAAC,6CAA6C,CAAC,CAAA;IAC1F,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAKjD;IACC,OAAO,WAAW,CAAC,IAAI,CAAwB;QAC7C,IAAI,EAAE,4BAA4B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC;QACtF,QAAQ,EAAE,8BAA8B,CAAC,KAAK,CAAC,aAAa,CAAC;QAC7D,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAMjD;IACC,OAAO,WAAW,CAAC,IAAI,CAAwB;QAC7C,IAAI,EAAE,4BAA4B,CAAC,KAAK,CAAC,OAAO,EAAE;YAChD,OAAO,EAAE,KAAK,CAAC,iBAAiB;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;QACF,QAAQ,EAAE,6BAA6B,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;QAChF,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,OAAO;KAChB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -21,6 +21,11 @@ export type EnvironmentCredential = {
|
|
|
21
21
|
signature?: string;
|
|
22
22
|
username?: string;
|
|
23
23
|
};
|
|
24
|
+
export type EnvironmentCredentialMutationPayload = {
|
|
25
|
+
defaultCredential?: boolean;
|
|
26
|
+
name?: string;
|
|
27
|
+
orgType: string;
|
|
28
|
+
};
|
|
24
29
|
export type Environment = {
|
|
25
30
|
apexTestLevel?: string;
|
|
26
31
|
createdBy?: string;
|
|
@@ -77,6 +82,8 @@ export type EnvironmentListFilters = ListPaginationQuery & {
|
|
|
77
82
|
export declare const ENVIRONMENT_LIST_FILTER_KEYS: readonly ["name", "orgId", "platform", "type"];
|
|
78
83
|
export declare function environmentsListEndpoint(filters?: EnvironmentListFilters): string;
|
|
79
84
|
export declare function environmentEndpoint(id: string): string;
|
|
85
|
+
export declare function environmentCredentialsEndpoint(environmentId: string): string;
|
|
86
|
+
export declare function environmentCredentialEndpoint(environmentId: string, credentialId: string): string;
|
|
80
87
|
export declare function environmentCredentialAuthUrlEndpoint(environmentId: string, credentialId: string, redirectUrl: string): string;
|
|
81
88
|
export declare function environmentCredentialValidateEndpoint(environmentId: string, credentialId: string): string;
|
|
82
89
|
export type EnvironmentCredentialValidation = {
|