@copado/agentia-cli 1.1.0 → 1.3.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 +69 -0
- package/README.md +3290 -2095
- package/dist/commands/ai/agent/ask.js +4 -4
- package/dist/commands/ai/agent/chat.js +4 -4
- 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 +2 -2
- package/dist/commands/cicd/cloud/promote.js +19 -5
- package/dist/commands/cicd/credential/auth/status.js +38 -0
- package/dist/commands/cicd/credential/auth/web/login.js +54 -0
- package/dist/commands/cicd/credential/create.js +2 -2
- package/dist/commands/cicd/credential/list.js +15 -19
- package/dist/commands/cicd/credential/open.js +30 -0
- package/dist/commands/cicd/credential/update.js +11 -14
- 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 +36 -15
- package/dist/commands/cicd/environment/auth/web/login.js +22 -6
- 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 +2 -2
- package/dist/commands/cicd/environment/open.js +8 -24
- 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 +24 -0
- package/dist/commands/cicd/extension-configuration/list.js +49 -0
- package/dist/commands/cicd/extension-configuration/open.js +38 -0
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- package/dist/commands/cicd/metadata/dependency/list.js +45 -22
- package/dist/commands/cicd/metadata/explore.js +81 -0
- package/dist/commands/cicd/metadata/index/compare.js +2 -2
- package/dist/commands/cicd/metadata/list.js +5 -5
- package/dist/commands/cicd/metadata/refresh/deleted.js +3 -3
- package/dist/commands/cicd/metadata/refresh/run.js +4 -4
- package/dist/commands/cicd/metadata/refresh/status.js +4 -4
- 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 +39 -0
- package/dist/commands/cicd/pipeline/automation/create.js +33 -0
- package/dist/commands/cicd/pipeline/automation/deactivate.js +39 -0
- package/dist/commands/cicd/pipeline/automation/delete.js +45 -0
- package/dist/commands/cicd/pipeline/automation/get.js +32 -0
- package/dist/commands/cicd/pipeline/automation/list.js +38 -0
- package/dist/commands/cicd/pipeline/automation/open.js +38 -0
- package/dist/commands/cicd/pipeline/automation/update.js +38 -0
- 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 +2 -2
- package/dist/commands/cicd/pipeline/open.js +2 -2
- package/dist/commands/cicd/pipeline/quality-gate/activate.js +39 -0
- package/dist/commands/cicd/pipeline/quality-gate/create.js +34 -0
- package/dist/commands/cicd/pipeline/quality-gate/deactivate.js +39 -0
- package/dist/commands/cicd/pipeline/quality-gate/delete.js +45 -0
- package/dist/commands/cicd/pipeline/quality-gate/get.js +32 -0
- package/dist/commands/cicd/pipeline/quality-gate/list.js +34 -0
- package/dist/commands/cicd/pipeline/quality-gate/open.js +38 -0
- package/dist/commands/cicd/pipeline/quality-gate/update.js +38 -0
- 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 +2 -2
- 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 +2 -2
- 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/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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +3 -2
- package/dist/commands/cicd/work/delete.js +2 -2
- 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 +10 -9
- package/dist/commands/cicd/work/get.js +2 -2
- package/dist/commands/cicd/work/list.js +2 -2
- 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 +8 -6
- package/dist/commands/cicd/work/status.js +2 -2
- package/dist/commands/cicd/work/submit.js +5 -4
- package/dist/commands/cicd/work/test/apex.js +2 -2
- package/dist/commands/cicd/work/test.js +2 -2
- package/dist/commands/cicd/work/update.js +3 -2
- 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/plugins/install.js +2 -5
- package/dist/commands/setup/skills/create.js +28 -2
- package/dist/commands/setup/skills/list.js +55 -0
- package/dist/commands/setup/skills/update.js +36 -3
- package/dist/commands/setup.js +3 -3
- 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/reports.js +33 -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/data-table/create.js +1 -2
- package/dist/commands/testing/data-table/delete.js +1 -2
- package/dist/commands/testing/data-table/export.js +2 -6
- package/dist/commands/testing/data-table/get.js +2 -4
- package/dist/commands/testing/data-table/list.js +1 -2
- package/dist/commands/testing/data-table/update.js +3 -4
- package/dist/commands/testing/job/create.js +26 -22
- package/dist/commands/testing/job/delete.js +2 -2
- package/dist/commands/testing/job/files/download.js +73 -0
- package/dist/commands/testing/job/files/list.js +43 -0
- package/dist/commands/testing/job/{upload.js → files/upload.js} +13 -9
- package/dist/commands/testing/job/get.js +2 -2
- package/dist/commands/testing/job/list.js +1 -1
- package/dist/commands/testing/job/refs.js +4 -4
- package/dist/commands/testing/job/run.js +134 -1
- package/dist/commands/testing/{build → job/runs}/abort.js +10 -8
- package/dist/commands/testing/job/runs/get.js +42 -0
- package/dist/commands/testing/{build → job/runs}/list.js +19 -10
- package/dist/commands/testing/{logs.js → job/runs/logs.js} +9 -6
- package/dist/commands/testing/{build → job/runs}/search.js +9 -7
- package/dist/commands/testing/job/schedule/get.js +5 -11
- package/dist/commands/testing/job/schedule/remove.js +3 -3
- package/dist/commands/testing/job/schedule/set.js +3 -3
- package/dist/commands/testing/job/update.js +22 -65
- package/dist/commands/testing/project/create.js +1 -17
- package/dist/commands/testing/project/get.js +0 -1
- package/dist/commands/testing/project/list.js +2 -2
- package/dist/commands/testing/project/permission/set.js +3 -7
- package/dist/commands/testing/project/permission/update.js +2 -2
- package/dist/commands/testing/robot/create.js +22 -25
- package/dist/commands/testing/robot/get.js +1 -1
- package/dist/commands/testing/robot/list.js +3 -3
- package/dist/commands/testing/robot/update.js +3 -3
- package/dist/commands/testing/user-parameter/create.js +3 -9
- package/dist/commands/testing/user-parameter/update.js +1 -7
- package/dist/commands/testing/variable/create.js +4 -9
- package/dist/commands/testing/variable/list.js +3 -3
- package/dist/commands/testing/variable/update.js +5 -12
- package/dist/help.js +17 -0
- package/dist/hooks/init/cicd-connection.js +59 -0
- package/dist/lib/agentia-command.js +69 -6
- package/dist/lib/ai-types.js +2 -1
- 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/claude-mcp-config.js +15 -0
- 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/credential-sync.js +1 -2
- package/dist/lib/defaults-store.js +6 -1
- package/dist/lib/dependency-from-changes.js +3 -1
- package/dist/lib/dependency-source-context.js +3 -0
- package/dist/lib/environment-auth-status.js +2 -1
- package/dist/lib/environment-auth.js +2 -1
- package/dist/lib/environment-credential-flags.js +3 -1
- package/dist/lib/environment-credential-operations.js +8 -2
- package/dist/lib/environment-types.js +3 -1
- package/dist/lib/extension-configuration-ops.js +4 -0
- package/dist/lib/extension-configuration-sanitize.js +7 -0
- package/dist/lib/extension-configuration-types.js +8 -0
- 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/http-proxy.js +13 -0
- package/dist/lib/mcp/ai-tools.js +3 -3
- package/dist/lib/mcp/command-id.js +2 -0
- package/dist/lib/mcp/pipeline-automation-quality-tools.js +452 -0
- package/dist/lib/mcp/result.js +41 -3
- package/dist/lib/mcp/server.js +73 -3
- package/dist/lib/mcp/testing-browser-tools.js +194 -0
- package/dist/lib/mcp/testing-tools.js +242 -552
- package/dist/lib/mcp/tool-annotations.js +59 -30
- package/dist/lib/mcp/tools.js +202 -66
- package/dist/lib/mcp/work-tools.js +18 -4
- package/dist/lib/metadata-explore.js +8 -0
- package/dist/lib/network-error.js +8 -0
- package/dist/lib/pipeline-automation-flags.js +12 -0
- package/dist/lib/pipeline-automation-ops.js +9 -0
- package/dist/lib/pipeline-automation-types.js +18 -0
- package/dist/lib/pipeline-lifecycle-id.js +3 -0
- package/dist/lib/pipeline-quality-gate-flags.js +12 -0
- package/dist/lib/pipeline-quality-gate-ops.js +9 -0
- package/dist/lib/pipeline-quality-gate-types.js +17 -0
- package/dist/lib/plugin-host/ai.js +2 -1
- package/dist/lib/plugin-skills.js +22 -0
- package/dist/lib/plugin-trust/gate.js +1 -2
- package/dist/lib/project-root.js +3 -1
- package/dist/lib/promotion-queue.js +5 -0
- package/dist/lib/promotion-run.js +2 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/salesforce-tooling-check.js +6 -0
- package/dist/lib/skill-packs.js +7 -0
- 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/testing-archive.js +9 -0
- package/dist/lib/testing-browser-command.js +6 -0
- package/dist/lib/testing-browser-operations.js +17 -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 +14 -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-data-table.js +39 -0
- package/dist/lib/testing-execution.js +22 -0
- package/dist/lib/testing-flags.js +6 -2
- package/dist/lib/testing-gateway.js +5 -1
- package/dist/lib/testing-operations.js +9 -4
- package/dist/lib/testing-sanitization.js +3 -1
- package/dist/lib/testing-secret-input.js +2 -1
- package/dist/lib/testing-types.js +24 -3
- package/dist/lib/work-environment-sync.js +3 -1
- package/dist/lib/work-flags.js +6 -1
- package/dist/lib/work-local-development-flow.js +4 -0
- package/dist/lib/work-promote.js +2 -1
- package/dist/lib/work-submit-wait.js +3 -1
- package/oclif.manifest.json +8841 -7469
- package/package.json +45 -5
- package/templates/skills/agentia-ai/SKILL.md +9 -6
- package/templates/skills/agentia-ai/references/ai-agents.md +21 -3
- package/templates/skills/agentia-cicd/SKILL.md +8 -5
- package/templates/skills/agentia-cicd/references/environments-and-credentials.md +35 -13
- package/templates/skills/agentia-cicd/references/extensions.md +3 -0
- package/templates/skills/agentia-cicd/references/pipelines.md +36 -2
- package/templates/skills/agentia-cicd/references/promotions.md +10 -1
- package/templates/skills/agentia-cicd/references/work.md +20 -5
- package/templates/skills/agentia-metadata/SKILL.md +146 -0
- package/templates/skills/agentia-metadata/references/metadata-dependency.md +70 -0
- package/templates/skills/agentia-metadata/references/metadata-explore.md +146 -0
- package/templates/skills/agentia-testing/SKILL.md +12 -7
- package/templates/skills/agentia-testing/references/browser-testing.md +93 -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 +31 -23
- package/dist/commands/testing/build/get.js +0 -38
- package/dist/commands/testing/build/latest.js +0 -40
- package/dist/commands/testing/build/logs.js +0 -47
- package/dist/commands/testing/build/run.js +0 -26
- package/dist/commands/testing/create.js +0 -2
- package/dist/commands/testing/job/download.js +0 -54
- package/dist/commands/testing/job/files.js +0 -34
- package/dist/commands/testing/live/continue.js +0 -21
- package/dist/commands/testing/live/execute.js +0 -43
- package/dist/commands/testing/live/history.js +0 -35
- package/dist/commands/testing/live/inspect.js +0 -30
- package/dist/commands/testing/live/interrupt.js +0 -21
- package/dist/commands/testing/live/recorder.js +0 -134
- 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 -28
- package/dist/commands/testing/live/start.js +0 -53
- package/dist/commands/testing/live/status.js +0 -27
- package/dist/commands/testing/live/stop.js +0 -38
- package/dist/commands/testing/live/view.js +0 -36
- package/dist/commands/testing/run.js +0 -26
- package/dist/commands/testing/status.js +0 -45
- package/dist/commands/testing/test/create.js +0 -2
- package/dist/commands/testing/test/logs.js +0 -2
- package/dist/commands/testing/test/run.js +0 -26
- package/dist/commands/testing/test/status.js +0 -2
- package/dist/commands/testing/test/update.js +0 -2
- package/dist/commands/testing/update.js +0 -65
- package/dist/lib/mcp/testing-live-tools.js +0 -215
- package/dist/lib/testing-data-command.js +0 -8
- package/dist/lib/testing-data-core.js +0 -20
- package/dist/lib/testing-data-export.js +0 -6
- package/dist/lib/testing-data-import.js +0 -6
- package/dist/lib/testing-data-io.js +0 -12
- package/dist/lib/testing-data-operations.js +0 -10
- package/dist/lib/testing-data-types.js +0 -4
- package/dist/lib/testing-live-command.js +0 -6
- package/dist/lib/testing-live-endpoints.js +0 -6
- package/dist/lib/testing-live-history.js +0 -7
- package/dist/lib/testing-live-operations.js +0 -19
- package/dist/lib/testing-live-recorder.js +0 -9
- package/dist/lib/testing-live-robot.js +0 -9
- package/dist/lib/testing-live-state.js +0 -5
- package/dist/lib/testing-live-types.js +0 -3
- package/dist/lib/testing-run-command.js +0 -3
- package/dist/lib/testing-schedule.js +0 -5
- package/dist/lib/testing-session.js +0 -5
- package/dist/lib/testing-watch.js +0 -4
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import { AgentiaCommand } from '
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { formatTestingBuildTable, TESTING_RUN_TYPES, } from '
|
|
6
|
-
export default class
|
|
7
|
-
static
|
|
2
|
+
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
3
|
+
import { searchTestingBuilds } from '../../../../lib/testing-execution.js';
|
|
4
|
+
import { testingJobFlag, testingProjectFlag } from '../../../../lib/testing-flags.js';
|
|
5
|
+
import { formatTestingBuildTable, TESTING_RUN_TYPES, } from '../../../../lib/testing-types.js';
|
|
6
|
+
export default class TestingJobRunsSearch extends AgentiaCommand {
|
|
7
|
+
static deprecateAliases = true;
|
|
8
|
+
static description = 'Search Copado Robotic Testing job run metrics';
|
|
8
9
|
static examples = [
|
|
9
10
|
'<%= config.bin %> <%= command.id %> --project <project-id> --job <job-id> --status failed',
|
|
10
11
|
'<%= config.bin %> <%= command.id %> --project <project-id> --job <job-id> --run-type regression --count --json',
|
|
@@ -27,8 +28,9 @@ export default class TestingBuildSearch extends AgentiaCommand {
|
|
|
27
28
|
status: Flags.string({ description: 'Status filter. Can be provided multiple times.', multiple: true }),
|
|
28
29
|
to: Flags.string({ description: 'Include builds at or before this ISO-8601 date or epoch value.' }),
|
|
29
30
|
};
|
|
31
|
+
static hiddenAliases = ['testing:build:search'];
|
|
30
32
|
async run() {
|
|
31
|
-
const { flags } = await this.parse(
|
|
33
|
+
const { flags } = await this.parse(TestingJobRunsSearch);
|
|
32
34
|
const result = await this.withSpinner('Searching testing builds', () => searchTestingBuilds({
|
|
33
35
|
count: flags.count,
|
|
34
36
|
from: flags.from,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
3
3
|
import { testingProjectFlag } from '../../../../lib/testing-flags.js';
|
|
4
|
-
import {
|
|
4
|
+
import { getTestingJobScheduleStatus } from '../../../../lib/testing-operations.js';
|
|
5
5
|
import { formatTestingRecord } from '../../../../lib/testing-types.js';
|
|
6
6
|
export default class TestingJobScheduleGet extends AgentiaCommand {
|
|
7
7
|
static args = {
|
|
8
|
-
id: Args.integer({ description: 'CRT job
|
|
8
|
+
id: Args.integer({ description: 'CRT job ID.', required: true }),
|
|
9
9
|
};
|
|
10
|
-
static description = 'Get the schedule for a Copado Robotic Testing job
|
|
10
|
+
static description = 'Get the schedule for a Copado Robotic Testing job';
|
|
11
11
|
static examples = [
|
|
12
12
|
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id>',
|
|
13
13
|
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --json',
|
|
@@ -15,15 +15,9 @@ export default class TestingJobScheduleGet extends AgentiaCommand {
|
|
|
15
15
|
static flags = { ...testingProjectFlag };
|
|
16
16
|
async run() {
|
|
17
17
|
const { args, flags } = await this.parse(TestingJobScheduleGet);
|
|
18
|
-
const
|
|
19
|
-
const result = {
|
|
20
|
-
configured: schedule !== undefined,
|
|
21
|
-
jobId: args.id,
|
|
22
|
-
projectId: flags.project,
|
|
23
|
-
...(schedule === undefined ? {} : { schedule }),
|
|
24
|
-
};
|
|
18
|
+
const result = await this.withSpinner('Getting testing schedule', () => getTestingJobScheduleStatus({ jobId: args.id, projectId: flags.project }));
|
|
25
19
|
this.display(() => {
|
|
26
|
-
this.log(schedule === undefined ? 'No schedule configured.' : formatTestingRecord(schedule));
|
|
20
|
+
this.log(result.schedule === undefined ? 'No schedule configured.' : formatTestingRecord(result.schedule));
|
|
27
21
|
});
|
|
28
22
|
return result;
|
|
29
23
|
}
|
|
@@ -2,12 +2,12 @@ import { Args, Flags } from '@oclif/core';
|
|
|
2
2
|
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
3
3
|
import { confirmTestingAction } from '../../../../lib/testing-confirmation.js';
|
|
4
4
|
import { testingProjectFlag } from '../../../../lib/testing-flags.js';
|
|
5
|
-
import { removeTestingJobSchedule } from '../../../../lib/testing-
|
|
5
|
+
import { removeTestingJobSchedule } from '../../../../lib/testing-operations.js';
|
|
6
6
|
export default class TestingJobScheduleRemove extends AgentiaCommand {
|
|
7
7
|
static args = {
|
|
8
|
-
id: Args.integer({ description: 'CRT job
|
|
8
|
+
id: Args.integer({ description: 'CRT job ID.', required: true }),
|
|
9
9
|
};
|
|
10
|
-
static description = 'Remove the schedule from a Copado Robotic Testing job
|
|
10
|
+
static description = 'Remove the schedule from a Copado Robotic Testing job';
|
|
11
11
|
static examples = [
|
|
12
12
|
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --yes',
|
|
13
13
|
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --yes --json',
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
3
3
|
import { testingProjectFlag } from '../../../../lib/testing-flags.js';
|
|
4
|
-
import { setTestingJobSchedule } from '../../../../lib/testing-
|
|
4
|
+
import { setTestingJobSchedule } from '../../../../lib/testing-operations.js';
|
|
5
5
|
import { TESTING_RECORD_BUILD_OPTIONS } from '../../../../lib/testing-types.js';
|
|
6
6
|
export default class TestingJobScheduleSet extends AgentiaCommand {
|
|
7
7
|
static args = {
|
|
8
|
-
id: Args.integer({ description: 'CRT job
|
|
8
|
+
id: Args.integer({ description: 'CRT job ID.', required: true }),
|
|
9
9
|
};
|
|
10
|
-
static description = 'Create or update a Copado Robotic Testing job
|
|
10
|
+
static description = 'Create or update a Copado Robotic Testing job schedule';
|
|
11
11
|
static examples = [
|
|
12
12
|
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --cron "0 6 * * 1-5"',
|
|
13
13
|
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --cron "0 6 * * *" --timezone Europe/Helsinki --record failed --json',
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
-
import { testingGitStorageFlags, testingProjectFlag
|
|
4
|
-
import {
|
|
3
|
+
import { testingGitStorageFlags, testingProjectFlag } from '../../../lib/testing-flags.js';
|
|
4
|
+
import { updateTestingJob } from '../../../lib/testing-operations.js';
|
|
5
5
|
import { resolveTestingSecretInput } from '../../../lib/testing-secret-input.js';
|
|
6
6
|
import { formatTestingRecord, TESTING_JOB_PARALLEL_MODES, TESTING_JOB_SUITE_TYPES, } from '../../../lib/testing-types.js';
|
|
7
7
|
export default class TestingJobUpdate extends AgentiaCommand {
|
|
8
8
|
static args = {
|
|
9
9
|
id: Args.integer({
|
|
10
|
-
description: 'CRT job
|
|
10
|
+
description: 'CRT job ID.',
|
|
11
11
|
required: true,
|
|
12
12
|
}),
|
|
13
13
|
};
|
|
14
|
-
static description = 'Update Copado Robotic Testing job
|
|
14
|
+
static description = 'Update Copado Robotic Testing job metadata';
|
|
15
15
|
static examples = [
|
|
16
16
|
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --name "Smoke"',
|
|
17
17
|
'<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --git-url https://github.com/acme/crt-tests.git --git-branch main',
|
|
@@ -22,26 +22,21 @@ export default class TestingJobUpdate extends AgentiaCommand {
|
|
|
22
22
|
...testingProjectFlag,
|
|
23
23
|
...testingGitStorageFlags,
|
|
24
24
|
'case-duration-change-detection': Flags.boolean({
|
|
25
|
-
|
|
25
|
+
allowNo: true,
|
|
26
|
+
description: 'Enable or disable duration analytics.',
|
|
26
27
|
}),
|
|
27
28
|
description: Flags.string({
|
|
28
|
-
description: 'Job
|
|
29
|
-
}),
|
|
30
|
-
'hide-video-params': Flags.boolean({
|
|
31
|
-
description: 'Hide video parameters.',
|
|
29
|
+
description: 'Job description.',
|
|
32
30
|
}),
|
|
33
31
|
name: Flags.string({
|
|
34
|
-
description: 'Job
|
|
35
|
-
}),
|
|
36
|
-
'no-case-duration-change-detection': Flags.boolean({
|
|
37
|
-
description: 'Disable case duration change detection analytics.',
|
|
32
|
+
description: 'Job name.',
|
|
38
33
|
}),
|
|
39
34
|
'parallel-mode': Flags.option({
|
|
40
35
|
description: 'Parallel execution mode.',
|
|
41
36
|
options: [...TESTING_JOB_PARALLEL_MODES],
|
|
42
37
|
})(),
|
|
43
38
|
robot: Flags.integer({
|
|
44
|
-
description: 'CRT robot ID that should execute this job
|
|
39
|
+
description: 'CRT robot ID that should execute this job.',
|
|
45
40
|
}),
|
|
46
41
|
'screen-depth': Flags.integer({
|
|
47
42
|
description: 'Screen color depth. Must be provided with --screen-width and --screen-height.',
|
|
@@ -53,7 +48,8 @@ export default class TestingJobUpdate extends AgentiaCommand {
|
|
|
53
48
|
description: 'Screen width. Must be provided with --screen-height and --screen-depth.',
|
|
54
49
|
}),
|
|
55
50
|
'show-video-params': Flags.boolean({
|
|
56
|
-
|
|
51
|
+
allowNo: true,
|
|
52
|
+
description: 'Enable or disable video streaming and recording capabilities when running the test job.',
|
|
57
53
|
}),
|
|
58
54
|
'suite-type': Flags.option({
|
|
59
55
|
description: 'CRT suite/job type.',
|
|
@@ -65,33 +61,30 @@ export default class TestingJobUpdate extends AgentiaCommand {
|
|
|
65
61
|
};
|
|
66
62
|
async run() {
|
|
67
63
|
const { args, flags } = await this.parse(TestingJobUpdate);
|
|
68
|
-
const screen = this.screenFromFlags(flags);
|
|
69
|
-
const showVideoParams = this.videoParamsFromFlags(flags);
|
|
70
|
-
const caseDurationChangeDetection = this.analyticsFromFlags(flags);
|
|
71
64
|
const gitPassword = await resolveTestingSecretInput({
|
|
72
65
|
value: flags['git-password'],
|
|
73
66
|
valueFile: flags['git-password-file'],
|
|
74
67
|
valueStdin: flags['git-password-stdin'],
|
|
75
68
|
}, { label: 'CRT Git password', required: false });
|
|
76
69
|
const job = await this.withSpinner('Updating testing job', () => updateTestingJob({
|
|
77
|
-
|
|
70
|
+
caseDurationChangeDetection: flags['case-duration-change-detection'],
|
|
78
71
|
description: flags.description,
|
|
79
72
|
domainCredentialId: flags['git-domain-credential'],
|
|
73
|
+
gitBranch: flags['git-branch'],
|
|
74
|
+
gitPassword,
|
|
75
|
+
gitTag: flags['git-tag'],
|
|
76
|
+
gitUrl: flags['git-url'],
|
|
77
|
+
gitUseCallerCredentials: flags['git-use-caller-credentials'],
|
|
78
|
+
gitUsername: flags['git-username'],
|
|
80
79
|
jobId: args.id,
|
|
81
80
|
name: flags.name,
|
|
82
81
|
parallelExecution: flags['parallel-mode'],
|
|
83
82
|
projectId: flags.project,
|
|
84
83
|
robotId: flags.robot,
|
|
85
|
-
screen,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
gitPassword,
|
|
90
|
-
gitTag: flags['git-tag'],
|
|
91
|
-
gitUrl: flags['git-url'],
|
|
92
|
-
gitUseCallerCredentials: flags['git-use-caller-credentials'],
|
|
93
|
-
gitUsername: flags['git-username'],
|
|
94
|
-
}),
|
|
84
|
+
screenDepth: flags['screen-depth'],
|
|
85
|
+
screenHeight: flags['screen-height'],
|
|
86
|
+
screenWidth: flags['screen-width'],
|
|
87
|
+
showVideoParams: flags['show-video-params'],
|
|
95
88
|
suiteType: flags['suite-type'],
|
|
96
89
|
timeout: flags.timeout,
|
|
97
90
|
}));
|
|
@@ -101,41 +94,5 @@ export default class TestingJobUpdate extends AgentiaCommand {
|
|
|
101
94
|
});
|
|
102
95
|
return job;
|
|
103
96
|
}
|
|
104
|
-
analyticsFromFlags(flags) {
|
|
105
|
-
if (flags['case-duration-change-detection'] === true && flags['no-case-duration-change-detection'] === true) {
|
|
106
|
-
this.error('Use either --case-duration-change-detection or --no-case-duration-change-detection, not both.', {
|
|
107
|
-
exit: 2,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
if (flags['case-duration-change-detection'] === true)
|
|
111
|
-
return true;
|
|
112
|
-
if (flags['no-case-duration-change-detection'] === true)
|
|
113
|
-
return false;
|
|
114
|
-
return undefined;
|
|
115
|
-
}
|
|
116
|
-
screenFromFlags(flags) {
|
|
117
|
-
const values = [flags['screen-depth'], flags['screen-height'], flags['screen-width']];
|
|
118
|
-
const supplied = values.filter((value) => value !== undefined);
|
|
119
|
-
if (supplied.length === 0)
|
|
120
|
-
return undefined;
|
|
121
|
-
if (supplied.length !== values.length) {
|
|
122
|
-
this.error('Provide --screen-width, --screen-height, and --screen-depth together.', { exit: 2 });
|
|
123
|
-
}
|
|
124
|
-
const [depth, height, width] = values;
|
|
125
|
-
if (depth <= 0 || height <= 0 || width <= 0) {
|
|
126
|
-
this.error('Screen dimensions and depth must be positive integers.', { exit: 2 });
|
|
127
|
-
}
|
|
128
|
-
return { depth, height, width };
|
|
129
|
-
}
|
|
130
|
-
videoParamsFromFlags(flags) {
|
|
131
|
-
if (flags['show-video-params'] === true && flags['hide-video-params'] === true) {
|
|
132
|
-
this.error('Use either --show-video-params or --hide-video-params, not both.', { exit: 2 });
|
|
133
|
-
}
|
|
134
|
-
if (flags['show-video-params'] === true)
|
|
135
|
-
return true;
|
|
136
|
-
if (flags['hide-video-params'] === true)
|
|
137
|
-
return false;
|
|
138
|
-
return undefined;
|
|
139
|
-
}
|
|
140
97
|
}
|
|
141
98
|
//# sourceMappingURL=update.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
3
|
import { createTestingProject } from '../../../lib/testing-operations.js';
|
|
4
|
-
import { formatTestingRecord
|
|
4
|
+
import { formatTestingRecord } from '../../../lib/testing-types.js';
|
|
5
5
|
export default class TestingProjectCreate extends AgentiaCommand {
|
|
6
6
|
static description = 'Create a Copado Robotic Testing project';
|
|
7
7
|
static examples = [
|
|
@@ -9,35 +9,19 @@ export default class TestingProjectCreate extends AgentiaCommand {
|
|
|
9
9
|
'<%= config.bin %> <%= command.id %> --name "QA Tests" --description "Smoke suite" --json',
|
|
10
10
|
];
|
|
11
11
|
static flags = {
|
|
12
|
-
'dashboard-id': Flags.integer({
|
|
13
|
-
description: 'Optional CRT dashboard ID.',
|
|
14
|
-
min: 1,
|
|
15
|
-
}),
|
|
16
12
|
description: Flags.string({
|
|
17
13
|
description: 'Project description.',
|
|
18
14
|
}),
|
|
19
|
-
executor: Flags.option({
|
|
20
|
-
description: 'Project execution backend.',
|
|
21
|
-
options: [...TESTING_PROJECT_EXECUTORS],
|
|
22
|
-
})(),
|
|
23
15
|
name: Flags.string({
|
|
24
16
|
description: 'Project name.',
|
|
25
17
|
required: true,
|
|
26
18
|
}),
|
|
27
|
-
type: Flags.option({
|
|
28
|
-
default: 'ta',
|
|
29
|
-
description: 'CRT project type.',
|
|
30
|
-
options: [...TESTING_PROJECT_TYPES],
|
|
31
|
-
})(),
|
|
32
19
|
};
|
|
33
20
|
async run() {
|
|
34
21
|
const { flags } = await this.parse(TestingProjectCreate);
|
|
35
22
|
const project = await this.withSpinner('Creating testing project', () => createTestingProject({
|
|
36
|
-
dashboardId: flags['dashboard-id'],
|
|
37
23
|
description: flags.description,
|
|
38
24
|
name: flags.name,
|
|
39
|
-
projectExecutor: flags.executor,
|
|
40
|
-
projectType: flags.type,
|
|
41
25
|
}));
|
|
42
26
|
this.display(() => {
|
|
43
27
|
this.log('Testing project created');
|
|
@@ -14,7 +14,6 @@ export default class TestingProjectGet extends AgentiaCommand {
|
|
|
14
14
|
'<%= config.bin %> <%= command.id %> <project-id>',
|
|
15
15
|
'<%= config.bin %> <%= command.id %> <project-id> --json',
|
|
16
16
|
];
|
|
17
|
-
static flags = {};
|
|
18
17
|
async run() {
|
|
19
18
|
const { args } = await this.parse(TestingProjectGet);
|
|
20
19
|
const project = await this.withSpinner('Fetching testing project', () => getTestingProject({ projectId: args.id }));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
3
|
import { listTestingProjects } from '../../../lib/testing-operations.js';
|
|
4
|
-
import {
|
|
4
|
+
import { formatTestingProjectTable } from '../../../lib/testing-types.js';
|
|
5
5
|
export default class TestingProjectList extends AgentiaCommand {
|
|
6
6
|
static description = 'List Copado Robotic Testing projects';
|
|
7
7
|
static examples = [
|
|
@@ -21,7 +21,7 @@ export default class TestingProjectList extends AgentiaCommand {
|
|
|
21
21
|
this.log('No testing projects found.');
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
this.log(
|
|
24
|
+
this.log(formatTestingProjectTable(projects));
|
|
25
25
|
});
|
|
26
26
|
return projects;
|
|
27
27
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Args
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
3
|
+
import { testingPermissionFlags } from '../../../../lib/testing-flags.js';
|
|
3
4
|
import { setTestingProjectPermission } from '../../../../lib/testing-operations.js';
|
|
4
5
|
import { formatTestingTable } from '../../../../lib/testing-types.js';
|
|
5
6
|
export default class TestingProjectPermissionSet extends AgentiaCommand {
|
|
@@ -11,12 +12,7 @@ export default class TestingProjectPermissionSet extends AgentiaCommand {
|
|
|
11
12
|
'<%= config.bin %> <%= command.id %> <project-id> --user <user-id> --view',
|
|
12
13
|
'<%= config.bin %> <%= command.id %> <project-id> --group <group-id> --view --edit --json',
|
|
13
14
|
];
|
|
14
|
-
static flags =
|
|
15
|
-
edit: Flags.boolean({ default: false, description: 'Grant edit access.' }),
|
|
16
|
-
group: Flags.integer({ description: 'Platform group ID.', exclusive: ['user'], min: 1 }),
|
|
17
|
-
user: Flags.integer({ description: 'Platform user ID.', exclusive: ['group'], min: 1 }),
|
|
18
|
-
view: Flags.boolean({ default: false, description: 'Grant view access.' }),
|
|
19
|
-
};
|
|
15
|
+
static flags = testingPermissionFlags;
|
|
20
16
|
async run() {
|
|
21
17
|
const { args, flags } = await this.parse(TestingProjectPermissionSet);
|
|
22
18
|
const result = await this.withSpinner('Setting testing project permission', () => setTestingProjectPermission({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../../lib/agentia-command.js';
|
|
3
|
+
import { testingPermissionFlags } from '../../../../lib/testing-flags.js';
|
|
3
4
|
import { setTestingProjectPermission } from '../../../../lib/testing-operations.js';
|
|
4
5
|
import { formatTestingTable } from '../../../../lib/testing-types.js';
|
|
5
6
|
export default class TestingProjectPermissionUpdate extends AgentiaCommand {
|
|
@@ -12,9 +13,8 @@ export default class TestingProjectPermissionUpdate extends AgentiaCommand {
|
|
|
12
13
|
'<%= config.bin %> <%= command.id %> <project-id> --group <group-id> --view --json',
|
|
13
14
|
];
|
|
14
15
|
static flags = {
|
|
16
|
+
...testingPermissionFlags,
|
|
15
17
|
edit: Flags.boolean({ default: false, description: 'Set edit access.' }),
|
|
16
|
-
group: Flags.integer({ description: 'Platform group ID.', exclusive: ['user'], min: 1 }),
|
|
17
|
-
user: Flags.integer({ description: 'Platform user ID.', exclusive: ['group'], min: 1 }),
|
|
18
18
|
view: Flags.boolean({ default: false, description: 'Set view access.' }),
|
|
19
19
|
};
|
|
20
20
|
async run() {
|
|
@@ -1,67 +1,64 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
-
import { testingProjectFlag
|
|
3
|
+
import { testingProjectFlag } from '../../../lib/testing-flags.js';
|
|
4
4
|
import { createTestingRobot } from '../../../lib/testing-operations.js';
|
|
5
|
-
import { formatTestingRecord, TESTING_ROBOT_REPORTING, TESTING_ROBOT_RUN_ENVIRONMENTS, TESTING_ROBOT_TYPES, } from '../../../lib/testing-types.js';
|
|
5
|
+
import { formatTestingRecord, TESTING_ROBOT_REPORTING, TESTING_ROBOT_REPORTING_DESCRIPTION, TESTING_ROBOT_RUN_ENVIRONMENT_DESCRIPTION, TESTING_ROBOT_RUN_ENVIRONMENTS, TESTING_ROBOT_TYPE_DESCRIPTION, TESTING_ROBOT_TYPES, } from '../../../lib/testing-types.js';
|
|
6
6
|
export default class TestingRobotCreate extends AgentiaCommand {
|
|
7
7
|
static description = 'Create a Copado Robotic Testing robot';
|
|
8
8
|
static examples = [
|
|
9
9
|
'<%= config.bin %> <%= command.id %> --project <project-id> --name "Cloud Robot"',
|
|
10
|
-
'<%= config.bin %> <%= command.id %> --project <project-id> --name "QConnect Robot" --
|
|
10
|
+
'<%= config.bin %> <%= command.id %> --project <project-id> --name "QConnect Robot" --run-environment QConnect --json',
|
|
11
11
|
];
|
|
12
12
|
static flags = {
|
|
13
13
|
...testingProjectFlag,
|
|
14
14
|
description: Flags.string({
|
|
15
15
|
default: '',
|
|
16
|
-
description: '
|
|
16
|
+
description: 'Description for the robot (defaults to empty if omitted).',
|
|
17
17
|
}),
|
|
18
18
|
'fw-version': Flags.string({
|
|
19
19
|
default: 'stable',
|
|
20
|
-
description: '
|
|
20
|
+
description: 'Test framework release channel (for example stable).',
|
|
21
21
|
}),
|
|
22
|
-
kind: Flags.option({
|
|
23
|
-
description: 'Backward-compatible robot run environment alias.',
|
|
24
|
-
exclusive: ['run-environment'],
|
|
25
|
-
options: [...TESTING_ROBOT_RUN_ENVIRONMENTS],
|
|
26
|
-
})(),
|
|
27
22
|
label: Flags.string({
|
|
28
|
-
description: 'Optional robot
|
|
23
|
+
description: 'Optional label for the robot.',
|
|
29
24
|
}),
|
|
30
25
|
name: Flags.string({
|
|
31
|
-
description: '
|
|
26
|
+
description: 'Name for the new robot.',
|
|
32
27
|
required: true,
|
|
33
28
|
}),
|
|
34
|
-
os: Flags.string({
|
|
35
|
-
default: 'linux',
|
|
36
|
-
description: 'Robot operating system.',
|
|
37
|
-
}),
|
|
38
29
|
reporting: Flags.option({
|
|
39
|
-
description:
|
|
30
|
+
description: TESTING_ROBOT_REPORTING_DESCRIPTION,
|
|
40
31
|
options: [...TESTING_ROBOT_REPORTING],
|
|
41
32
|
})(),
|
|
42
|
-
'robot-type': Flags.
|
|
33
|
+
'robot-type': Flags.option({
|
|
43
34
|
default: 'default',
|
|
44
|
-
description:
|
|
35
|
+
description: TESTING_ROBOT_TYPE_DESCRIPTION,
|
|
45
36
|
options: [...TESTING_ROBOT_TYPES],
|
|
46
|
-
}),
|
|
37
|
+
})(),
|
|
47
38
|
'run-environment': Flags.option({
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
default: 'cloud',
|
|
40
|
+
description: TESTING_ROBOT_RUN_ENVIRONMENT_DESCRIPTION,
|
|
50
41
|
options: [...TESTING_ROBOT_RUN_ENVIRONMENTS],
|
|
51
42
|
})(),
|
|
52
43
|
};
|
|
53
44
|
async run() {
|
|
54
|
-
const
|
|
45
|
+
const argv = this.argv.map((arg, index) => {
|
|
46
|
+
if (arg === '--run-environment=paceconnect')
|
|
47
|
+
return '--run-environment=QConnect';
|
|
48
|
+
if (arg === 'paceconnect' && this.argv[index - 1] === '--run-environment')
|
|
49
|
+
return 'QConnect';
|
|
50
|
+
return arg;
|
|
51
|
+
});
|
|
52
|
+
const { flags } = await this.parse(TestingRobotCreate, argv);
|
|
55
53
|
const robot = await this.withSpinner('Creating testing robot', () => createTestingRobot({
|
|
56
54
|
description: flags.description,
|
|
57
55
|
fwVersion: flags['fw-version'],
|
|
58
|
-
kind: (flags['run-environment'] ?? flags.kind ?? 'cloud'),
|
|
59
56
|
label: flags.label,
|
|
60
57
|
name: flags.name,
|
|
61
|
-
os: flags.os,
|
|
62
58
|
projectId: flags.project,
|
|
63
59
|
reporting: flags.reporting,
|
|
64
60
|
robotType: flags['robot-type'],
|
|
61
|
+
runEnvironment: flags['run-environment'],
|
|
65
62
|
}));
|
|
66
63
|
this.display(() => {
|
|
67
64
|
this.log('Testing robot created');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
-
import { testingProjectFlag
|
|
3
|
+
import { testingProjectFlag } from '../../../lib/testing-flags.js';
|
|
4
4
|
import { getTestingRobot } from '../../../lib/testing-operations.js';
|
|
5
5
|
import { formatTestingRecord } from '../../../lib/testing-types.js';
|
|
6
6
|
export default class TestingRobotGet extends AgentiaCommand {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
-
import { testingProjectFlag
|
|
2
|
+
import { testingProjectFlag } from '../../../lib/testing-flags.js';
|
|
3
3
|
import { listTestingRobots } from '../../../lib/testing-operations.js';
|
|
4
|
-
import {
|
|
4
|
+
import { formatTestingRobotTable } from '../../../lib/testing-types.js';
|
|
5
5
|
export default class TestingRobotList extends AgentiaCommand {
|
|
6
6
|
static description = 'List Copado Robotic Testing robots in a project';
|
|
7
7
|
static examples = [
|
|
@@ -19,7 +19,7 @@ export default class TestingRobotList extends AgentiaCommand {
|
|
|
19
19
|
this.log('No testing robots found.');
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
|
-
this.log(
|
|
22
|
+
this.log(formatTestingRobotTable(robots));
|
|
23
23
|
});
|
|
24
24
|
return robots;
|
|
25
25
|
}
|
|
@@ -2,7 +2,7 @@ import { Args, Flags } from '@oclif/core';
|
|
|
2
2
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
3
|
import { testingProjectFlag } from '../../../lib/testing-flags.js';
|
|
4
4
|
import { updateTestingRobot } from '../../../lib/testing-operations.js';
|
|
5
|
-
import { formatTestingRecord, TESTING_ROBOT_REPORTING, TESTING_ROBOT_TYPES, } from '../../../lib/testing-types.js';
|
|
5
|
+
import { formatTestingRecord, TESTING_ROBOT_REPORTING, TESTING_ROBOT_REPORTING_DESCRIPTION, TESTING_ROBOT_TYPE_DESCRIPTION, TESTING_ROBOT_TYPES, } from '../../../lib/testing-types.js';
|
|
6
6
|
export default class TestingRobotUpdate extends AgentiaCommand {
|
|
7
7
|
static args = {
|
|
8
8
|
id: Args.string({ description: 'CRT robot ID.', required: true }),
|
|
@@ -19,11 +19,11 @@ export default class TestingRobotUpdate extends AgentiaCommand {
|
|
|
19
19
|
label: Flags.string({ description: 'New robot label.' }),
|
|
20
20
|
name: Flags.string({ description: 'New robot name.' }),
|
|
21
21
|
reporting: Flags.option({
|
|
22
|
-
description:
|
|
22
|
+
description: TESTING_ROBOT_REPORTING_DESCRIPTION,
|
|
23
23
|
options: [...TESTING_ROBOT_REPORTING],
|
|
24
24
|
})(),
|
|
25
25
|
'robot-type': Flags.option({
|
|
26
|
-
description:
|
|
26
|
+
description: TESTING_ROBOT_TYPE_DESCRIPTION,
|
|
27
27
|
options: [...TESTING_ROBOT_TYPES],
|
|
28
28
|
})(),
|
|
29
29
|
};
|
|
@@ -13,27 +13,21 @@ export default class TestingUserParameterCreate extends AgentiaCommand {
|
|
|
13
13
|
static flags = {
|
|
14
14
|
description: Flags.string({ description: 'Parameter description.' }),
|
|
15
15
|
key: Flags.string({ description: 'Parameter key.', required: true }),
|
|
16
|
-
sensitive: Flags.boolean({ default: false, description: 'Mark the parameter as sensitive.' }),
|
|
16
|
+
sensitive: Flags.boolean({ allowNo: true, default: false, description: 'Mark the parameter as sensitive.' }),
|
|
17
17
|
type: Flags.option({ default: 'parameter', description: 'CRT user-parameter type.', options: ['parameter'] })(),
|
|
18
18
|
unique: Flags.boolean({ default: false, description: 'Reject an existing parameter with the same key.' }),
|
|
19
19
|
...testingSecretInputFlags,
|
|
20
20
|
};
|
|
21
21
|
async run() {
|
|
22
22
|
const { flags } = await this.parse(TestingUserParameterCreate);
|
|
23
|
-
const value = await resolveTestingSecretInput({
|
|
24
|
-
noTrim: flags['no-trim'],
|
|
25
|
-
trim: flags.trim,
|
|
26
|
-
value: flags.value,
|
|
27
|
-
valueFile: flags['value-file'],
|
|
28
|
-
valueStdin: flags['value-stdin'],
|
|
29
|
-
}, { label: 'CRT user-parameter value', required: true });
|
|
23
|
+
const value = await resolveTestingSecretInput(flags, { label: 'CRT user-parameter value', required: true });
|
|
30
24
|
const result = await this.withSpinner('Creating testing user parameter', () => createTestingUserParameter({
|
|
31
25
|
description: flags.description,
|
|
32
26
|
key: flags.key,
|
|
33
27
|
sensitive: flags.sensitive,
|
|
34
28
|
type: 'parameter',
|
|
35
29
|
unique: flags.unique,
|
|
36
|
-
value
|
|
30
|
+
value,
|
|
37
31
|
}));
|
|
38
32
|
this.display(() => {
|
|
39
33
|
this.log('Testing user parameter created');
|
|
@@ -21,13 +21,7 @@ export default class TestingUserParameterUpdate extends AgentiaCommand {
|
|
|
21
21
|
};
|
|
22
22
|
async run() {
|
|
23
23
|
const { args, flags } = await this.parse(TestingUserParameterUpdate);
|
|
24
|
-
const value = await resolveTestingSecretInput({
|
|
25
|
-
noTrim: flags['no-trim'],
|
|
26
|
-
trim: flags.trim,
|
|
27
|
-
value: flags.value,
|
|
28
|
-
valueFile: flags['value-file'],
|
|
29
|
-
valueStdin: flags['value-stdin'],
|
|
30
|
-
}, { label: 'CRT user-parameter value', required: false });
|
|
24
|
+
const value = await resolveTestingSecretInput(flags, { label: 'CRT user-parameter value', required: false });
|
|
31
25
|
const result = await this.withSpinner('Updating testing user parameter', () => updateTestingUserParameter({
|
|
32
26
|
description: flags.description,
|
|
33
27
|
key: flags.key,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
-
import { testingProjectFlag, testingSecretInputFlags
|
|
3
|
+
import { testingProjectFlag, testingSecretInputFlags } from '../../../lib/testing-flags.js';
|
|
4
4
|
import { createTestingVariable } from '../../../lib/testing-operations.js';
|
|
5
5
|
import { resolveTestingSecretInput } from '../../../lib/testing-secret-input.js';
|
|
6
6
|
import { formatTestingRecord, TESTING_VARIABLE_TYPES } from '../../../lib/testing-types.js';
|
|
@@ -16,7 +16,7 @@ export default class TestingVariableCreate extends AgentiaCommand {
|
|
|
16
16
|
description: 'Variable description.',
|
|
17
17
|
}),
|
|
18
18
|
job: Flags.integer({
|
|
19
|
-
description: 'Scope the variable to a CRT job
|
|
19
|
+
description: 'Scope the variable to a CRT job ID.',
|
|
20
20
|
exclusive: ['robot'],
|
|
21
21
|
}),
|
|
22
22
|
key: Flags.string({
|
|
@@ -28,6 +28,7 @@ export default class TestingVariableCreate extends AgentiaCommand {
|
|
|
28
28
|
exclusive: ['job'],
|
|
29
29
|
}),
|
|
30
30
|
sensitive: Flags.boolean({
|
|
31
|
+
allowNo: true,
|
|
31
32
|
default: false,
|
|
32
33
|
description: 'Mark the variable as sensitive.',
|
|
33
34
|
}),
|
|
@@ -44,13 +45,7 @@ export default class TestingVariableCreate extends AgentiaCommand {
|
|
|
44
45
|
};
|
|
45
46
|
async run() {
|
|
46
47
|
const { flags } = await this.parse(TestingVariableCreate);
|
|
47
|
-
const value = await resolveTestingSecretInput({
|
|
48
|
-
noTrim: flags['no-trim'],
|
|
49
|
-
trim: flags.trim,
|
|
50
|
-
value: flags.value,
|
|
51
|
-
valueFile: flags['value-file'],
|
|
52
|
-
valueStdin: flags['value-stdin'],
|
|
53
|
-
}, { label: 'CRT variable value', required: true });
|
|
48
|
+
const value = await resolveTestingSecretInput(flags, { label: 'CRT variable value', required: true });
|
|
54
49
|
const result = await this.withSpinner('Creating testing variable', () => createTestingVariable({
|
|
55
50
|
description: flags.description,
|
|
56
51
|
jobId: flags.job,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
-
import { testingProjectFlag
|
|
3
|
+
import { testingProjectFlag } from '../../../lib/testing-flags.js';
|
|
4
4
|
import { listTestingVariables } from '../../../lib/testing-operations.js';
|
|
5
|
-
import { formatTestingTable, TESTING_VARIABLE_TYPES
|
|
5
|
+
import { formatTestingTable, TESTING_VARIABLE_TYPES } from '../../../lib/testing-types.js';
|
|
6
6
|
export default class TestingVariableList extends AgentiaCommand {
|
|
7
7
|
static description = 'List Copado Robotic Testing variables/secrets';
|
|
8
8
|
static examples = [
|
|
@@ -12,7 +12,7 @@ export default class TestingVariableList extends AgentiaCommand {
|
|
|
12
12
|
static flags = {
|
|
13
13
|
...testingProjectFlag,
|
|
14
14
|
job: Flags.integer({
|
|
15
|
-
description: 'Filter for a CRT job
|
|
15
|
+
description: 'Filter for a CRT job ID.',
|
|
16
16
|
exclusive: ['robot'],
|
|
17
17
|
}),
|
|
18
18
|
key: Flags.string({
|