@copado/agentia-cli 1.2.0 → 1.4.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/CHANGELOG.md +58 -1
- package/README.md +2299 -1615
- package/dist/commands/auth/get.js +21 -1
- package/dist/commands/auth/set.js +13 -0
- package/dist/commands/auth/unset.js +37 -0
- package/dist/commands/cicd/cloud/commit.js +6 -5
- package/dist/commands/cicd/cloud/promote.js +44 -8
- package/dist/commands/cicd/credential/auth/status.js +2 -2
- package/dist/commands/cicd/credential/auth/web/login.js +2 -2
- package/dist/commands/cicd/credential/create.js +2 -2
- package/dist/commands/cicd/credential/list.js +4 -3
- package/dist/commands/cicd/credential/open.js +2 -2
- package/dist/commands/cicd/credential/update.js +2 -2
- package/dist/commands/cicd/data/commit/create.js +2 -2
- package/dist/commands/cicd/data/commit/list.js +2 -2
- package/dist/commands/cicd/data/dataset-file/content.js +2 -2
- package/dist/commands/cicd/data/dataset-file/list.js +2 -2
- package/dist/commands/cicd/data/filter/add.js +2 -2
- package/dist/commands/cicd/data/filter/delete.js +2 -2
- package/dist/commands/cicd/data/filter/list.js +2 -2
- package/dist/commands/cicd/data/filter/update.js +2 -2
- package/dist/commands/cicd/data/formula/create.js +2 -2
- package/dist/commands/cicd/data/formula/list.js +2 -2
- package/dist/commands/cicd/data/formula/update.js +2 -2
- package/dist/commands/cicd/data/records/match.js +2 -2
- package/dist/commands/cicd/data/records/search.js +2 -2
- package/dist/commands/cicd/data/sobject/fields.js +2 -2
- package/dist/commands/cicd/data/sobject/relationships.js +2 -2
- package/dist/commands/cicd/data/sync/apply.js +2 -2
- package/dist/commands/cicd/data/sync/preview-updates.js +2 -2
- package/dist/commands/cicd/data/template/convert-old.js +2 -2
- package/dist/commands/cicd/data/template/create.js +2 -2
- package/dist/commands/cicd/data/template/delete.js +2 -2
- package/dist/commands/cicd/data/template/get-detail.js +2 -2
- package/dist/commands/cicd/data/template/get.js +2 -2
- package/dist/commands/cicd/data/template/list.js +2 -2
- package/dist/commands/cicd/data/template/open.js +2 -2
- package/dist/commands/cicd/data/template/save-detail.js +2 -2
- package/dist/commands/cicd/environment/auth/status.js +2 -2
- package/dist/commands/cicd/environment/auth/web/login.js +2 -2
- package/dist/commands/cicd/environment/create.js +2 -2
- package/dist/commands/cicd/environment/get.js +2 -2
- package/dist/commands/cicd/environment/list.js +4 -3
- package/dist/commands/cicd/environment/open.js +2 -2
- package/dist/commands/cicd/environment/update.js +2 -2
- package/dist/commands/cicd/extension/create.js +2 -2
- package/dist/commands/cicd/extension/install.js +2 -2
- package/dist/commands/cicd/extension/package.js +2 -2
- package/dist/commands/cicd/extension/publish.js +2 -2
- package/dist/commands/cicd/extension/uninstall.js +2 -2
- package/dist/commands/cicd/extension/validate.js +2 -2
- package/dist/commands/cicd/extension-configuration/get.js +2 -2
- package/dist/commands/cicd/extension-configuration/list.js +4 -3
- package/dist/commands/cicd/extension-configuration/open.js +2 -2
- package/dist/commands/cicd/function/defaults.js +2 -2
- package/dist/commands/cicd/function/delete.js +2 -2
- package/dist/commands/cicd/function/get.js +2 -2
- package/dist/commands/cicd/function/list.js +12 -15
- package/dist/commands/cicd/function/open.js +2 -2
- package/dist/commands/cicd/function/result/get.js +2 -2
- package/dist/commands/cicd/function/result/log/get.js +2 -2
- package/dist/commands/cicd/function/run-local.js +2 -2
- package/dist/commands/cicd/function/run.js +2 -2
- package/dist/commands/cicd/function/upsert.js +2 -2
- package/dist/commands/cicd/health-check.js +2 -2
- package/dist/commands/cicd/job/get.js +2 -2
- package/dist/commands/cicd/job/kill.js +2 -2
- package/dist/commands/cicd/job/list.js +4 -3
- package/dist/commands/cicd/job/log/get.js +2 -2
- package/dist/commands/cicd/job/open.js +2 -2
- package/dist/commands/cicd/job/pause.js +2 -2
- package/dist/commands/cicd/job/result-file/get.js +13 -8
- package/dist/commands/cicd/job/result-file/list.js +2 -2
- package/dist/commands/cicd/job/resume.js +2 -2
- package/dist/commands/cicd/job/run.js +2 -2
- package/dist/commands/cicd/metadata/content/compare.js +2 -2
- package/dist/commands/cicd/metadata/content/get.js +2 -2
- package/dist/commands/cicd/metadata/dependency/list.js +44 -21
- package/dist/commands/cicd/metadata/explore.js +2 -2
- package/dist/commands/cicd/metadata/index/compare.js +2 -2
- package/dist/commands/cicd/metadata/list.js +2 -2
- package/dist/commands/cicd/metadata/refresh/deleted.js +2 -2
- package/dist/commands/cicd/metadata/refresh/run.js +2 -2
- package/dist/commands/cicd/metadata/refresh/status.js +2 -2
- package/dist/commands/cicd/notification/configure.js +2 -2
- package/dist/commands/cicd/notification/get.js +2 -2
- package/dist/commands/cicd/pipeline/automation/activate.js +2 -2
- package/dist/commands/cicd/pipeline/automation/create.js +2 -2
- package/dist/commands/cicd/pipeline/automation/deactivate.js +2 -2
- package/dist/commands/cicd/pipeline/automation/delete.js +2 -2
- package/dist/commands/cicd/pipeline/automation/get.js +2 -2
- package/dist/commands/cicd/pipeline/automation/list.js +4 -3
- package/dist/commands/cicd/pipeline/automation/open.js +2 -2
- package/dist/commands/cicd/pipeline/automation/update.js +2 -2
- package/dist/commands/cicd/pipeline/connection/create.js +2 -2
- package/dist/commands/cicd/pipeline/connection/delete.js +2 -2
- package/dist/commands/cicd/pipeline/connection/list.js +2 -2
- package/dist/commands/cicd/pipeline/connection/open.js +2 -2
- package/dist/commands/cicd/pipeline/connection/update.js +2 -2
- package/dist/commands/cicd/pipeline/create.js +2 -2
- package/dist/commands/cicd/pipeline/get.js +2 -2
- package/dist/commands/cicd/pipeline/list.js +4 -3
- package/dist/commands/cicd/pipeline/open.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/activate.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/create.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/deactivate.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/delete.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/get.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/list.js +4 -3
- package/dist/commands/cicd/pipeline/quality-gate/open.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/update.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/create.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/delete.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/list.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/open.js +2 -2
- package/dist/commands/cicd/pipeline/stage-connection/update.js +2 -2
- package/dist/commands/cicd/pipeline/update.js +2 -2
- package/dist/commands/cicd/project/create.js +2 -2
- package/dist/commands/cicd/project/default/get.js +2 -2
- package/dist/commands/cicd/project/default/set.js +2 -2
- package/dist/commands/cicd/project/default/unset.js +2 -2
- package/dist/commands/cicd/project/delete.js +2 -2
- package/dist/commands/cicd/project/get.js +2 -2
- package/dist/commands/cicd/project/list.js +4 -3
- package/dist/commands/cicd/project/open.js +2 -2
- package/dist/commands/cicd/project/update.js +2 -2
- package/dist/commands/cicd/promotion/conflict/get.js +2 -2
- package/dist/commands/cicd/promotion/conflict/list.js +2 -2
- package/dist/commands/cicd/promotion/conflict/resolve.js +2 -2
- package/dist/commands/cicd/promotion/conflict/unresolve.js +2 -2
- package/dist/commands/cicd/promotion/get.js +2 -2
- package/dist/commands/cicd/promotion/job-step/update.js +2 -2
- package/dist/commands/cicd/promotion/list.js +4 -3
- package/dist/commands/cicd/promotion/open.js +2 -2
- package/dist/commands/cicd/promotion/queue/list.js +28 -0
- package/dist/commands/cicd/promotion/queue/remove.js +37 -0
- package/dist/commands/cicd/promotion/run.js +2 -2
- package/dist/commands/cicd/promotion/status.js +29 -0
- package/dist/commands/cicd/repository/auth/https/configure.js +2 -2
- package/dist/commands/cicd/repository/auth/oauth/login.js +2 -2
- package/dist/commands/cicd/repository/auth/setup.js +2 -2
- package/dist/commands/cicd/repository/auth/ssh/configure.js +2 -2
- package/dist/commands/cicd/repository/create.js +2 -2
- package/dist/commands/cicd/repository/delete.js +2 -2
- package/dist/commands/cicd/repository/get.js +2 -2
- package/dist/commands/cicd/repository/list.js +7 -10
- package/dist/commands/cicd/repository/open.js +2 -2
- package/dist/commands/cicd/repository/reset.js +2 -2
- package/dist/commands/cicd/repository/update.js +2 -2
- package/dist/commands/cicd/repository/validate.js +2 -2
- package/dist/commands/cicd/stage/create.js +2 -2
- package/dist/commands/cicd/stage/delete.js +2 -2
- package/dist/commands/cicd/stage/get.js +2 -2
- package/dist/commands/cicd/stage/list.js +4 -3
- package/dist/commands/cicd/stage/open.js +2 -2
- package/dist/commands/cicd/stage/update.js +2 -2
- package/dist/commands/cicd/template/defaults.js +2 -2
- package/dist/commands/cicd/template/delete.js +2 -2
- package/dist/commands/cicd/template/get.js +2 -2
- package/dist/commands/cicd/template/list.js +11 -14
- package/dist/commands/cicd/template/upsert.js +2 -2
- package/dist/commands/cicd/user/get.js +2 -2
- package/dist/commands/cicd/work/ahead-behind.js +2 -2
- package/dist/commands/cicd/work/create.js +2 -2
- package/dist/commands/cicd/work/delete.js +4 -4
- package/dist/commands/cicd/work/deployment-step/create.js +2 -2
- package/dist/commands/cicd/work/deployment-step/delete.js +2 -2
- package/dist/commands/cicd/work/deployment-step/list.js +2 -2
- package/dist/commands/cicd/work/deployment-step/reorder.js +2 -2
- package/dist/commands/cicd/work/deployment-step/salesforce-flows.js +2 -2
- package/dist/commands/cicd/work/deployment-step/types.js +2 -2
- package/dist/commands/cicd/work/deployment-step/update.js +2 -2
- package/dist/commands/cicd/work/done.js +2 -2
- package/dist/commands/cicd/work/environment-sync.js +140 -64
- package/dist/commands/cicd/work/get.js +4 -4
- package/dist/commands/cicd/work/list.js +4 -3
- package/dist/commands/cicd/work/open.js +2 -2
- package/dist/commands/cicd/work/promote.js +2 -2
- package/dist/commands/cicd/work/publish.js +2 -2
- package/dist/commands/cicd/work/push.js +2 -2
- package/dist/commands/cicd/work/set.js +2 -2
- package/dist/commands/cicd/work/status.js +2 -2
- package/dist/commands/cicd/work/submit.js +2 -2
- package/dist/commands/cicd/work/test/apex.js +20 -35
- package/dist/commands/cicd/work/test.js +116 -11
- package/dist/commands/cicd/work/update.js +4 -4
- package/dist/commands/help-agent.js +15 -0
- package/dist/commands/help.js +38 -0
- package/dist/commands/history/clear.js +42 -0
- package/dist/commands/history/list.js +50 -0
- package/dist/commands/support.js +15 -0
- package/dist/commands/testing/browser/execute.js +49 -0
- package/dist/commands/testing/browser/history.js +49 -0
- package/dist/commands/testing/browser/inspect.js +35 -0
- package/dist/commands/testing/browser/recorder.js +52 -0
- package/dist/commands/testing/browser/screenshot.js +27 -0
- package/dist/commands/testing/browser/set-options.js +35 -0
- package/dist/commands/testing/browser/start.js +51 -0
- package/dist/commands/testing/browser/status.js +26 -0
- package/dist/commands/testing/browser/stop.js +34 -0
- package/dist/commands/testing/browser/view.js +35 -0
- package/dist/commands/testing/job/runs/abort.js +1 -1
- package/dist/commands/testing/job/runs/get.js +1 -1
- package/dist/commands/testing/job/runs/list.js +1 -1
- package/dist/commands/testing/job/runs/logs.js +1 -1
- package/dist/commands/testing/job/runs/search.js +1 -1
- package/dist/hooks/init/cicd-connection.js +59 -0
- package/dist/lib/agentia-command.js +69 -6
- package/dist/lib/cicd-command.js +3 -0
- package/dist/lib/cicd-connection.js +22 -0
- package/dist/lib/cicd-gateway.js +2 -1
- package/dist/lib/command-history-sanitization.js +9 -0
- package/dist/lib/command-history.js +11 -0
- package/dist/lib/command-output-buffer.js +6 -1
- package/dist/lib/defaults-store.js +5 -1
- package/dist/lib/dependency-from-changes.js +3 -1
- package/dist/lib/dependency-source-context.js +3 -0
- package/dist/lib/function-list.js +3 -0
- package/dist/lib/git-worktree.js +4 -1
- package/dist/lib/help-agent-command.js +3 -0
- package/dist/lib/help-agent-interaction-history.js +10 -0
- package/dist/lib/help-agent-session.js +3 -0
- package/dist/lib/job-get.js +2 -1
- package/dist/lib/job-types.js +2 -1
- package/dist/lib/list-pagination.js +6 -1
- package/dist/lib/local-quality-gates.js +4 -1
- package/dist/lib/mcp/result.js +41 -3
- package/dist/lib/mcp/server.js +3 -2
- package/dist/lib/mcp/testing-browser-tools.js +179 -0
- package/dist/lib/mcp/testing-tools.js +4 -3
- package/dist/lib/mcp/tool-annotations.js +31 -12
- package/dist/lib/mcp/tools.js +115 -59
- package/dist/lib/mcp/work-tools.js +100 -47
- package/dist/lib/promotion-queue.js +5 -0
- package/dist/lib/promotion-run.js +4 -1
- package/dist/lib/promotion-status.js +12 -0
- package/dist/lib/quality-gates.js +13 -0
- package/dist/lib/repository-list.js +3 -0
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/stock-quality-gates.js +2 -1
- package/dist/lib/support-ai-context.js +11 -0
- package/dist/lib/support-ai-stream-parser.js +4 -0
- package/dist/lib/support-ai.js +9 -0
- package/dist/lib/template-list.js +3 -0
- package/dist/lib/testing-browser-command.js +6 -0
- package/dist/lib/testing-browser-operations.js +16 -0
- package/dist/lib/testing-browser-requests.js +11 -0
- package/dist/lib/testing-browser-robot.js +9 -0
- package/dist/lib/testing-browser-session.js +13 -0
- package/dist/lib/testing-browser-state.js +17 -0
- package/dist/lib/testing-browser-stream.js +7 -0
- package/dist/lib/testing-browser-types.js +3 -0
- package/dist/lib/testing-browser-viewer-key.js +7 -0
- package/dist/lib/testing-gateway.js +2 -1
- package/dist/lib/testing-operations.js +21 -1
- package/dist/lib/testing-sanitization.js +2 -1
- package/dist/lib/work-apex-test-failures.js +2 -1
- package/dist/lib/work-environment-sync-ready.js +7 -1
- package/dist/lib/work-environment-sync.js +8 -1
- package/dist/lib/work-local-run-tests.js +2 -1
- package/dist/lib/work-promote-deploy.js +3 -1
- package/dist/lib/work-promote.js +2 -1
- package/dist/lib/work-types.js +3 -1
- package/oclif.manifest.json +3544 -1828
- package/package.json +11 -4
- package/templates/skills/agentia-ai/SKILL.md +6 -2
- package/templates/skills/agentia-ai/references/ai-agents.md +19 -1
- package/templates/skills/agentia-cicd/SKILL.md +6 -5
- package/templates/skills/agentia-cicd/references/environments-and-credentials.md +16 -0
- package/templates/skills/agentia-cicd/references/jobs.md +3 -2
- package/templates/skills/agentia-cicd/references/promotions.md +26 -5
- package/templates/skills/agentia-cicd/references/work.md +25 -11
- package/templates/skills/agentia-metadata/SKILL.md +9 -3
- package/templates/skills/agentia-metadata/references/metadata-dependency.md +70 -0
- package/templates/skills/agentia-metadata/references/metadata-explore.md +8 -4
- package/templates/skills/agentia-testing/SKILL.md +9 -4
- package/templates/skills/agentia-testing/references/browser-testing.md +92 -0
- package/templates/skills/agentia-testing/references/flow-automation.md +112 -0
- package/templates/skills/agentia-testing/references/qforce.md +88 -0
- package/templates/skills/agentia-testing/references/qweb.md +103 -0
- package/templates/skills/agentia-testing/references/tests.md +17 -9
- package/vendor/java/var-replace-command.jar +0 -0
- package/dist/commands/testing/live/continue.js +0 -16
- package/dist/commands/testing/live/execute.js +0 -43
- package/dist/commands/testing/live/history.js +0 -40
- package/dist/commands/testing/live/inspect.js +0 -31
- package/dist/commands/testing/live/interrupt.js +0 -16
- package/dist/commands/testing/live/recorder.js +0 -42
- package/dist/commands/testing/live/reports.js +0 -31
- package/dist/commands/testing/live/screenshot.js +0 -25
- package/dist/commands/testing/live/set-options.js +0 -35
- package/dist/commands/testing/live/start.js +0 -58
- package/dist/commands/testing/live/status.js +0 -24
- package/dist/commands/testing/live/stop.js +0 -36
- package/dist/commands/testing/live/view.js +0 -36
- package/dist/lib/mcp/testing-live-tools.js +0 -226
- package/dist/lib/testing-live-command.js +0 -8
- package/dist/lib/testing-live-operations.js +0 -25
- package/dist/lib/testing-live-recorder.js +0 -11
- package/dist/lib/testing-live-robot.js +0 -9
- package/dist/lib/testing-live-state.js +0 -12
- package/dist/lib/testing-live-types.js +0 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { openNavigationTarget } from '../../../lib/navigation-open.js';
|
|
4
4
|
import { resolveNavigationTarget } from '../../../lib/navigation.js';
|
|
5
|
-
export default class PipelineOpen extends
|
|
5
|
+
export default class PipelineOpen extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'Pipeline ID',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
4
4
|
import { assertSalesforceLifecycleId } from '../../../../lib/pipeline-lifecycle-id.js';
|
|
5
5
|
import { activatePipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
|
|
6
|
-
export default class PipelineQualityGateActivate extends
|
|
6
|
+
export default class PipelineQualityGateActivate extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Quality gate Salesforce ID (not name)',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
2
2
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
3
3
|
import { buildPipelineQualityGateCreatePayload, pipelineQualityGateCreateFlags, } from '../../../../lib/pipeline-quality-gate-flags.js';
|
|
4
4
|
import { createPipelineQualityGates } from '../../../../lib/pipeline-quality-gate-ops.js';
|
|
5
5
|
import { formatPipelineQualityGateTable } from '../../../../lib/pipeline-quality-gate-types.js';
|
|
6
|
-
export default class PipelineQualityGateCreate extends
|
|
6
|
+
export default class PipelineQualityGateCreate extends CicdCommand {
|
|
7
7
|
static description = 'Create inactive Copado pipeline quality gates';
|
|
8
8
|
static examples = [
|
|
9
9
|
'<%= config.bin %> <%= command.id %> --pipeline-id <pipeline-id> --tool Selenium --execution-sequence After --action Deployment --extension-configuration-id <ext-conf-id> --environment-id <env-id> --tests-from "User Story"',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
4
4
|
import { assertSalesforceLifecycleId } from '../../../../lib/pipeline-lifecycle-id.js';
|
|
5
5
|
import { deactivatePipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
|
|
6
|
-
export default class PipelineQualityGateDeactivate extends
|
|
6
|
+
export default class PipelineQualityGateDeactivate extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Quality gate Salesforce ID (not name)',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { confirm } from '@inquirer/prompts';
|
|
2
2
|
import { Args, Flags } from '@oclif/core';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
4
4
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
5
5
|
import { deletePipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
|
|
6
|
-
export default class PipelineQualityGateDelete extends
|
|
6
|
+
export default class PipelineQualityGateDelete extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Quality gate ID or name',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
4
4
|
import { fetchPipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
|
|
5
5
|
import { formatPipelineQualityGateDetail, } from '../../../../lib/pipeline-quality-gate-types.js';
|
|
6
|
-
export default class PipelineQualityGateGet extends
|
|
6
|
+
export default class PipelineQualityGateGet extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Quality gate ID or name',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
2
2
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
3
|
-
import { displayListPagination } from '../../../../lib/list-pagination.js';
|
|
3
|
+
import { displayListPagination, emitPaginatedListWarnings } from '../../../../lib/list-pagination.js';
|
|
4
4
|
import { pipelineQualityGateListFlags } from '../../../../lib/pipeline-quality-gate-flags.js';
|
|
5
5
|
import { fetchPipelineQualityGates } from '../../../../lib/pipeline-quality-gate-ops.js';
|
|
6
6
|
import { formatPipelineQualityGateTable, } from '../../../../lib/pipeline-quality-gate-types.js';
|
|
7
|
-
export default class PipelineQualityGateList extends
|
|
7
|
+
export default class PipelineQualityGateList extends CicdCommand {
|
|
8
8
|
static description = 'List Copado pipeline quality gates';
|
|
9
9
|
static examples = [
|
|
10
10
|
'<%= config.bin %> <%= command.id %> --pipeline-id <pipeline-id>',
|
|
@@ -20,6 +20,7 @@ export default class PipelineQualityGateList extends AgentiaCommand {
|
|
|
20
20
|
pageSize: flags['page-size'],
|
|
21
21
|
tool: flags.tool,
|
|
22
22
|
}));
|
|
23
|
+
emitPaginatedListWarnings(this.warn.bind(this), page);
|
|
23
24
|
this.display(() => {
|
|
24
25
|
if (page.data.length === 0) {
|
|
25
26
|
this.log('No pipeline quality gates found.');
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { openNavigationTarget } from '../../../../lib/navigation-open.js';
|
|
4
4
|
import { resolveNavigationTarget } from '../../../../lib/navigation.js';
|
|
5
5
|
import { assertSalesforceLifecycleId } from '../../../../lib/pipeline-lifecycle-id.js';
|
|
6
|
-
export default class PipelineQualityGateOpen extends
|
|
6
|
+
export default class PipelineQualityGateOpen extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Quality gate Salesforce ID',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
4
4
|
import { buildPipelineQualityGateUpdatePayload, pipelineQualityGateUpdateFlags, } from '../../../../lib/pipeline-quality-gate-flags.js';
|
|
5
5
|
import { updatePipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
|
|
6
6
|
import { formatPipelineQualityGateDetail, } from '../../../../lib/pipeline-quality-gate-types.js';
|
|
7
|
-
export default class PipelineQualityGateUpdate extends
|
|
7
|
+
export default class PipelineQualityGateUpdate extends CicdCommand {
|
|
8
8
|
static args = {
|
|
9
9
|
id: Args.string({
|
|
10
10
|
description: 'Quality gate ID or name',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
2
2
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
3
3
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { buildPipelineStageConnectionCreatePayload, pipelineStageConnectionCreateFlags, } from '../../../../lib/pipeline-stage-connection-flags.js';
|
|
5
5
|
import { normalizePipelineStageConnection, pipelineStageConnectionsEndpoint, } from '../../../../lib/stage-types.js';
|
|
6
|
-
export default class PipelineStageConnectionCreate extends
|
|
6
|
+
export default class PipelineStageConnectionCreate extends CicdCommand {
|
|
7
7
|
static description = 'Create a pipeline stage connection';
|
|
8
8
|
static examples = [
|
|
9
9
|
'<%= config.bin %> <%= command.id %> --pipeline-id pipeline-1 --stage-id stage-1',
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { confirm } from '@inquirer/prompts';
|
|
2
2
|
import { Args } from '@oclif/core';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
4
4
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
5
5
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
6
6
|
import { pipelineStageConnectionDeleteFlags } from '../../../../lib/pipeline-stage-connection-flags.js';
|
|
7
7
|
import { pipelineStageConnectionEndpoint } from '../../../../lib/stage-types.js';
|
|
8
|
-
export default class PipelineStageConnectionDelete extends
|
|
8
|
+
export default class PipelineStageConnectionDelete extends CicdCommand {
|
|
9
9
|
static args = { id: Args.string({ description: 'Pipeline stage connection ID', required: true }) };
|
|
10
10
|
static description = 'Delete a pipeline stage connection';
|
|
11
11
|
static examples = ['<%= config.bin %> <%= command.id %> connection-1 --pipeline-id pipeline-1 --yes'];
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
4
4
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
5
5
|
import { normalizePipelineDescribe, pipelineDescribeEndpoint, } from '../../../../lib/pipeline-types.js';
|
|
6
6
|
import { formatPipelineStageConnectionTable } from '../../../../lib/stage-types.js';
|
|
7
|
-
export default class PipelineStageConnectionList extends
|
|
7
|
+
export default class PipelineStageConnectionList extends CicdCommand {
|
|
8
8
|
static description = 'List stage connections for a Copado pipeline';
|
|
9
9
|
static examples = [
|
|
10
10
|
'<%= config.bin %> <%= command.id %> --pipeline-id <pipeline-id>',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { openNavigationTarget } from '../../../../lib/navigation-open.js';
|
|
4
4
|
import { resolveNavigationTarget } from '../../../../lib/navigation.js';
|
|
5
|
-
export default class PipelineStageConnectionOpen extends
|
|
5
|
+
export default class PipelineStageConnectionOpen extends CicdCommand {
|
|
6
6
|
static args = { id: Args.string({ description: 'Pipeline stage connection ID', required: true }) };
|
|
7
7
|
static description = 'Open a pipeline stage connection in the browser';
|
|
8
8
|
static examples = ['<%= config.bin %> <%= command.id %> connection-1', '<%= config.bin %> <%= command.id %> connection-1 --json'];
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { assertRequired } from '../../../../lib/assert.js';
|
|
4
4
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
5
5
|
import { buildPipelineStageConnectionUpdatePayload, pipelineStageConnectionUpdateFlags, } from '../../../../lib/pipeline-stage-connection-flags.js';
|
|
6
6
|
import { normalizePipelineStageConnection, pipelineStageConnectionEndpoint, } from '../../../../lib/stage-types.js';
|
|
7
|
-
export default class PipelineStageConnectionUpdate extends
|
|
7
|
+
export default class PipelineStageConnectionUpdate extends CicdCommand {
|
|
8
8
|
static args = {
|
|
9
9
|
id: Args.string({ description: 'Pipeline stage connection ID', required: true }),
|
|
10
10
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { buildPipelineMutationPayload, collectPipelineMutationFlagKeys, pipelineUpdateFlags, validatePipelineMutationPayload, } from '../../../lib/pipeline-flags.js';
|
|
5
5
|
import { normalizePipeline, pipelineEndpoint, } from '../../../lib/pipeline-types.js';
|
|
6
|
-
export default class PipelineUpdate extends
|
|
6
|
+
export default class PipelineUpdate extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Pipeline ID',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { buildProjectMutationPayload, projectCreateFlags, validateProjectMutationPayload, } from '../../../lib/project-flags.js';
|
|
5
5
|
import { normalizeProject, projectsListEndpoint, } from '../../../lib/project-types.js';
|
|
6
|
-
export default class ProjectCreate extends
|
|
6
|
+
export default class ProjectCreate extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
name: Args.string({ description: 'Copado project name', required: true }),
|
|
9
9
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
2
2
|
import { readDefaults, resolveDefaults } from '../../../../lib/defaults-store.js';
|
|
3
3
|
import { collectSelectedKeys, projectDefaultSelectorFlags } from '../../../../lib/project-default-flags.js';
|
|
4
4
|
import { formatProjectDefaultLine, PROJECT_DEFAULT_KEYS, } from '../../../../lib/project-defaults.js';
|
|
5
|
-
export default class ProjectDefaultGet extends
|
|
5
|
+
export default class ProjectDefaultGet extends CicdCommand {
|
|
6
6
|
static description = 'Show project default values for the current project or globally';
|
|
7
7
|
static examples = [
|
|
8
8
|
'<%= config.bin %> <%= command.id %>',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
2
2
|
import { writeDefaults } from '../../../../lib/defaults-store.js';
|
|
3
3
|
import { buildSetValues, collectSetUpdates, formatFlagName, projectDefaultBooleanFlags, projectDefaultStringFlags, } from '../../../../lib/project-default-flags.js';
|
|
4
4
|
import { validateProjectDefaultIdentifiers } from '../../../../lib/project-default-validation.js';
|
|
5
5
|
import { formatProjectDefaultValue, PROJECT_DEFAULT_LABELS, } from '../../../../lib/project-defaults.js';
|
|
6
|
-
export default class ProjectDefaultSet extends
|
|
6
|
+
export default class ProjectDefaultSet extends CicdCommand {
|
|
7
7
|
static description = 'Set project default values for the current project or globally';
|
|
8
8
|
static examples = [
|
|
9
9
|
'<%= config.bin %> <%= command.id %> --project my-project --team platform',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
2
2
|
import { readDefaults, unsetDefaults } from '../../../../lib/defaults-store.js';
|
|
3
3
|
import { collectSelectedKeys, projectDefaultSelectorFlags } from '../../../../lib/project-default-flags.js';
|
|
4
4
|
import { formatProjectDefaultValue, PROJECT_DEFAULT_LABELS, } from '../../../../lib/project-defaults.js';
|
|
5
|
-
export default class ProjectDefaultUnset extends
|
|
5
|
+
export default class ProjectDefaultUnset extends CicdCommand {
|
|
6
6
|
static description = 'Remove project default values from the current project or globally';
|
|
7
7
|
static examples = [
|
|
8
8
|
'<%= config.bin %> <%= command.id %> --project',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { confirm } from '@inquirer/prompts';
|
|
2
2
|
import { Args, Flags } from '@oclif/core';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
4
4
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
5
5
|
import { projectEndpoint } from '../../../lib/project-types.js';
|
|
6
|
-
export default class ProjectDelete extends
|
|
6
|
+
export default class ProjectDelete extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({ description: 'Copado project ID', required: true }),
|
|
9
9
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { fetchProject } from '../../../lib/project-get.js';
|
|
4
4
|
import { formatProjectDetail } from '../../../lib/project-types.js';
|
|
5
|
-
export default class ProjectGet extends
|
|
5
|
+
export default class ProjectGet extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'Copado project ID',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { displayListPagination } from '../../../lib/list-pagination.js';
|
|
1
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
2
|
+
import { displayListPagination, emitPaginatedListWarnings } from '../../../lib/list-pagination.js';
|
|
3
3
|
import { buildProjectListFilters, projectListFlags, validateProjectListFilters, } from '../../../lib/project-flags.js';
|
|
4
4
|
import { fetchProjects } from '../../../lib/project-get.js';
|
|
5
5
|
import { formatProjectTable } from '../../../lib/project-types.js';
|
|
6
|
-
export default class ProjectList extends
|
|
6
|
+
export default class ProjectList extends CicdCommand {
|
|
7
7
|
static description = 'List Copado projects';
|
|
8
8
|
static examples = [
|
|
9
9
|
'<%= config.bin %> <%= command.id %>',
|
|
@@ -20,6 +20,7 @@ export default class ProjectList extends AgentiaCommand {
|
|
|
20
20
|
this.error(validationError, { exit: 2 });
|
|
21
21
|
}
|
|
22
22
|
const page = await this.withSpinner('Fetching projects', () => fetchProjects(filters));
|
|
23
|
+
emitPaginatedListWarnings(this.warn.bind(this), page);
|
|
23
24
|
this.display(() => {
|
|
24
25
|
if (page.data.length === 0) {
|
|
25
26
|
this.log('No projects found.');
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { openNavigationTarget } from '../../../lib/navigation-open.js';
|
|
4
4
|
import { resolveNavigationTarget } from '../../../lib/navigation.js';
|
|
5
5
|
import { ProjectDefaultResolutionError, resolveProjectDefaultId } from '../../../lib/project-default-id.js';
|
|
6
|
-
export default class ProjectOpen extends
|
|
6
|
+
export default class ProjectOpen extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Copado project ID (defaults to the configured project default)',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
4
|
import { buildProjectMutationPayload, projectUpdateFlags, validateProjectMutationPayload, } from '../../../lib/project-flags.js';
|
|
5
5
|
import { normalizeProject, projectEndpoint, } from '../../../lib/project-types.js';
|
|
6
|
-
export default class ProjectUpdate extends
|
|
6
|
+
export default class ProjectUpdate extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({ description: 'Copado project ID', required: true }),
|
|
9
9
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { writeFileSync } from 'node:fs';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
4
4
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
5
5
|
import { promotionConflictContentEndpoint, withPromotionConflictErrorTranslation, } from '../../../../lib/promotion-conflicts.js';
|
|
6
|
-
export default class PromotionConflictGet extends
|
|
6
|
+
export default class PromotionConflictGet extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Conflict attachment Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { formatPromotionConflictTable, normalizePromotionConflicts, promotionConflictsEndpoint, withPromotionConflictErrorTranslation, } from '../../../../lib/promotion-conflicts.js';
|
|
5
|
-
export default class PromotionConflictList extends
|
|
5
|
+
export default class PromotionConflictList extends CicdCommand {
|
|
6
6
|
static description = 'List merge conflicts for a Copado promotion';
|
|
7
7
|
static examples = [
|
|
8
8
|
'<%= config.bin %> <%= command.id %> --promotion <promotion-id>',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
4
4
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
5
5
|
import { buildPromotionConflictResolutionRequest, PROMOTION_CONFLICT_MODES, promotionConflictResolveEndpoint, withPromotionConflictErrorTranslation, } from '../../../../lib/promotion-conflicts.js';
|
|
6
|
-
export default class PromotionConflictResolve extends
|
|
6
|
+
export default class PromotionConflictResolve extends CicdCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({
|
|
9
9
|
description: 'Conflict attachment Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { promotionConflictUndoEndpoint, withPromotionConflictErrorTranslation, } from '../../../../lib/promotion-conflicts.js';
|
|
5
|
-
export default class PromotionConflictUnresolve extends
|
|
5
|
+
export default class PromotionConflictUnresolve extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'Conflict attachment Id',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { fetchPromotion } from '../../../lib/promotion-get.js';
|
|
4
4
|
import { formatPromotionDetail } from '../../../lib/promotion-types.js';
|
|
5
|
-
export default class PromotionGet extends
|
|
5
|
+
export default class PromotionGet extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'Copado promotion ID',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
3
3
|
import { CicdGateway } from '../../../../lib/cicd-gateway.js';
|
|
4
4
|
import { buildPromotionManualTaskUpdatePayload, PROMOTION_MANUAL_TASK_STATUSES, promotionManualTaskEndpoint, } from '../../../../lib/promotion-job-steps.js';
|
|
5
|
-
export default class PromotionJobStepUpdate extends
|
|
5
|
+
export default class PromotionJobStepUpdate extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'Promotion job step ID',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { displayListPagination } from '../../../lib/list-pagination.js';
|
|
1
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
2
|
+
import { displayListPagination, emitPaginatedListWarnings } from '../../../lib/list-pagination.js';
|
|
3
3
|
import { buildPromotionListFilters, promotionListFilterFlags } from '../../../lib/promotion-flags.js';
|
|
4
4
|
import { fetchPromotions } from '../../../lib/promotion-get.js';
|
|
5
5
|
import { formatPromotionTable } from '../../../lib/promotion-types.js';
|
|
@@ -16,7 +16,7 @@ export function selectPromotionsForTableDisplay(promotions) {
|
|
|
16
16
|
export function formatPromotionTableTruncationMessage(total) {
|
|
17
17
|
return `Showing first ${PROMOTION_TABLE_DISPLAY_LIMIT} of ${total} promotions.`;
|
|
18
18
|
}
|
|
19
|
-
export default class PromotionList extends
|
|
19
|
+
export default class PromotionList extends CicdCommand {
|
|
20
20
|
static description = 'List Copado promotions';
|
|
21
21
|
static examples = [
|
|
22
22
|
'<%= config.bin %> <%= command.id %>',
|
|
@@ -28,6 +28,7 @@ export default class PromotionList extends AgentiaCommand {
|
|
|
28
28
|
const { flags } = await this.parse(PromotionList);
|
|
29
29
|
const filters = buildPromotionListFilters(flags);
|
|
30
30
|
const page = await this.withSpinner('Fetching promotions', () => fetchPromotions(filters));
|
|
31
|
+
emitPaginatedListWarnings(this.warn.bind(this), page);
|
|
31
32
|
this.display(() => {
|
|
32
33
|
if (page.data.length === 0) {
|
|
33
34
|
this.log('No promotions found.');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
3
|
import { openNavigationTarget } from '../../../lib/navigation-open.js';
|
|
4
4
|
import { resolveNavigationTarget } from '../../../lib/navigation.js';
|
|
5
|
-
export default class PromotionOpen extends
|
|
5
|
+
export default class PromotionOpen extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: 'Copado promotion ID',
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
3
|
+
import { fetchPromotionQueue, formatPromotionQueueTable } from '../../../../lib/promotion-queue.js';
|
|
4
|
+
export default class PromotionQueueList extends AgentiaCommand {
|
|
5
|
+
static args = {
|
|
6
|
+
promotion: Args.string({ description: 'Copado promotion ID or name', required: true }),
|
|
7
|
+
};
|
|
8
|
+
static description = 'List the job queue for a promotion (jobs waiting on or blocking the destination)';
|
|
9
|
+
static examples = [
|
|
10
|
+
'<%= config.bin %> <%= command.id %> <promotion-id>',
|
|
11
|
+
'<%= config.bin %> <%= command.id %> <promotion-name> --json',
|
|
12
|
+
];
|
|
13
|
+
async run() {
|
|
14
|
+
const { args } = await this.parse(PromotionQueueList);
|
|
15
|
+
const queue = await this.withSpinner('Fetching promotion queue', () => fetchPromotionQueue(args.promotion));
|
|
16
|
+
this.display(() => {
|
|
17
|
+
const items = queue.items ?? [];
|
|
18
|
+
if (items.length === 0) {
|
|
19
|
+
this.log('Promotion queue is empty.');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.log(`Queue resource: ${queue.resourceName ?? ''} (manage queue permission: ${queue.canManageQueue ? 'yes' : 'no'})`);
|
|
23
|
+
this.log(formatPromotionQueueTable(items));
|
|
24
|
+
});
|
|
25
|
+
return queue;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { confirm } from '@inquirer/prompts';
|
|
2
|
+
import { Args, Flags } from '@oclif/core';
|
|
3
|
+
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
4
|
+
import { formatPromotionQueueTable, removePromotionQueueItems } from '../../../../lib/promotion-queue.js';
|
|
5
|
+
export default class PromotionQueueRemove extends AgentiaCommand {
|
|
6
|
+
static args = {
|
|
7
|
+
promotion: Args.string({ description: 'Copado promotion ID or name', required: true }),
|
|
8
|
+
};
|
|
9
|
+
static description = 'Remove items from a promotion job queue (requires the Manage Queue custom permission). Use "promotion queue list" to find item IDs.';
|
|
10
|
+
static examples = [
|
|
11
|
+
'<%= config.bin %> <%= command.id %> <promotion-id> --item <queue-item-id>',
|
|
12
|
+
'<%= config.bin %> <%= command.id %> <promotion-name> -i <queue-item-id> -i <queue-item-id> --yes --json',
|
|
13
|
+
];
|
|
14
|
+
static flags = {
|
|
15
|
+
item: Flags.string({ char: 'i', description: 'Queue item ID to remove (repeatable)', multiple: true, required: true }),
|
|
16
|
+
yes: Flags.boolean({ char: 'y', default: false, description: 'Confirm removal without prompting' }),
|
|
17
|
+
};
|
|
18
|
+
async run() {
|
|
19
|
+
const { args, flags } = await this.parse(PromotionQueueRemove);
|
|
20
|
+
if (!flags.yes) {
|
|
21
|
+
if (this.jsonEnabled() || !process.stdin.isTTY) {
|
|
22
|
+
this.error('Queue removal requires confirmation. Pass --yes for headless or JSON execution.', { exit: 2 });
|
|
23
|
+
}
|
|
24
|
+
if (!(await confirm({ default: false, message: `Remove ${flags.item.length} item(s) from the promotion queue?` }))) {
|
|
25
|
+
this.error('Queue removal canceled.', { exit: 1 });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const queue = await this.withSpinner('Removing queue items', () => removePromotionQueueItems(args.promotion, flags.item));
|
|
29
|
+
const items = queue.items ?? [];
|
|
30
|
+
this.display(() => {
|
|
31
|
+
this.log(`Removed ${flags.item.length} item(s) from the promotion queue.`);
|
|
32
|
+
this.log(items.length === 0 ? 'Promotion queue is now empty.' : formatPromotionQueueTable(items));
|
|
33
|
+
});
|
|
34
|
+
return queue;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { confirm } from '@inquirer/prompts';
|
|
2
2
|
import { Args, Flags } from '@oclif/core';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
4
4
|
import { formatPromotionRunResult, isPromotionRunExecutionError, parseIgnoredMetadataJson, performPromotionResume, performPromotionRun, PROMOTION_OPERATIONS, PROMOTION_RUN_DEFAULT_TIMEOUT_SECONDS, promotionRunErrorJson, PromotionRunValidationError, } from '../../../lib/promotion-run.js';
|
|
5
|
-
export default class PromotionRun extends
|
|
5
|
+
export default class PromotionRun extends CicdCommand {
|
|
6
6
|
static args = {
|
|
7
7
|
id: Args.string({
|
|
8
8
|
description: '18-character Salesforce Promotion ID',
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { CicdCommand } from '../../../lib/cicd-command.js';
|
|
3
|
+
import { fetchPromotionStatus, formatPromotionStatus, } from '../../../lib/promotion-status.js';
|
|
4
|
+
export default class PromotionStatus extends CicdCommand {
|
|
5
|
+
static args = {
|
|
6
|
+
id: Args.string({
|
|
7
|
+
description: 'Copado promotion ID',
|
|
8
|
+
name: 'id',
|
|
9
|
+
required: true,
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
static description = [
|
|
13
|
+
'Show actionable status for a Copado promotion: user stories, current job step,',
|
|
14
|
+
'queue summary, and whether a Manual Task or queue item needs attention.',
|
|
15
|
+
].join(' ');
|
|
16
|
+
static examples = [
|
|
17
|
+
'<%= config.bin %> <%= command.id %> <promotion-id>',
|
|
18
|
+
'<%= config.bin %> <%= command.id %> <promotion-id> --json',
|
|
19
|
+
];
|
|
20
|
+
async run() {
|
|
21
|
+
const { args } = await this.parse(PromotionStatus);
|
|
22
|
+
const snapshot = await this.withSpinner('Fetching promotion status', () => fetchPromotionStatus(args.id));
|
|
23
|
+
this.display(() => {
|
|
24
|
+
this.log(formatPromotionStatus(snapshot));
|
|
25
|
+
});
|
|
26
|
+
return snapshot;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CicdCommand } from '../../../../../lib/cicd-command.js';
|
|
3
3
|
import { configureHttps, promptHttpsPayload, readHttpsAuthPayloadFromStdin } from '../../../../../lib/repository-auth.js';
|
|
4
|
-
export default class RepositoryAuthHttpsConfigure extends
|
|
4
|
+
export default class RepositoryAuthHttpsConfigure extends CicdCommand {
|
|
5
5
|
static args = { id: Args.string({ description: 'Copado Git repository ID', required: true }) };
|
|
6
6
|
static description = 'Configure HTTPS authentication. Use a personal access token as the password when required by the provider.';
|
|
7
7
|
static flags = {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { select } from '@inquirer/prompts';
|
|
2
2
|
import { Args, Flags } from '@oclif/core';
|
|
3
|
-
import {
|
|
3
|
+
import { CicdCommand } from '../../../../../lib/cicd-command.js';
|
|
4
4
|
import { CicdGateway } from '../../../../../lib/cicd-gateway.js';
|
|
5
5
|
import { createLoopbackCallbackServer } from '../../../../../lib/loopback-callback-server.js';
|
|
6
6
|
import { isHeadlessEnvironment, openUrl } from '../../../../../lib/open-browser.js';
|
|
7
7
|
import { repositoryOAuthEndpoint, repositoryOAuthInitEndpoint, repositoryOAuthRepositoriesEndpoint, } from '../../../../../lib/repository-types.js';
|
|
8
|
-
export default class RepositoryAuthOAuthLogin extends
|
|
8
|
+
export default class RepositoryAuthOAuthLogin extends CicdCommand {
|
|
9
9
|
static args = { id: Args.string({ description: 'Copado Git repository ID', required: true }) };
|
|
10
10
|
static description = 'Authenticate a repository through browser OAuth and select a remote repository';
|
|
11
11
|
static flags = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { select } from '@inquirer/prompts';
|
|
2
2
|
import { Args, Flags } from '@oclif/core';
|
|
3
|
-
import {
|
|
4
|
-
export default class RepositoryAuthSetup extends
|
|
3
|
+
import { CicdCommand } from '../../../../lib/cicd-command.js';
|
|
4
|
+
export default class RepositoryAuthSetup extends CicdCommand {
|
|
5
5
|
static args = { id: Args.string({ description: 'Copado Git repository ID', required: true }) };
|
|
6
6
|
static description = 'Interactively configure repository authentication; OAuth is selected by default';
|
|
7
7
|
static flags = { overwrite: Flags.boolean({ description: 'Replace an existing HTTPS or SSH credential' }) };
|