@copado/agentia-cli 0.38.0-alpha.0 → 0.41.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 +1545 -1420
- package/dist/commands/auth/set.d.ts +2 -13
- package/dist/commands/auth/set.js +41 -108
- package/dist/commands/auth/set.js.map +1 -1
- package/dist/commands/auth/unset.d.ts +15 -0
- package/dist/commands/auth/unset.js +64 -0
- package/dist/commands/auth/unset.js.map +1 -0
- package/dist/commands/{environment → cicd/environment}/auth/status.d.ts +2 -2
- package/dist/commands/{environment → cicd/environment}/auth/status.js +3 -3
- package/dist/commands/cicd/environment/auth/status.js.map +1 -0
- package/dist/commands/{environment → cicd/environment}/auth/web/login.d.ts +2 -2
- package/dist/commands/{environment → cicd/environment}/auth/web/login.js +2 -2
- package/dist/commands/cicd/environment/auth/web/login.js.map +1 -0
- package/dist/commands/{environment → cicd/environment}/create.d.ts +2 -2
- package/dist/commands/{environment → cicd/environment}/create.js +3 -3
- package/dist/commands/cicd/environment/create.js.map +1 -0
- package/dist/commands/{environment → cicd/environment}/get.d.ts +2 -2
- package/dist/commands/{environment → cicd/environment}/get.js +3 -3
- package/dist/commands/cicd/environment/get.js.map +1 -0
- package/dist/commands/{environment → cicd/environment}/list.d.ts +4 -4
- package/dist/commands/{environment → cicd/environment}/list.js +6 -6
- package/dist/commands/cicd/environment/list.js.map +1 -0
- package/dist/commands/{environment → cicd/environment}/open.d.ts +1 -1
- package/dist/commands/{environment → cicd/environment}/open.js +4 -4
- package/dist/commands/cicd/environment/open.js.map +1 -0
- package/dist/commands/{environment → cicd/environment}/update.d.ts +2 -2
- package/dist/commands/{environment → cicd/environment}/update.js +4 -4
- package/dist/commands/cicd/environment/update.js.map +1 -0
- package/dist/commands/{job → cicd/job}/get.d.ts +2 -2
- package/dist/commands/{job → cicd/job}/get.js +3 -3
- package/dist/commands/cicd/job/get.js.map +1 -0
- package/dist/commands/{job → cicd/job}/kill.d.ts +2 -2
- package/dist/commands/{job → cicd/job}/kill.js +3 -3
- package/dist/commands/cicd/job/kill.js.map +1 -0
- package/dist/commands/{job → cicd/job}/list.d.ts +3 -3
- package/dist/commands/{job → cicd/job}/list.js +5 -5
- package/dist/commands/cicd/job/list.js.map +1 -0
- package/dist/commands/{job → cicd/job}/log/get.d.ts +1 -1
- package/dist/commands/{job → cicd/job}/log/get.js +3 -3
- package/dist/commands/cicd/job/log/get.js.map +1 -0
- package/dist/commands/{job → cicd/job}/open.d.ts +1 -1
- package/dist/commands/{job → cicd/job}/open.js +3 -3
- package/dist/commands/cicd/job/open.js.map +1 -0
- package/dist/commands/{job → cicd/job}/pause.d.ts +2 -2
- package/dist/commands/{job → cicd/job}/pause.js +3 -3
- package/dist/commands/cicd/job/pause.js.map +1 -0
- package/dist/commands/{job → cicd/job}/resume.d.ts +2 -2
- package/dist/commands/{job → cicd/job}/resume.js +3 -3
- package/dist/commands/cicd/job/resume.js.map +1 -0
- package/dist/commands/{job → cicd/job}/run.d.ts +2 -2
- package/dist/commands/{job → cicd/job}/run.js +3 -3
- package/dist/commands/cicd/job/run.js.map +1 -0
- package/dist/commands/{metadata → cicd/metadata}/content/compare.d.ts +2 -2
- package/dist/commands/{metadata → cicd/metadata}/content/compare.js +3 -3
- package/dist/commands/cicd/metadata/content/compare.js.map +1 -0
- package/dist/commands/{metadata → cicd/metadata}/content/get.d.ts +2 -2
- package/dist/commands/{metadata → cicd/metadata}/content/get.js +3 -3
- package/dist/commands/cicd/metadata/content/get.js.map +1 -0
- package/dist/commands/{metadata → cicd/metadata}/dependency/list.d.ts +2 -2
- package/dist/commands/{metadata → cicd/metadata}/dependency/list.js +5 -5
- package/dist/commands/cicd/metadata/dependency/list.js.map +1 -0
- package/dist/commands/{metadata → cicd/metadata}/index/compare.d.ts +2 -2
- package/dist/commands/{metadata → cicd/metadata}/index/compare.js +3 -3
- package/dist/commands/cicd/metadata/index/compare.js.map +1 -0
- package/dist/commands/{metadata → cicd/metadata}/list.d.ts +2 -2
- package/dist/commands/{metadata → cicd/metadata}/list.js +3 -3
- package/dist/commands/cicd/metadata/list.js.map +1 -0
- package/dist/commands/{metadata → cicd/metadata}/refresh/deleted.d.ts +2 -2
- package/dist/commands/{metadata → cicd/metadata}/refresh/deleted.js +5 -5
- package/dist/commands/cicd/metadata/refresh/deleted.js.map +1 -0
- package/dist/commands/{metadata → cicd/metadata}/refresh/run.d.ts +2 -2
- package/dist/commands/{metadata → cicd/metadata}/refresh/run.js +5 -5
- package/dist/commands/cicd/metadata/refresh/run.js.map +1 -0
- package/dist/commands/{metadata → cicd/metadata}/refresh/status.d.ts +2 -2
- package/dist/commands/{metadata → cicd/metadata}/refresh/status.js +5 -5
- package/dist/commands/cicd/metadata/refresh/status.js.map +1 -0
- package/dist/commands/{pipeline → cicd/pipeline}/connection/list.d.ts +2 -2
- package/dist/commands/{pipeline → cicd/pipeline}/connection/list.js +4 -4
- package/dist/commands/cicd/pipeline/connection/list.js.map +1 -0
- package/dist/commands/{pipeline → cicd/pipeline}/get.d.ts +2 -2
- package/dist/commands/{pipeline → cicd/pipeline}/get.js +3 -3
- package/dist/commands/cicd/pipeline/get.js.map +1 -0
- package/dist/commands/{pipeline → cicd/pipeline}/list.d.ts +3 -3
- package/dist/commands/{pipeline → cicd/pipeline}/list.js +4 -4
- package/dist/commands/cicd/pipeline/list.js.map +1 -0
- package/dist/commands/{pipeline → cicd/pipeline}/open.d.ts +1 -1
- package/dist/commands/{pipeline → cicd/pipeline}/open.js +3 -3
- package/dist/commands/cicd/pipeline/open.js.map +1 -0
- package/dist/commands/{project → cicd/project}/default/get.d.ts +2 -2
- package/dist/commands/{project → cicd/project}/default/get.js +4 -4
- package/dist/commands/cicd/project/default/get.js.map +1 -0
- package/dist/commands/{project → cicd/project}/default/set.d.ts +2 -2
- package/dist/commands/{project → cicd/project}/default/set.js +4 -4
- package/dist/commands/cicd/project/default/set.js.map +1 -0
- package/dist/commands/{project → cicd/project}/default/unset.d.ts +2 -2
- package/dist/commands/{project → cicd/project}/default/unset.js +4 -4
- package/dist/commands/cicd/project/default/unset.js.map +1 -0
- package/dist/commands/{project → cicd/project}/get.d.ts +2 -2
- package/dist/commands/{project → cicd/project}/get.js +3 -3
- package/dist/commands/cicd/project/get.js.map +1 -0
- package/dist/commands/{project → cicd/project}/list.d.ts +3 -3
- package/dist/commands/{project → cicd/project}/list.js +5 -5
- package/dist/commands/cicd/project/list.js.map +1 -0
- package/dist/commands/{project → cicd/project}/open.d.ts +1 -1
- package/dist/commands/{project → cicd/project}/open.js +4 -4
- package/dist/commands/cicd/project/open.js.map +1 -0
- package/dist/commands/{promotion → cicd/promotion}/conflict/get.d.ts +1 -1
- package/dist/commands/{promotion → cicd/promotion}/conflict/get.js +3 -3
- package/dist/commands/cicd/promotion/conflict/get.js.map +1 -0
- package/dist/commands/{promotion → cicd/promotion}/conflict/list.d.ts +2 -2
- package/dist/commands/{promotion → cicd/promotion}/conflict/list.js +3 -3
- package/dist/commands/cicd/promotion/conflict/list.js.map +1 -0
- package/dist/commands/{promotion → cicd/promotion}/conflict/resolve.d.ts +2 -2
- package/dist/commands/{promotion → cicd/promotion}/conflict/resolve.js +3 -3
- package/dist/commands/cicd/promotion/conflict/resolve.js.map +1 -0
- package/dist/commands/{promotion → cicd/promotion}/conflict/unresolve.d.ts +2 -2
- package/dist/commands/{promotion → cicd/promotion}/conflict/unresolve.js +3 -3
- package/dist/commands/cicd/promotion/conflict/unresolve.js.map +1 -0
- package/dist/commands/{promotion → cicd/promotion}/get.d.ts +2 -2
- package/dist/commands/{promotion → cicd/promotion}/get.js +3 -3
- package/dist/commands/cicd/promotion/get.js.map +1 -0
- package/dist/commands/{promotion → cicd/promotion}/list.d.ts +3 -3
- package/dist/commands/{promotion → cicd/promotion}/list.js +5 -5
- package/dist/commands/cicd/promotion/list.js.map +1 -0
- package/dist/commands/{promotion → cicd/promotion}/open.d.ts +1 -1
- package/dist/commands/{promotion → cicd/promotion}/open.js +3 -3
- package/dist/commands/cicd/promotion/open.js.map +1 -0
- package/dist/commands/{user → cicd/user}/get.d.ts +2 -2
- package/dist/commands/{user → cicd/user}/get.js +3 -3
- package/dist/commands/cicd/user/get.js.map +1 -0
- package/dist/commands/{work → cicd/work}/create.d.ts +2 -2
- package/dist/commands/{work → cicd/work}/create.js +7 -7
- package/dist/commands/cicd/work/create.js.map +1 -0
- package/dist/commands/{work → cicd/work}/delete.d.ts +1 -1
- package/dist/commands/{work → cicd/work}/delete.js +3 -3
- package/dist/commands/cicd/work/delete.js.map +1 -0
- package/dist/commands/{work → cicd/work}/done.d.ts +2 -2
- package/dist/commands/{work → cicd/work}/done.js +9 -9
- package/dist/commands/cicd/work/done.js.map +1 -0
- package/dist/commands/{work → cicd/work}/get.d.ts +2 -2
- package/dist/commands/{work → cicd/work}/get.js +5 -5
- package/dist/commands/cicd/work/get.js.map +1 -0
- package/dist/commands/{work → cicd/work}/list.d.ts +3 -3
- package/dist/commands/{work → cicd/work}/list.js +6 -6
- package/dist/commands/cicd/work/list.js.map +1 -0
- package/dist/commands/{work → cicd/work}/open.d.ts +1 -1
- package/dist/commands/{work → cicd/work}/open.js +5 -5
- package/dist/commands/cicd/work/open.js.map +1 -0
- package/dist/commands/{work → cicd/work}/push.d.ts +2 -2
- package/dist/commands/{work → cicd/work}/push.js +9 -9
- package/dist/commands/cicd/work/push.js.map +1 -0
- package/dist/commands/{work → cicd/work}/set.d.ts +2 -2
- package/dist/commands/{work → cicd/work}/set.js +6 -6
- package/dist/commands/cicd/work/set.js.map +1 -0
- package/dist/commands/{work → cicd/work}/status.d.ts +2 -2
- package/dist/commands/{work → cicd/work}/status.js +7 -7
- package/dist/commands/cicd/work/status.js.map +1 -0
- package/dist/commands/{work → cicd/work}/submit.d.ts +3 -2
- package/dist/commands/{work → cicd/work}/submit.js +30 -13
- package/dist/commands/cicd/work/submit.js.map +1 -0
- package/dist/commands/cicd/work/test.d.ts +14 -0
- package/dist/commands/cicd/work/test.js +102 -0
- package/dist/commands/cicd/work/test.js.map +1 -0
- package/dist/commands/{work → cicd/work}/update.d.ts +2 -2
- package/dist/commands/{work → cicd/work}/update.js +8 -8
- package/dist/commands/cicd/work/update.js.map +1 -0
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.js +16 -7
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/testing/job/create.d.ts +7 -0
- package/dist/commands/testing/job/create.js +11 -2
- package/dist/commands/testing/job/create.js.map +1 -1
- package/dist/commands/testing/job/update.d.ts +7 -0
- package/dist/commands/testing/job/update.js +14 -2
- package/dist/commands/testing/job/update.js.map +1 -1
- package/dist/lib/auth-config.d.ts +62 -0
- package/dist/lib/auth-config.js +246 -0
- package/dist/lib/auth-config.js.map +1 -0
- package/dist/lib/cicd-gateway.js +16 -1
- package/dist/lib/cicd-gateway.js.map +1 -1
- package/dist/lib/credential-store.d.ts +3 -0
- package/dist/lib/credential-store.js +9 -0
- package/dist/lib/credential-store.js.map +1 -1
- package/dist/lib/cursor-mcp-config.d.ts +62 -0
- package/dist/lib/cursor-mcp-config.js +173 -0
- package/dist/lib/cursor-mcp-config.js.map +1 -0
- package/dist/lib/debug.d.ts +3 -0
- package/dist/lib/debug.js +23 -0
- package/dist/lib/debug.js.map +1 -0
- package/dist/lib/local-quality-gates.d.ts +3 -0
- package/dist/lib/local-quality-gates.js +10 -4
- package/dist/lib/local-quality-gates.js.map +1 -1
- package/dist/lib/mcp/testing-tools.d.ts +14 -0
- package/dist/lib/mcp/testing-tools.js +32 -4
- package/dist/lib/mcp/testing-tools.js.map +1 -1
- package/dist/lib/mcp/tools.d.ts +23 -0
- package/dist/lib/mcp/tools.js +15 -39
- package/dist/lib/mcp/tools.js.map +1 -1
- package/dist/lib/mcp/work-tools.d.ts +2 -0
- package/dist/lib/mcp/work-tools.js +61 -25
- package/dist/lib/mcp/work-tools.js.map +1 -1
- package/dist/lib/project-default-id.js +2 -2
- package/dist/lib/project-default-id.js.map +1 -1
- package/dist/lib/project-setup.d.ts +16 -14
- package/dist/lib/project-setup.js +101 -145
- package/dist/lib/project-setup.js.map +1 -1
- package/dist/lib/setup-prompts.d.ts +30 -0
- package/dist/lib/setup-prompts.js +13 -0
- package/dist/lib/setup-prompts.js.map +1 -0
- package/dist/lib/setup-templates.d.ts +3 -3
- package/dist/lib/setup-templates.js +58 -31
- package/dist/lib/setup-templates.js.map +1 -1
- package/dist/lib/setup-wizard.d.ts +42 -0
- package/dist/lib/setup-wizard.js +422 -0
- package/dist/lib/setup-wizard.js.map +1 -0
- package/dist/lib/testing-config.d.ts +4 -2
- package/dist/lib/testing-config.js +23 -3
- package/dist/lib/testing-config.js.map +1 -1
- package/dist/lib/testing-flags.d.ts +9 -0
- package/dist/lib/testing-flags.js +24 -0
- package/dist/lib/testing-flags.js.map +1 -1
- package/dist/lib/testing-gateway.d.ts +13 -0
- package/dist/lib/testing-gateway.js +67 -1
- package/dist/lib/testing-gateway.js.map +1 -1
- package/dist/lib/testing-operations.d.ts +17 -1
- package/dist/lib/testing-operations.js +76 -5
- package/dist/lib/testing-operations.js.map +1 -1
- package/dist/lib/testing-types.d.ts +24 -4
- package/dist/lib/testing-types.js.map +1 -1
- package/dist/lib/work-active.js +2 -2
- package/dist/lib/work-active.js.map +1 -1
- package/dist/lib/work-local-run-tests.d.ts +22 -0
- package/dist/lib/work-local-run-tests.js +56 -0
- package/dist/lib/work-local-run-tests.js.map +1 -0
- package/dist/lib/work-types.d.ts +7 -0
- package/dist/lib/work-types.js +3 -0
- package/dist/lib/work-types.js.map +1 -1
- package/oclif.manifest.json +3258 -3034
- package/package.json +42 -11
- package/dist/commands/environment/auth/status.js.map +0 -1
- package/dist/commands/environment/auth/web/login.js.map +0 -1
- package/dist/commands/environment/create.js.map +0 -1
- package/dist/commands/environment/get.js.map +0 -1
- package/dist/commands/environment/list.js.map +0 -1
- package/dist/commands/environment/open.js.map +0 -1
- package/dist/commands/environment/update.js.map +0 -1
- package/dist/commands/job/get.js.map +0 -1
- package/dist/commands/job/kill.js.map +0 -1
- package/dist/commands/job/list.js.map +0 -1
- package/dist/commands/job/log/get.js.map +0 -1
- package/dist/commands/job/open.js.map +0 -1
- package/dist/commands/job/pause.js.map +0 -1
- package/dist/commands/job/resume.js.map +0 -1
- package/dist/commands/job/run.js.map +0 -1
- package/dist/commands/metadata/content/compare.js.map +0 -1
- package/dist/commands/metadata/content/get.js.map +0 -1
- package/dist/commands/metadata/dependency/list.js.map +0 -1
- package/dist/commands/metadata/index/compare.js.map +0 -1
- package/dist/commands/metadata/list.js.map +0 -1
- package/dist/commands/metadata/refresh/deleted.js.map +0 -1
- package/dist/commands/metadata/refresh/run.js.map +0 -1
- package/dist/commands/metadata/refresh/status.js.map +0 -1
- package/dist/commands/pipeline/connection/list.js.map +0 -1
- package/dist/commands/pipeline/get.js.map +0 -1
- package/dist/commands/pipeline/list.js.map +0 -1
- package/dist/commands/pipeline/open.js.map +0 -1
- package/dist/commands/project/default/get.js.map +0 -1
- package/dist/commands/project/default/set.js.map +0 -1
- package/dist/commands/project/default/unset.js.map +0 -1
- package/dist/commands/project/get.js.map +0 -1
- package/dist/commands/project/list.js.map +0 -1
- package/dist/commands/project/open.js.map +0 -1
- package/dist/commands/promotion/conflict/get.js.map +0 -1
- package/dist/commands/promotion/conflict/list.js.map +0 -1
- package/dist/commands/promotion/conflict/resolve.js.map +0 -1
- package/dist/commands/promotion/conflict/unresolve.js.map +0 -1
- package/dist/commands/promotion/get.js.map +0 -1
- package/dist/commands/promotion/list.js.map +0 -1
- package/dist/commands/promotion/open.js.map +0 -1
- package/dist/commands/user/get.js.map +0 -1
- package/dist/commands/work/create.js.map +0 -1
- package/dist/commands/work/delete.js.map +0 -1
- package/dist/commands/work/done.js.map +0 -1
- package/dist/commands/work/get.js.map +0 -1
- package/dist/commands/work/list.js.map +0 -1
- package/dist/commands/work/open.js.map +0 -1
- package/dist/commands/work/push.js.map +0 -1
- package/dist/commands/work/set.js.map +0 -1
- package/dist/commands/work/status.js.map +0 -1
- package/dist/commands/work/submit.js.map +0 -1
- package/dist/commands/work/test.d.ts +0 -10
- package/dist/commands/work/test.js +0 -61
- package/dist/commands/work/test.js.map +0 -1
- package/dist/commands/work/update.js.map +0 -1
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { applyAuthSet, formatCicdApiKeyHelp, getCicdAuthStatus, getCrtAuthStatus, } from './auth-config.js';
|
|
3
|
+
import { normalizeCicdBaseUrl } from './cicd-gateway.js';
|
|
4
|
+
import { detectCursorInstall, getCursorMcpStatus, globalCursorMcpPath, localCursorMcpPath, upsertAgentiaCursorMcp, } from './cursor-mcp-config.js';
|
|
5
|
+
import { resolveProjectContext, runProjectSetup, } from './project-setup.js';
|
|
6
|
+
import { createInquirerSetupPrompts } from './setup-prompts.js';
|
|
7
|
+
import { normalizeCrtDomain, normalizeCrtOrgId } from './testing-config.js';
|
|
8
|
+
let testWizardDeps;
|
|
9
|
+
export function setSetupWizardDepsForTests(deps) {
|
|
10
|
+
testWizardDeps = deps;
|
|
11
|
+
}
|
|
12
|
+
export function resetSetupWizardDepsForTests() {
|
|
13
|
+
testWizardDeps = undefined;
|
|
14
|
+
}
|
|
15
|
+
function resolveWizardDeps(overrides = {}) {
|
|
16
|
+
const merged = { ...testWizardDeps, ...overrides };
|
|
17
|
+
return {
|
|
18
|
+
...merged,
|
|
19
|
+
applyAuthSet: merged.applyAuthSet ?? applyAuthSet,
|
|
20
|
+
detectCursorInstall: merged.detectCursorInstall ?? detectCursorInstall,
|
|
21
|
+
getCicdAuthStatus: merged.getCicdAuthStatus ?? getCicdAuthStatus,
|
|
22
|
+
getCrtAuthStatus: merged.getCrtAuthStatus ?? getCrtAuthStatus,
|
|
23
|
+
getCursorMcpStatus: merged.getCursorMcpStatus ?? getCursorMcpStatus,
|
|
24
|
+
upsertAgentiaCursorMcp: merged.upsertAgentiaCursorMcp ?? upsertAgentiaCursorMcp,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function withCursorStatus(current, action) {
|
|
28
|
+
return {
|
|
29
|
+
...current,
|
|
30
|
+
status: action,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function logSection(log, title) {
|
|
34
|
+
log('');
|
|
35
|
+
log(title);
|
|
36
|
+
}
|
|
37
|
+
function formatCicdStatusLine(status) {
|
|
38
|
+
if (!status.set) {
|
|
39
|
+
if (status.local && status.baseUrl) {
|
|
40
|
+
return `CICD: not set (endpoint: ${status.baseUrl}, local)`;
|
|
41
|
+
}
|
|
42
|
+
return 'CICD: not set';
|
|
43
|
+
}
|
|
44
|
+
const endpoint = status.baseUrl ?? 'not set';
|
|
45
|
+
const localSuffix = status.local ? ', local' : '';
|
|
46
|
+
return `CICD: ${status.masked} (endpoint: ${endpoint}${localSuffix})`;
|
|
47
|
+
}
|
|
48
|
+
function formatCrtStatusLine(status) {
|
|
49
|
+
const domain = status.domain ?? 'not set';
|
|
50
|
+
const orgId = status.orgId ?? 'not set';
|
|
51
|
+
if (!status.set) {
|
|
52
|
+
return `CRT: not set (domain: ${domain}, org: ${orgId})`;
|
|
53
|
+
}
|
|
54
|
+
return `CRT: ${status.masked} (domain: ${domain}, org: ${orgId})`;
|
|
55
|
+
}
|
|
56
|
+
async function runWithSpinner(options, message, action) {
|
|
57
|
+
if (options.withSpinner === undefined) {
|
|
58
|
+
return action();
|
|
59
|
+
}
|
|
60
|
+
return options.withSpinner(message, action);
|
|
61
|
+
}
|
|
62
|
+
async function configureCicd(context) {
|
|
63
|
+
const { deps, log, options, prompts } = context;
|
|
64
|
+
const current = deps.getCicdAuthStatus();
|
|
65
|
+
log(formatCicdStatusLine(current));
|
|
66
|
+
if (options.noPrompt || prompts === undefined) {
|
|
67
|
+
return {
|
|
68
|
+
baseUrl: current.baseUrl ?? undefined,
|
|
69
|
+
configured: current.set,
|
|
70
|
+
status: current.set ? 'unchanged' : 'skipped',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const shouldConfigure = await prompts.confirm({
|
|
74
|
+
default: !current.set,
|
|
75
|
+
message: current.set ? 'Reconfigure CICD authentication?' : 'Configure CICD authentication?',
|
|
76
|
+
});
|
|
77
|
+
if (!shouldConfigure) {
|
|
78
|
+
log('Skipped CICD authentication.');
|
|
79
|
+
return {
|
|
80
|
+
baseUrl: current.baseUrl ?? undefined,
|
|
81
|
+
configured: current.set,
|
|
82
|
+
status: 'skipped',
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
log(formatCicdApiKeyHelp());
|
|
86
|
+
while (true) {
|
|
87
|
+
// Sequential prompts are required to retry authentication with a new key.
|
|
88
|
+
// eslint-disable-next-line no-await-in-loop
|
|
89
|
+
const apiKey = await prompts.password({
|
|
90
|
+
message: 'Copado API key',
|
|
91
|
+
validate: (value) => (value.trim().length > 0 ? true : 'Copado API key cannot be empty.'),
|
|
92
|
+
});
|
|
93
|
+
// eslint-disable-next-line no-await-in-loop
|
|
94
|
+
const endpointMode = await prompts.select({
|
|
95
|
+
choices: [
|
|
96
|
+
{ name: 'Auto-detect', value: 'auto' },
|
|
97
|
+
{ name: 'Custom URL', value: 'custom' },
|
|
98
|
+
],
|
|
99
|
+
default: 'auto',
|
|
100
|
+
message: 'CICD API URL',
|
|
101
|
+
});
|
|
102
|
+
let customUrl;
|
|
103
|
+
if (endpointMode === 'custom') {
|
|
104
|
+
// eslint-disable-next-line no-await-in-loop
|
|
105
|
+
customUrl = await prompts.input({
|
|
106
|
+
message: 'CICD custom URL',
|
|
107
|
+
validate(value) {
|
|
108
|
+
try {
|
|
109
|
+
normalizeCicdBaseUrl(value);
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
return error.message;
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
// eslint-disable-next-line no-await-in-loop
|
|
120
|
+
const result = await runWithSpinner(options, endpointMode === 'custom' ? 'Validating CICD API key for custom endpoint' : 'Discovering CICD endpoint', () => deps.applyAuthSet({
|
|
121
|
+
cicd: apiKey,
|
|
122
|
+
customUrl,
|
|
123
|
+
}));
|
|
124
|
+
log(`Stored CICD endpoint: ${result.baseUrl}.`);
|
|
125
|
+
return {
|
|
126
|
+
baseUrl: result.baseUrl,
|
|
127
|
+
configured: true,
|
|
128
|
+
status: current.set ? 'updated' : 'created',
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
log(error.message);
|
|
133
|
+
// eslint-disable-next-line no-await-in-loop
|
|
134
|
+
const retry = await prompts.confirm({
|
|
135
|
+
default: true,
|
|
136
|
+
message: 'CICD authentication failed. Try another API key?',
|
|
137
|
+
});
|
|
138
|
+
if (!retry) {
|
|
139
|
+
return {
|
|
140
|
+
baseUrl: current.baseUrl ?? undefined,
|
|
141
|
+
configured: current.set,
|
|
142
|
+
status: 'failed',
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// CRT prompts, discovery, and storage are intentionally sequential.
|
|
149
|
+
// eslint-disable-next-line complexity
|
|
150
|
+
async function configureCrt(context) {
|
|
151
|
+
const { deps, log, options, prompts } = context;
|
|
152
|
+
const current = deps.getCrtAuthStatus();
|
|
153
|
+
log(formatCrtStatusLine(current));
|
|
154
|
+
if (options.noPrompt || prompts === undefined) {
|
|
155
|
+
return {
|
|
156
|
+
configured: current.set,
|
|
157
|
+
domain: current.domain ?? undefined,
|
|
158
|
+
orgId: current.orgId ?? undefined,
|
|
159
|
+
status: current.set ? 'unchanged' : 'skipped',
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
const shouldConfigure = await prompts.confirm({
|
|
163
|
+
default: !current.set,
|
|
164
|
+
message: current.set ? 'Reconfigure CRT authentication?' : 'Configure CRT authentication?',
|
|
165
|
+
});
|
|
166
|
+
if (!shouldConfigure) {
|
|
167
|
+
log('Skipped CRT authentication.');
|
|
168
|
+
return {
|
|
169
|
+
configured: current.set,
|
|
170
|
+
domain: current.domain ?? undefined,
|
|
171
|
+
orgId: current.orgId ?? undefined,
|
|
172
|
+
status: 'skipped',
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
while (true) {
|
|
176
|
+
// Sequential prompts are required to retry authentication with new credentials.
|
|
177
|
+
// eslint-disable-next-line no-await-in-loop
|
|
178
|
+
const pat = await prompts.password({
|
|
179
|
+
message: 'CRT PAT token',
|
|
180
|
+
validate: (value) => (value.trim().length > 0 ? true : 'CRT PAT token cannot be empty.'),
|
|
181
|
+
});
|
|
182
|
+
// eslint-disable-next-line no-await-in-loop
|
|
183
|
+
const orgRaw = await prompts.input({
|
|
184
|
+
default: current.orgId ?? undefined,
|
|
185
|
+
message: 'CRT organization ID',
|
|
186
|
+
validate(value) {
|
|
187
|
+
try {
|
|
188
|
+
normalizeCrtOrgId(value);
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
return error.message;
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
const orgId = normalizeCrtOrgId(orgRaw);
|
|
197
|
+
// eslint-disable-next-line no-await-in-loop
|
|
198
|
+
const endpointMode = await prompts.select({
|
|
199
|
+
choices: [
|
|
200
|
+
{ name: 'Auto-detect', value: 'auto' },
|
|
201
|
+
{ name: 'Custom domain', value: 'custom' },
|
|
202
|
+
],
|
|
203
|
+
default: 'auto',
|
|
204
|
+
message: 'CRT domain',
|
|
205
|
+
});
|
|
206
|
+
let crtDomain;
|
|
207
|
+
if (endpointMode === 'custom') {
|
|
208
|
+
// eslint-disable-next-line no-await-in-loop
|
|
209
|
+
crtDomain = await prompts.input({
|
|
210
|
+
default: current.domain ?? undefined,
|
|
211
|
+
message: 'CRT custom domain',
|
|
212
|
+
validate(value) {
|
|
213
|
+
try {
|
|
214
|
+
normalizeCrtDomain(value);
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
return error.message;
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
try {
|
|
224
|
+
// eslint-disable-next-line no-await-in-loop
|
|
225
|
+
const result = await runWithSpinner(options, endpointMode === 'custom' ? 'Validating CRT credentials for custom domain' : 'Discovering CRT domain', () => deps.applyAuthSet({
|
|
226
|
+
crt: pat,
|
|
227
|
+
crtDomain,
|
|
228
|
+
crtOrg: orgId,
|
|
229
|
+
}));
|
|
230
|
+
const storedDomain = result.crt?.domain ?? crtDomain;
|
|
231
|
+
const storedOrgId = (result.crt?.orgId ?? orgId).toString();
|
|
232
|
+
if (storedDomain !== undefined) {
|
|
233
|
+
log(`Stored CRT domain: ${storedDomain}.`);
|
|
234
|
+
}
|
|
235
|
+
log(`Stored CRT organization ID: ${storedOrgId}.`);
|
|
236
|
+
return {
|
|
237
|
+
configured: true,
|
|
238
|
+
domain: storedDomain,
|
|
239
|
+
orgId: storedOrgId,
|
|
240
|
+
status: current.set ? 'updated' : 'created',
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
log(error.message);
|
|
245
|
+
// eslint-disable-next-line no-await-in-loop
|
|
246
|
+
const retry = await prompts.confirm({
|
|
247
|
+
default: true,
|
|
248
|
+
message: 'CRT authentication failed. Try another PAT token?',
|
|
249
|
+
});
|
|
250
|
+
if (!retry) {
|
|
251
|
+
return {
|
|
252
|
+
configured: current.set,
|
|
253
|
+
domain: current.domain ?? undefined,
|
|
254
|
+
orgId: current.orgId ?? undefined,
|
|
255
|
+
status: 'failed',
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
function cursorStatusLabel(status) {
|
|
262
|
+
if (status.configured) {
|
|
263
|
+
const name = status.serverName === undefined ? '' : ` as "${status.serverName}"`;
|
|
264
|
+
return `configured${name} (${status.path})`;
|
|
265
|
+
}
|
|
266
|
+
if (status.conflicting) {
|
|
267
|
+
return `different Agentia entry (${status.path})`;
|
|
268
|
+
}
|
|
269
|
+
if (status.exists) {
|
|
270
|
+
return `not configured (${status.path})`;
|
|
271
|
+
}
|
|
272
|
+
return `not found (${status.path})`;
|
|
273
|
+
}
|
|
274
|
+
async function configureCursorMcp(context, projectRoot) {
|
|
275
|
+
const { deps, log, options, prompts } = context;
|
|
276
|
+
const install = deps.detectCursorInstall();
|
|
277
|
+
const status = await deps.getCursorMcpStatus(projectRoot);
|
|
278
|
+
log(`Cursor install: ${install.detected ? 'detected' : 'not detected (advisory)'}`);
|
|
279
|
+
log(`Project MCP: ${cursorStatusLabel(status.local)}`);
|
|
280
|
+
log(`Global MCP: ${cursorStatusLabel(status.global)}`);
|
|
281
|
+
if (status.local.configured && status.global.configured) {
|
|
282
|
+
log('Agentia MCP is already configured for Cursor locally and globally.');
|
|
283
|
+
return {
|
|
284
|
+
detected: install.detected,
|
|
285
|
+
global: withCursorStatus(status.global, 'unchanged'),
|
|
286
|
+
local: withCursorStatus(status.local, 'unchanged'),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
if (options.noPrompt || prompts === undefined) {
|
|
290
|
+
return {
|
|
291
|
+
detected: install.detected,
|
|
292
|
+
global: withCursorStatus(status.global, status.global.configured ? 'unchanged' : 'skipped'),
|
|
293
|
+
local: withCursorStatus(status.local, status.local.configured ? 'unchanged' : 'skipped'),
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
const shouldConfigure = await prompts.confirm({
|
|
297
|
+
default: !status.local.configured && !status.global.configured,
|
|
298
|
+
message: 'Configure Agentia MCP for Cursor?',
|
|
299
|
+
});
|
|
300
|
+
if (!shouldConfigure) {
|
|
301
|
+
log('Skipped Cursor MCP configuration.');
|
|
302
|
+
return {
|
|
303
|
+
detected: install.detected,
|
|
304
|
+
global: withCursorStatus(status.global, 'skipped'),
|
|
305
|
+
local: withCursorStatus(status.local, 'skipped'),
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
const scope = await prompts.select({
|
|
309
|
+
choices: [
|
|
310
|
+
{ name: 'Project (.cursor/mcp.json)', value: 'local' },
|
|
311
|
+
{ name: 'Global (~/.cursor/mcp.json)', value: 'global' },
|
|
312
|
+
{ name: 'Both', value: 'both' },
|
|
313
|
+
],
|
|
314
|
+
message: 'Where should Agentia MCP be configured?',
|
|
315
|
+
});
|
|
316
|
+
const writeScope = async (target, current) => {
|
|
317
|
+
if (current.configured) {
|
|
318
|
+
log(`Agentia MCP already configured (${current.path}).`);
|
|
319
|
+
return withCursorStatus(current, 'unchanged');
|
|
320
|
+
}
|
|
321
|
+
if (current.conflicting) {
|
|
322
|
+
const replace = await prompts.confirm({
|
|
323
|
+
default: false,
|
|
324
|
+
message: `Replace the existing Agentia MCP entry in ${current.path}?`,
|
|
325
|
+
});
|
|
326
|
+
if (!replace) {
|
|
327
|
+
log(`Left existing Agentia MCP entry unchanged (${current.path}).`);
|
|
328
|
+
return withCursorStatus(current, 'skipped');
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const filePath = target === 'local' ? localCursorMcpPath(projectRoot) : globalCursorMcpPath(deps.homedir?.() ?? homedir());
|
|
332
|
+
try {
|
|
333
|
+
const written = await deps.upsertAgentiaCursorMcp(filePath);
|
|
334
|
+
log(`Agentia MCP ${written.status} at ${written.path}. Restart Cursor to load the server.`);
|
|
335
|
+
return {
|
|
336
|
+
configured: true,
|
|
337
|
+
conflicting: false,
|
|
338
|
+
exists: true,
|
|
339
|
+
path: written.path,
|
|
340
|
+
status: written.status,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
log(error.message);
|
|
345
|
+
return withCursorStatus(current, 'failed');
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
let localResult = withCursorStatus(status.local, status.local.configured ? 'unchanged' : 'skipped');
|
|
349
|
+
let globalResult = withCursorStatus(status.global, status.global.configured ? 'unchanged' : 'skipped');
|
|
350
|
+
if (scope === 'local' || scope === 'both') {
|
|
351
|
+
localResult = await writeScope('local', status.local);
|
|
352
|
+
}
|
|
353
|
+
if (scope === 'global' || scope === 'both') {
|
|
354
|
+
globalResult = await writeScope('global', status.global);
|
|
355
|
+
}
|
|
356
|
+
return {
|
|
357
|
+
detected: install.detected,
|
|
358
|
+
global: globalResult,
|
|
359
|
+
local: localResult,
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
function buildNextSteps(params) {
|
|
363
|
+
const steps = [];
|
|
364
|
+
if (!params.cicdConfigured) {
|
|
365
|
+
steps.push(`Run \`${params.bin} auth set --cicd <copado-api-key>\` (or \`${params.bin} setup\`) to store CICD credentials.`);
|
|
366
|
+
}
|
|
367
|
+
if (!params.crtConfigured) {
|
|
368
|
+
steps.push(`Run \`${params.bin} auth set --crt <pat-token> --crt-org <org-id>\` to store CRT credentials.`);
|
|
369
|
+
}
|
|
370
|
+
if (!params.mcpConfigured) {
|
|
371
|
+
steps.push(`If you use Cursor, configure it to run \`${params.bin} mcp start\` as an MCP server.`);
|
|
372
|
+
}
|
|
373
|
+
if (steps.length === 0) {
|
|
374
|
+
steps.push(`Use \`${params.bin} work list --assigned-to-me\` to start working on a user story.`);
|
|
375
|
+
}
|
|
376
|
+
return steps;
|
|
377
|
+
}
|
|
378
|
+
export async function runSetupWizard(options = {}, deps = {}) {
|
|
379
|
+
const resolved = resolveWizardDeps(deps);
|
|
380
|
+
const bin = options.bin ?? 'agentia';
|
|
381
|
+
const log = options.log ?? (() => {
|
|
382
|
+
/* no human output */
|
|
383
|
+
});
|
|
384
|
+
const noPrompt = options.noPrompt ?? false;
|
|
385
|
+
const prompts = noPrompt ? undefined : (resolved.prompts ?? createInquirerSetupPrompts());
|
|
386
|
+
const cwd = options.cwd ?? process.cwd();
|
|
387
|
+
const context = await resolveProjectContext(cwd, resolved);
|
|
388
|
+
const section = { deps: resolved, log, options, prompts };
|
|
389
|
+
logSection(log, 'CICD authentication');
|
|
390
|
+
const cicd = await configureCicd(section);
|
|
391
|
+
logSection(log, 'CRT authentication');
|
|
392
|
+
const crt = await configureCrt(section);
|
|
393
|
+
logSection(log, 'Cursor MCP');
|
|
394
|
+
const cursorMcp = await configureCursorMcp(section, context.projectRoot);
|
|
395
|
+
logSection(log, 'Project files');
|
|
396
|
+
const assets = await runProjectSetup({
|
|
397
|
+
...options,
|
|
398
|
+
log,
|
|
399
|
+
noPrompt,
|
|
400
|
+
}, {
|
|
401
|
+
...resolved,
|
|
402
|
+
prompts,
|
|
403
|
+
});
|
|
404
|
+
const nextSteps = buildNextSteps({
|
|
405
|
+
bin,
|
|
406
|
+
cicdConfigured: cicd.configured,
|
|
407
|
+
crtConfigured: crt.configured,
|
|
408
|
+
mcpConfigured: cursorMcp.local.configured || cursorMcp.global.configured,
|
|
409
|
+
});
|
|
410
|
+
log('');
|
|
411
|
+
log('Next steps:');
|
|
412
|
+
for (const step of nextSteps) {
|
|
413
|
+
log(` • ${step}`);
|
|
414
|
+
}
|
|
415
|
+
return {
|
|
416
|
+
...assets,
|
|
417
|
+
auth: { cicd, crt },
|
|
418
|
+
cursorMcp,
|
|
419
|
+
nextSteps,
|
|
420
|
+
};
|
|
421
|
+
}
|
|
422
|
+
//# sourceMappingURL=setup-wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../src/lib/setup-wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
export declare const CRT_ALLOWED_DOMAINS: readonly ["dev-robotic.copado.com", "qa.robotic.copado.com", "au-robotic.copado.com", "ca-robotic.copado.com", "eu-robotic.copado.com", "gb-robotic.copado.com", "in-robotic.copado.com", "jp-robotic.copado.com", "sg-robotic.copado.com", "robotic.copado.com"];
|
|
2
2
|
export type CrtAllowedDomain = (typeof CRT_ALLOWED_DOMAINS)[number];
|
|
3
|
+
export declare const CRT_DISCOVERY_DOMAINS: readonly ["robotic.copado.com", "sg-robotic.copado.com", "eu-robotic.copado.com", "ca-robotic.copado.com", "au-robotic.copado.com"];
|
|
3
4
|
export type TestingConnectionOverrides = {
|
|
4
5
|
domain?: string;
|
|
5
6
|
org?: number | string;
|
|
6
7
|
pat?: string;
|
|
7
8
|
};
|
|
8
9
|
export type TestingCredentials = {
|
|
9
|
-
domain:
|
|
10
|
+
domain: string;
|
|
10
11
|
orgId: number;
|
|
11
12
|
pat: string;
|
|
12
13
|
};
|
|
13
|
-
export declare function
|
|
14
|
+
export declare function isCrtAllowedDomain(value: string): value is CrtAllowedDomain;
|
|
15
|
+
export declare function normalizeCrtDomain(value: string): string;
|
|
14
16
|
export declare function normalizeCrtOrgId(value: number | string): number;
|
|
15
17
|
export declare function resolveTestingCredentials(overrides?: TestingConnectionOverrides): TestingCredentials;
|
|
16
18
|
export declare function platformBaseUrl(domain: string): string;
|
|
@@ -12,10 +12,30 @@ export const CRT_ALLOWED_DOMAINS = [
|
|
|
12
12
|
'sg-robotic.copado.com',
|
|
13
13
|
'robotic.copado.com',
|
|
14
14
|
];
|
|
15
|
+
export const CRT_DISCOVERY_DOMAINS = [
|
|
16
|
+
'robotic.copado.com',
|
|
17
|
+
'sg-robotic.copado.com',
|
|
18
|
+
'eu-robotic.copado.com',
|
|
19
|
+
'ca-robotic.copado.com',
|
|
20
|
+
'au-robotic.copado.com',
|
|
21
|
+
];
|
|
22
|
+
const CRT_HOSTNAME_PATTERN = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?))+$/u;
|
|
23
|
+
export function isCrtAllowedDomain(value) {
|
|
24
|
+
return CRT_ALLOWED_DOMAINS.includes(value);
|
|
25
|
+
}
|
|
15
26
|
export function normalizeCrtDomain(value) {
|
|
16
|
-
const trimmed = value.trim().replace(/^https?:\/\//
|
|
17
|
-
if (
|
|
18
|
-
throw new Error(
|
|
27
|
+
const trimmed = value.trim().replace(/^https?:\/\//iu, '').replace(/\/+$/u, '').toLowerCase();
|
|
28
|
+
if (trimmed.length === 0) {
|
|
29
|
+
throw new Error('CRT domain cannot be empty.');
|
|
30
|
+
}
|
|
31
|
+
if (trimmed.includes('/') || trimmed.includes(':') || trimmed.includes('@')) {
|
|
32
|
+
throw new Error('CRT domain must be a hostname without a path, port, or userinfo.');
|
|
33
|
+
}
|
|
34
|
+
if (isCrtAllowedDomain(trimmed)) {
|
|
35
|
+
return trimmed;
|
|
36
|
+
}
|
|
37
|
+
if (!CRT_HOSTNAME_PATTERN.test(trimmed)) {
|
|
38
|
+
throw new Error('CRT domain must be a valid hostname.');
|
|
19
39
|
}
|
|
20
40
|
return trimmed;
|
|
21
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-config.js","sourceRoot":"","sources":["../../src/lib/testing-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,oBAAoB;CACZ,CAAA;
|
|
1
|
+
{"version":3,"file":"testing-config.js","sourceRoot":"","sources":["../../src/lib/testing-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,15 @@ export declare const testingFileInputFlags: {
|
|
|
31
31
|
dir: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
32
|
file: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
33
|
};
|
|
34
|
+
export declare const testingGitStorageFlags: {
|
|
35
|
+
'git-branch': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
|
+
'git-domain-credential': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
37
|
+
'git-password': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
38
|
+
'git-tag': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
39
|
+
'git-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
40
|
+
'git-use-caller-credentials': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
41
|
+
'git-username': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
42
|
+
};
|
|
34
43
|
export declare const testingUploadOperationFlags: {
|
|
35
44
|
add: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
45
|
remove: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -78,6 +78,30 @@ export const testingFileInputFlags = {
|
|
|
78
78
|
multiple: true,
|
|
79
79
|
}),
|
|
80
80
|
};
|
|
81
|
+
export const testingGitStorageFlags = {
|
|
82
|
+
'git-branch': Flags.string({
|
|
83
|
+
description: 'Git branch to use for a Git-backed CRT job. Mutually exclusive with --git-tag.',
|
|
84
|
+
}),
|
|
85
|
+
'git-domain-credential': Flags.string({
|
|
86
|
+
description: 'CRT domain credential ID to use for Git repository access.',
|
|
87
|
+
}),
|
|
88
|
+
'git-password': Flags.string({
|
|
89
|
+
description: 'Git password/token for repository access. Prefer --git-domain-credential when available.',
|
|
90
|
+
}),
|
|
91
|
+
'git-tag': Flags.string({
|
|
92
|
+
description: 'Git tag to use for a Git-backed CRT job. Mutually exclusive with --git-branch.',
|
|
93
|
+
}),
|
|
94
|
+
'git-url': Flags.string({
|
|
95
|
+
description: 'Git repository URL for a Git-backed CRT job.',
|
|
96
|
+
}),
|
|
97
|
+
'git-use-caller-credentials': Flags.boolean({
|
|
98
|
+
default: false,
|
|
99
|
+
description: 'Use caller credentials for Git repository access instead of explicit Git username/password.',
|
|
100
|
+
}),
|
|
101
|
+
'git-username': Flags.string({
|
|
102
|
+
description: 'Git username for repository access. Prefer --git-domain-credential when available.',
|
|
103
|
+
}),
|
|
104
|
+
};
|
|
81
105
|
export const testingUploadOperationFlags = {
|
|
82
106
|
add: Flags.string({
|
|
83
107
|
description: 'Add a file using local[:remote] syntax. Can be provided multiple times.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-flags.js","sourceRoot":"","sources":["../../src/lib/testing-flags.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testing-flags.js","sourceRoot":"","sources":["../../src/lib/testing-flags.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,19 @@ export declare class TestingGatewayError extends Error {
|
|
|
28
28
|
}
|
|
29
29
|
export declare class TestingGateway {
|
|
30
30
|
static call<T = unknown>(request: TestingRequest, options?: TestingGatewayCallOptions): Promise<T>;
|
|
31
|
+
static resolveAndValidateDomain(pat: string, orgId: number, customDomain?: string): Promise<string>;
|
|
32
|
+
static validateCredentials(options: {
|
|
33
|
+
domain: string;
|
|
34
|
+
orgId: number;
|
|
35
|
+
pat: string;
|
|
36
|
+
}): Promise<void>;
|
|
31
37
|
}
|
|
38
|
+
export declare function validateCrtCredentials(options: {
|
|
39
|
+
domain: string;
|
|
40
|
+
orgId: number;
|
|
41
|
+
pat: string;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
export declare function discoverCrtDomain(pat: string, orgId: number): Promise<string>;
|
|
44
|
+
export declare function resolveAndValidateCrtDomain(pat: string, orgId: number, customDomain?: string): Promise<string>;
|
|
32
45
|
export declare function setTestingHttpRequestForTests(requestFn: TestingHttpRequestFn): void;
|
|
33
46
|
export declare function resetTestingHttpRequestForTests(): void;
|