codefresh 0.82.8 → 0.83.1
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/codefresh-release.yml +4 -5
- package/codefresh.yml +16 -1
- package/lib/interface/cli/commands/annotation/create.cmd.js +1 -1
- package/lib/interface/cli/commands/pipeline/pipeline.sdk.spec.js +10 -10
- package/lib/interface/cli/commands/pipeline/run.base.js +20 -4
- package/lib/interface/cli/commands/pipeline/run.cmd.js +2 -2
- package/lib/interface/cli/completion/tree.json +1 -1
- package/lib/interface/cli/defaults.js +1 -0
- package/lib/interface/cli/helpers/general.js +29 -0
- package/package.json +1 -1
package/codefresh-release.yml
CHANGED
|
@@ -445,14 +445,13 @@ steps:
|
|
|
445
445
|
update_documentation:
|
|
446
446
|
stage: documentation
|
|
447
447
|
title: "Update documentation http://cli.codefresh.io"
|
|
448
|
-
image:
|
|
448
|
+
image: codefresh/build-cli
|
|
449
449
|
commands:
|
|
450
|
-
- "
|
|
451
|
-
- "npm install"
|
|
450
|
+
- "yarn"
|
|
452
451
|
- "echo cleaning previous public dir and recreating worktree"
|
|
453
|
-
- "rm -rf public && git worktree prune &&
|
|
452
|
+
- "rm -rf public && git worktree prune && git worktree add -B gh-pages public origin/gh-pages"
|
|
454
453
|
- "echo Building public docs"
|
|
455
|
-
- "
|
|
454
|
+
- "yarn run build-public-docs"
|
|
456
455
|
- "echo Push new docs to gh-pages detached branch"
|
|
457
456
|
- 'git config --global user.email "auto-ci@codefresh.io" && git config --global user.name "Automated CI"'
|
|
458
457
|
- 'cd public && git add --all && git commit -m "Publish new documentation for version ${{PACKAGE_VERSION}}" && git push https://${{GITHUB_TOKEN}}@github.com/codefresh-io/cli.git'
|
package/codefresh.yml
CHANGED
|
@@ -328,7 +328,7 @@ steps:
|
|
|
328
328
|
type: codefresh-run
|
|
329
329
|
arguments:
|
|
330
330
|
PIPELINE_ID: 'codefresh-io/cli/release'
|
|
331
|
-
|
|
331
|
+
TRIGGER_ID: codefresh-io/cli_1
|
|
332
332
|
BRANCH: master
|
|
333
333
|
VARIABLE:
|
|
334
334
|
- PACKAGE_VERSION=${{PACKAGE_VERSION}}
|
|
@@ -342,3 +342,18 @@ steps:
|
|
|
342
342
|
- name: create_manifest_list
|
|
343
343
|
on:
|
|
344
344
|
- success
|
|
345
|
+
|
|
346
|
+
build_documentation:
|
|
347
|
+
stage: test
|
|
348
|
+
title: "build documentation http://cli.codefresh.io"
|
|
349
|
+
image: codefresh/build-cli
|
|
350
|
+
commands:
|
|
351
|
+
- "echo Building public docs"
|
|
352
|
+
- "npm run build-public-docs"
|
|
353
|
+
environment:
|
|
354
|
+
- HUGO_VERSION=0.32.0
|
|
355
|
+
when:
|
|
356
|
+
steps:
|
|
357
|
+
- name: install_dependencies
|
|
358
|
+
on:
|
|
359
|
+
- success
|
|
@@ -31,7 +31,7 @@ const command = new Command({
|
|
|
31
31
|
.example('codefresh create annotation image 2dfacdaad466 coverage=75%', 'Annotate entity with a single label')
|
|
32
32
|
.example('codefresh create annotation image 2dfacdaad466 coverage=75% tests_passed=true', 'Annotate entity with multiple labels')
|
|
33
33
|
// eslint-disable-next-line max-len
|
|
34
|
-
.example('codefresh create annotation
|
|
34
|
+
.example('codefresh create annotation workflow 643d807b85bbe35931ae2282 ENV=prod tests_passed=true --display ENV', 'Annotate entity with multiple labels and display selection'),
|
|
35
35
|
handler: async (argv) => {
|
|
36
36
|
const { entityType, entityId, labels, display } = argv;
|
|
37
37
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const yaml = require('js-yaml');
|
|
2
2
|
const request = require('requestretry');
|
|
3
3
|
const fs = require('fs');
|
|
4
|
+
const _ = require('lodash');
|
|
4
5
|
const DEFAULTS = require('../../defaults');
|
|
5
6
|
const getCmd = require('./get.cmd').toCommand();
|
|
6
7
|
const deleteCmd = require('./delete.cmd').toCommand();
|
|
@@ -17,6 +18,11 @@ jest.mock('../../completion/helpers', () => { // eslint-disable-line
|
|
|
17
18
|
};
|
|
18
19
|
});
|
|
19
20
|
|
|
21
|
+
jest.mock('../../helpers/general', () => ({
|
|
22
|
+
...jest.requireActual('../../helpers/general'),
|
|
23
|
+
isCompatibleApiVersion: () => true,
|
|
24
|
+
}));
|
|
25
|
+
|
|
20
26
|
jest.mock('../../../../logic/entities/Pipeline', () => { // eslint-disable-line
|
|
21
27
|
return {
|
|
22
28
|
fromResponse: (res) => res,
|
|
@@ -90,16 +96,10 @@ describe('pipeline', () => {
|
|
|
90
96
|
const argv = { name: 'some name',
|
|
91
97
|
detach: true,
|
|
92
98
|
annotation: [],
|
|
93
|
-
variable:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
key: 'VAR1',
|
|
100
|
-
value: 'VAL1',
|
|
101
|
-
},
|
|
102
|
-
],
|
|
99
|
+
variable: [
|
|
100
|
+
'secret=secret',
|
|
101
|
+
'VAR1=VAL1',
|
|
102
|
+
],
|
|
103
103
|
encrypted: ['secret'],
|
|
104
104
|
};
|
|
105
105
|
const pip = new CfPipeline(argv);
|
|
@@ -3,10 +3,14 @@ const Promise = require('bluebird');
|
|
|
3
3
|
const CFError = require('cf-errors');
|
|
4
4
|
const { prepareKeyValueFromCLIEnvOption,
|
|
5
5
|
markEncryptedFlagOnRequestedVariables,
|
|
6
|
-
prepareKeyValueObjectsFromEnvFileOption
|
|
6
|
+
prepareKeyValueObjectsFromEnvFileOption,
|
|
7
|
+
prepareKeyValueObjectsFromCLIEnvOption,
|
|
8
|
+
isCompatibleApiVersion,
|
|
9
|
+
} = require('../../helpers/general');
|
|
7
10
|
const { validatePipelineYaml } = require('../../helpers/validation');
|
|
8
11
|
const { printResult } = require('../root/validate.cmd');
|
|
9
12
|
const { sdk } = require('../../../../logic');
|
|
13
|
+
const defaults = require('../../defaults');
|
|
10
14
|
|
|
11
15
|
class RunBaseCommand {
|
|
12
16
|
constructor(argv) {
|
|
@@ -57,15 +61,27 @@ class RunBaseCommand {
|
|
|
57
61
|
packName,
|
|
58
62
|
},
|
|
59
63
|
};
|
|
60
|
-
|
|
64
|
+
const encryptedVarsSupported = await isCompatibleApiVersion({
|
|
65
|
+
supportedVersion: defaults.MIN_API_VERSION_FOR_ENCRYPTED_VARS_SUPPORT_IN_RUN_CMD,
|
|
66
|
+
});
|
|
61
67
|
if (variablesFromFile) {
|
|
62
68
|
_.forEach(variablesFromFile, (variables) => {
|
|
63
69
|
const request = _.cloneDeep(executionRequestTemplate);
|
|
64
|
-
|
|
70
|
+
if (encryptedVarsSupported) {
|
|
71
|
+
request.options.variables = prepareKeyValueObjectsFromEnvFileOption(variables);
|
|
72
|
+
} else {
|
|
73
|
+
request.options.variables = variables;
|
|
74
|
+
}
|
|
65
75
|
this.executionRequests.push(request);
|
|
66
76
|
});
|
|
67
77
|
} else {
|
|
68
|
-
|
|
78
|
+
let variables;
|
|
79
|
+
if (encryptedVarsSupported) {
|
|
80
|
+
const varsArr = prepareKeyValueObjectsFromCLIEnvOption(this.argv.variable);
|
|
81
|
+
variables = markEncryptedFlagOnRequestedVariables(varsArr, this.argv.encrypted);
|
|
82
|
+
} else {
|
|
83
|
+
variables = prepareKeyValueFromCLIEnvOption(this.argv.variable);
|
|
84
|
+
}
|
|
69
85
|
const request = _.cloneDeep(executionRequestTemplate);
|
|
70
86
|
request.options.variables = variables;
|
|
71
87
|
request.options.contexts = contexts;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
const debug = require('debug')('codefresh:cli:run:pipeline');
|
|
1
2
|
const Command = require('../../Command');
|
|
2
|
-
const { crudFilenameOption
|
|
3
|
+
const { crudFilenameOption } = require('../../helpers/general');
|
|
3
4
|
const RunLocalCommand = require('./run.local');
|
|
4
5
|
const RunExternalCommand = require('./run.cf');
|
|
5
6
|
|
|
@@ -84,7 +85,6 @@ const run = new Command({
|
|
|
84
85
|
describe: 'Set build variables',
|
|
85
86
|
default: [],
|
|
86
87
|
alias: 'v',
|
|
87
|
-
coerce: prepareKeyValueObjectsFromCLIEnvOption,
|
|
88
88
|
})
|
|
89
89
|
.option('encrypted', {
|
|
90
90
|
array: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"codefresh":{"analyze":{},"completion":{},"completions":{"alias":"completion"},"tag":{},"untag":{},"offline-logs":{"ensure-index":{},"offload-to-collection":{},"offload-to-file":{}},"run":{"__optionHandlers":["../commands/pipeline/run.completion.js"]},"add":{"repository":{},"repo":{"alias":"repository"}},"annotate":{"image":{},"img":{"alias":"image"}},"patch":{"__optionHandlers":["../commands/root/apply.completion.js"],"agent":{"__optionHandlers":["../commands/root/apply.completion.js"]},"board":{"__optionHandlers":["../commands/root/apply.completion.js"]},"project":{"__optionHandlers":["../commands/root/apply.completion.js"]},"runtime-environments":{"__optionHandlers":["../commands/root/apply.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"section":{"__optionHandlers":["../commands/root/apply.completion.js"]},"system-runtime-environments":{"__optionHandlers":["../commands/root/apply.completion.js"]},"sys-re":{"alias":"system-runtime-environments"},"system-runtime-environment":{"alias":"system-runtime-environments"},"teams":{"__optionHandlers":["../commands/root/apply.completion.js"]},"team":{"alias":"teams"},"tm":{"alias":"teams"},"tokens":{"__optionHandlers":["../commands/root/apply.completion.js"]},"token":{"alias":"tokens"},"helm-repo":{"__optionHandlers":["../commands/root/apply.completion.js"]},"context":{"__optionHandlers":["../commands/root/apply.completion.js"]},"ctx":{"alias":"context"}},"auth":{"create-context":{},"current-context":{},"get-contexts":{},"use-context":{}},"components":{"download":{},"update":{}},"create":{"__optionHandlers":["../commands/root/create.completion.js"],"agent":{"__optionHandlers":["../commands/root/create.completion.js"]},"clusters":{"__optionHandlers":["../commands/root/create.completion.js"]},"cluster":{"alias":"clusters"},"annotation":{"__optionHandlers":["../commands/root/create.completion.js"]},"board":{"__optionHandlers":["../commands/root/create.completion.js"]},"composition":{"__optionHandlers":["../commands/composition/create.completion.js","../commands/root/create.completion.js"]},"com":{"alias":"composition"},"project":{"__optionHandlers":["../commands/root/create.completion.js"]},"runtime-environments":{"__optionHandlers":["../commands/root/create.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"section":{"__optionHandlers":["../commands/root/create.completion.js"]},"teams":{"__optionHandlers":["../commands/root/create.completion.js"]},"team":{"alias":"teams"},"tm":{"alias":"teams"},"token":{"__optionHandlers":["../commands/root/create.completion.js"]},"helm-repo":{"__optionHandlers":["../commands/root/create.completion.js"]},"registry":{"__optionHandlers":["../commands/root/create.completion.js"],"standard":{"__optionHandlers":["../commands/root/create.completion.js"]}},"trigger":{"__optionHandlers":["../commands/root/create.completion.js"]},"t":{"alias":"trigger"},"trigger-event":{"__optionHandlers":["../commands/root/create.completion.js"]},"te":{"alias":"trigger-event"},"workflow-data-item":{"__optionHandlers":["../commands/root/create.completion.js"]},"wdi":{"alias":"workflow-data-item"},"context":{"__optionHandlers":["../commands/root/create.completion.js"],"config":{"__optionHandlers":["../commands/root/create.completion.js"]},"secret":{"__optionHandlers":["../commands/root/create.completion.js"]},"secret-yaml":{"__optionHandlers":["../commands/root/create.completion.js"]},"yaml":{"__optionHandlers":["../commands/root/create.completion.js"]},"git":{"__optionHandlers":["../commands/root/create.completion.js"],"bitbucket":{"__optionHandlers":["../commands/root/create.completion.js"]},"github":{"__optionHandlers":["../commands/root/create.completion.js"]},"gitlab":{"__optionHandlers":["../commands/root/create.completion.js"]},"stash":{"__optionHandlers":["../commands/root/create.completion.js"]}},"helm-repository":{"__optionHandlers":["../commands/root/create.completion.js"],"http":{"__optionHandlers":["../commands/root/create.completion.js"]},"s3":{"__optionHandlers":["../commands/root/create.completion.js"]}},"secret-store":{"__optionHandlers":["../commands/root/create.completion.js"],"hashicorp-vault":{"__optionHandlers":["../commands/root/create.completion.js"]},"kubernetes-runtime":{"__optionHandlers":["../commands/root/create.completion.js"]},"kubernetes":{"__optionHandlers":["../commands/root/create.completion.js"]}}},"ctx":{"alias":"context","config":{"__optionHandlers":["../commands/root/create.completion.js"]},"secret":{"__optionHandlers":["../commands/root/create.completion.js"]},"secret-yaml":{"__optionHandlers":["../commands/root/create.completion.js"]},"yaml":{"__optionHandlers":["../commands/root/create.completion.js"]},"git":{"__optionHandlers":["../commands/root/create.completion.js"],"bitbucket":{"__optionHandlers":["../commands/root/create.completion.js"]},"github":{"__optionHandlers":["../commands/root/create.completion.js"]},"gitlab":{"__optionHandlers":["../commands/root/create.completion.js"]},"stash":{"__optionHandlers":["../commands/root/create.completion.js"]}},"helm-repository":{"__optionHandlers":["../commands/root/create.completion.js"],"http":{"__optionHandlers":["../commands/root/create.completion.js"]},"s3":{"__optionHandlers":["../commands/root/create.completion.js"]}},"secret-store":{"__optionHandlers":["../commands/root/create.completion.js"],"hashicorp-vault":{"__optionHandlers":["../commands/root/create.completion.js"]},"kubernetes-runtime":{"__optionHandlers":["../commands/root/create.completion.js"]},"kubernetes":{"__optionHandlers":["../commands/root/create.completion.js"]}}}},"delete":{"__optionHandlers":["../commands/root/delete.completion.js"],"agent":{"__optionHandlers":["../commands/root/delete.completion.js"]},"annotation":{"__optionHandlers":["../commands/root/delete.completion.js"]},"board":{"__optionHandlers":["../commands/root/delete.completion.js"]},"cluster":{"__optionHandlers":["../commands/root/delete.completion.js"]},"clusters":{"alias":"cluster"},"composition":{"__optionHandlers":["../commands/root/delete.completion.js"]},"com":{"alias":"composition"},"environment":{"__optionHandlers":["../commands/root/delete.completion.js"]},"env":{"alias":"environment"},"pipeline":{"__optionHandlers":["../commands/root/delete.completion.js"]},"pip":{"alias":"pipeline"},"project":{"__optionHandlers":["../commands/root/delete.completion.js"]},"repository":{"__optionHandlers":["../commands/root/delete.completion.js"]},"repo":{"alias":"repository"},"runtime-environments":{"__optionHandlers":["../commands/root/delete.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"section":{"__optionHandlers":["../commands/root/delete.completion.js"]},"step-type":{"__optionHandlers":["../commands/root/delete.completion.js"]},"system-runtime-environments":{"__optionHandlers":["../commands/root/delete.completion.js"]},"sys-re":{"alias":"system-runtime-environments"},"system-runtime-environment":{"alias":"system-runtime-environments"},"teams":{"__optionHandlers":["../commands/root/delete.completion.js"]},"team":{"alias":"teams"},"tm":{"alias":"teams"},"tokens":{"__optionHandlers":["../commands/root/delete.completion.js"]},"token":{"alias":"tokens"},"helm-repo":{"__optionHandlers":["../commands/root/delete.completion.js"]},"registry":{"__optionHandlers":["../commands/root/delete.completion.js"]},"trigger":{"__optionHandlers":["../commands/root/delete.completion.js"]},"t":{"alias":"trigger"},"trigger-event":{"__optionHandlers":["../commands/root/delete.completion.js"]},"te":{"alias":"trigger-event"},"context":{"__optionHandlers":["../commands/root/delete.completion.js"]},"ctx":{"alias":"context"}},"diff":{"__optionHandlers":["../commands/root/diff.completion.js"],"runtime-environments":{"__optionHandlers":["../commands/root/diff.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"system-runtime-environments":{"__optionHandlers":["../commands/root/diff.completion.js"]},"sys-re":{"alias":"system-runtime-environments"},"system-runtime-environment":{"alias":"system-runtime-environments"}},"download":{"audit":{}},"generate":{"image-pull-secret":{}},"get":{"__optionHandlers":["../commands/root/get.completion.js"],"agents":{"__optionHandlers":["../commands/root/get.completion.js"]},"agent":{"alias":"agents"},"annotation":{"__optionHandlers":["../commands/root/get.completion.js"]},"boards":{"__optionHandlers":["../commands/root/get.completion.js"]},"board":{"alias":"boards"},"clusters":{"__optionHandlers":["../commands/root/get.completion.js"]},"cluster":{"alias":"clusters"},"compositions":{"__optionHandlers":["../commands/root/get.completion.js"]},"com":{"alias":"compositions"},"composition":{"alias":"compositions"},"environments":{"__optionHandlers":["../commands/root/get.completion.js"]},"env":{"alias":"environments"},"environment":{"alias":"environments"},"images":{"__optionHandlers":["../commands/root/get.completion.js"]},"img":{"alias":"images"},"image":{"alias":"images"},"pipelines":{"__positionalHandler":"../commands/pipeline/get.completion.js","__optionHandlers":["../commands/root/get.completion.js"]},"pip":{"alias":"pipelines"},"pipeline":{"alias":"pipelines"},"projects":{"__optionHandlers":["../commands/root/get.completion.js"]},"project":{"alias":"projects"},"repository":{"__optionHandlers":["../commands/root/get.completion.js"]},"repo":{"alias":"repository"},"runtime-environments":{"__optionHandlers":["../commands/root/get.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"sections":{"__optionHandlers":["../commands/root/get.completion.js"]},"section":{"alias":"sections"},"step-types":{"__positionalHandler":"../commands/step/get.completion.js","__optionHandlers":["../commands/root/get.completion.js"]},"step-type":{"alias":"step-types"},"system-runtime-environments":{"__optionHandlers":["../commands/root/get.completion.js"]},"sys-re":{"alias":"system-runtime-environments"},"system-runtime-environment":{"alias":"system-runtime-environments"},"teams":{"__optionHandlers":["../commands/root/get.completion.js"]},"team":{"alias":"teams"},"tm":{"alias":"teams"},"tokens":{"__optionHandlers":["../commands/root/get.completion.js"]},"token":{"alias":"tokens"},"helm-repo":{"__optionHandlers":["../commands/root/get.completion.js"]},"registry":{"__optionHandlers":["../commands/root/get.completion.js"]},"triggers":{"__optionHandlers":["../commands/root/get.completion.js"]},"trigger":{"alias":"triggers"},"t":{"alias":"triggers"},"trigger-events":{"__optionHandlers":["../commands/root/get.completion.js"]},"trigger-event":{"alias":"trigger-events"},"te":{"alias":"trigger-events"},"trigger-types":{"__optionHandlers":["../commands/root/get.completion.js"]},"trigger-type":{"alias":"trigger-types"},"tt":{"alias":"trigger-types"},"builds":{"__optionHandlers":["../commands/root/get.completion.js"]},"build":{"alias":"builds"},"workflow-data-item":{"__optionHandlers":["../commands/root/get.completion.js"]},"wdi":{"alias":"workflow-data-item"},"contexts":{"__optionHandlers":["../commands/root/get.completion.js"]},"ctx":{"alias":"contexts"},"context":{"alias":"contexts"}},"install":{"runtime":{},"agent":{},"app-proxy":{},"monitor":{},"gitops":{}},"replace":{"__optionHandlers":["../commands/root/replace.completion.js"],"composition":{"__optionHandlers":["../commands/composition/replace.completion.js","../commands/root/replace.completion.js"]},"com":{"alias":"composition"}},"runner":{"delete":{},"execute-test-pipeline":{},"info":{},"init":{},"upgrade":{}},"synchronize":{"teams":{},"team":{"alias":"teams"},"tm":{"alias":"teams"}},"uninstall":{"agent":{},"app-proxy":{},"runtime":{},"monitor":{},"gitops":{}},"upgrade":{"app-proxy":{},"gitops":{}},"validate":{"__positionalHandler":"../commands/root/validate.completion.js"},"version":{},"attach":{},"cli-config":{"get":{},"help":{},"profile":{},"set":{}},"set-helm-config":{},"install-chart":{},"helm-promotion":{},"delete-release":{},"rollback-release":{},"test-release":{},"approve":{},"deny":{},"logs":{},"restart":{},"terminate":{},"wait":{}}}
|
|
1
|
+
{"codefresh":{"analyze":{},"completion":{},"completions":{"alias":"completion"},"tag":{},"untag":{},"offline-logs":{"ensure-index":{},"offload-to-collection":{},"offload-to-file":{}},"run":{"__optionHandlers":["../commands/pipeline/run.completion.js"]},"attach":{},"add":{"repository":{},"repo":{"alias":"repository"}},"annotate":{"image":{},"img":{"alias":"image"}},"patch":{"__optionHandlers":["../commands/root/apply.completion.js"],"agent":{"__optionHandlers":["../commands/root/apply.completion.js"]},"board":{"__optionHandlers":["../commands/root/apply.completion.js"]},"project":{"__optionHandlers":["../commands/root/apply.completion.js"]},"runtime-environments":{"__optionHandlers":["../commands/root/apply.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"section":{"__optionHandlers":["../commands/root/apply.completion.js"]},"system-runtime-environments":{"__optionHandlers":["../commands/root/apply.completion.js"]},"sys-re":{"alias":"system-runtime-environments"},"system-runtime-environment":{"alias":"system-runtime-environments"},"teams":{"__optionHandlers":["../commands/root/apply.completion.js"]},"team":{"alias":"teams"},"tm":{"alias":"teams"},"tokens":{"__optionHandlers":["../commands/root/apply.completion.js"]},"token":{"alias":"tokens"},"helm-repo":{"__optionHandlers":["../commands/root/apply.completion.js"]},"context":{"__optionHandlers":["../commands/root/apply.completion.js"]},"ctx":{"alias":"context"}},"auth":{"create-context":{},"current-context":{},"get-contexts":{},"use-context":{}},"components":{"download":{},"update":{}},"create":{"__optionHandlers":["../commands/root/create.completion.js"],"agent":{"__optionHandlers":["../commands/root/create.completion.js"]},"clusters":{"__optionHandlers":["../commands/root/create.completion.js"]},"cluster":{"alias":"clusters"},"annotation":{"__optionHandlers":["../commands/root/create.completion.js"]},"board":{"__optionHandlers":["../commands/root/create.completion.js"]},"composition":{"__optionHandlers":["../commands/composition/create.completion.js","../commands/root/create.completion.js"]},"com":{"alias":"composition"},"project":{"__optionHandlers":["../commands/root/create.completion.js"]},"runtime-environments":{"__optionHandlers":["../commands/root/create.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"section":{"__optionHandlers":["../commands/root/create.completion.js"]},"teams":{"__optionHandlers":["../commands/root/create.completion.js"]},"team":{"alias":"teams"},"tm":{"alias":"teams"},"token":{"__optionHandlers":["../commands/root/create.completion.js"]},"helm-repo":{"__optionHandlers":["../commands/root/create.completion.js"]},"registry":{"__optionHandlers":["../commands/root/create.completion.js"],"standard":{"__optionHandlers":["../commands/root/create.completion.js"]}},"trigger":{"__optionHandlers":["../commands/root/create.completion.js"]},"t":{"alias":"trigger"},"trigger-event":{"__optionHandlers":["../commands/root/create.completion.js"]},"te":{"alias":"trigger-event"},"workflow-data-item":{"__optionHandlers":["../commands/root/create.completion.js"]},"wdi":{"alias":"workflow-data-item"},"context":{"__optionHandlers":["../commands/root/create.completion.js"],"config":{"__optionHandlers":["../commands/root/create.completion.js"]},"secret":{"__optionHandlers":["../commands/root/create.completion.js"]},"secret-yaml":{"__optionHandlers":["../commands/root/create.completion.js"]},"yaml":{"__optionHandlers":["../commands/root/create.completion.js"]},"git":{"__optionHandlers":["../commands/root/create.completion.js"],"bitbucket":{"__optionHandlers":["../commands/root/create.completion.js"]},"github":{"__optionHandlers":["../commands/root/create.completion.js"]},"gitlab":{"__optionHandlers":["../commands/root/create.completion.js"]},"stash":{"__optionHandlers":["../commands/root/create.completion.js"]}},"secret-store":{"__optionHandlers":["../commands/root/create.completion.js"],"hashicorp-vault":{"__optionHandlers":["../commands/root/create.completion.js"]},"kubernetes-runtime":{"__optionHandlers":["../commands/root/create.completion.js"]},"kubernetes":{"__optionHandlers":["../commands/root/create.completion.js"]}},"helm-repository":{"__optionHandlers":["../commands/root/create.completion.js"],"http":{"__optionHandlers":["../commands/root/create.completion.js"]},"s3":{"__optionHandlers":["../commands/root/create.completion.js"]}}},"ctx":{"alias":"context","config":{"__optionHandlers":["../commands/root/create.completion.js"]},"secret":{"__optionHandlers":["../commands/root/create.completion.js"]},"secret-yaml":{"__optionHandlers":["../commands/root/create.completion.js"]},"yaml":{"__optionHandlers":["../commands/root/create.completion.js"]},"git":{"__optionHandlers":["../commands/root/create.completion.js"],"bitbucket":{"__optionHandlers":["../commands/root/create.completion.js"]},"github":{"__optionHandlers":["../commands/root/create.completion.js"]},"gitlab":{"__optionHandlers":["../commands/root/create.completion.js"]},"stash":{"__optionHandlers":["../commands/root/create.completion.js"]}},"secret-store":{"__optionHandlers":["../commands/root/create.completion.js"],"hashicorp-vault":{"__optionHandlers":["../commands/root/create.completion.js"]},"kubernetes-runtime":{"__optionHandlers":["../commands/root/create.completion.js"]},"kubernetes":{"__optionHandlers":["../commands/root/create.completion.js"]}},"helm-repository":{"__optionHandlers":["../commands/root/create.completion.js"],"http":{"__optionHandlers":["../commands/root/create.completion.js"]},"s3":{"__optionHandlers":["../commands/root/create.completion.js"]}}}},"delete":{"__optionHandlers":["../commands/root/delete.completion.js"],"agent":{"__optionHandlers":["../commands/root/delete.completion.js"]},"annotation":{"__optionHandlers":["../commands/root/delete.completion.js"]},"board":{"__optionHandlers":["../commands/root/delete.completion.js"]},"cluster":{"__optionHandlers":["../commands/root/delete.completion.js"]},"clusters":{"alias":"cluster"},"composition":{"__optionHandlers":["../commands/root/delete.completion.js"]},"com":{"alias":"composition"},"environment":{"__optionHandlers":["../commands/root/delete.completion.js"]},"env":{"alias":"environment"},"pipeline":{"__optionHandlers":["../commands/root/delete.completion.js"]},"pip":{"alias":"pipeline"},"project":{"__optionHandlers":["../commands/root/delete.completion.js"]},"repository":{"__optionHandlers":["../commands/root/delete.completion.js"]},"repo":{"alias":"repository"},"runtime-environments":{"__optionHandlers":["../commands/root/delete.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"section":{"__optionHandlers":["../commands/root/delete.completion.js"]},"step-type":{"__optionHandlers":["../commands/root/delete.completion.js"]},"system-runtime-environments":{"__optionHandlers":["../commands/root/delete.completion.js"]},"sys-re":{"alias":"system-runtime-environments"},"system-runtime-environment":{"alias":"system-runtime-environments"},"teams":{"__optionHandlers":["../commands/root/delete.completion.js"]},"team":{"alias":"teams"},"tm":{"alias":"teams"},"tokens":{"__optionHandlers":["../commands/root/delete.completion.js"]},"token":{"alias":"tokens"},"helm-repo":{"__optionHandlers":["../commands/root/delete.completion.js"]},"registry":{"__optionHandlers":["../commands/root/delete.completion.js"]},"trigger":{"__optionHandlers":["../commands/root/delete.completion.js"]},"t":{"alias":"trigger"},"trigger-event":{"__optionHandlers":["../commands/root/delete.completion.js"]},"te":{"alias":"trigger-event"},"context":{"__optionHandlers":["../commands/root/delete.completion.js"]},"ctx":{"alias":"context"}},"diff":{"__optionHandlers":["../commands/root/diff.completion.js"],"runtime-environments":{"__optionHandlers":["../commands/root/diff.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"system-runtime-environments":{"__optionHandlers":["../commands/root/diff.completion.js"]},"sys-re":{"alias":"system-runtime-environments"},"system-runtime-environment":{"alias":"system-runtime-environments"}},"download":{"audit":{}},"generate":{"image-pull-secret":{}},"get":{"__optionHandlers":["../commands/root/get.completion.js"],"agents":{"__optionHandlers":["../commands/root/get.completion.js"]},"agent":{"alias":"agents"},"annotation":{"__optionHandlers":["../commands/root/get.completion.js"]},"boards":{"__optionHandlers":["../commands/root/get.completion.js"]},"board":{"alias":"boards"},"clusters":{"__optionHandlers":["../commands/root/get.completion.js"]},"cluster":{"alias":"clusters"},"compositions":{"__optionHandlers":["../commands/root/get.completion.js"]},"com":{"alias":"compositions"},"composition":{"alias":"compositions"},"environments":{"__optionHandlers":["../commands/root/get.completion.js"]},"env":{"alias":"environments"},"environment":{"alias":"environments"},"images":{"__optionHandlers":["../commands/root/get.completion.js"]},"img":{"alias":"images"},"image":{"alias":"images"},"pipelines":{"__positionalHandler":"../commands/pipeline/get.completion.js","__optionHandlers":["../commands/root/get.completion.js"]},"pip":{"alias":"pipelines"},"pipeline":{"alias":"pipelines"},"projects":{"__optionHandlers":["../commands/root/get.completion.js"]},"project":{"alias":"projects"},"repository":{"__optionHandlers":["../commands/root/get.completion.js"]},"repo":{"alias":"repository"},"runtime-environments":{"__optionHandlers":["../commands/root/get.completion.js"]},"re":{"alias":"runtime-environments"},"runtime-environment":{"alias":"runtime-environments"},"sections":{"__optionHandlers":["../commands/root/get.completion.js"]},"section":{"alias":"sections"},"step-types":{"__positionalHandler":"../commands/step/get.completion.js","__optionHandlers":["../commands/root/get.completion.js"]},"step-type":{"alias":"step-types"},"system-runtime-environments":{"__optionHandlers":["../commands/root/get.completion.js"]},"sys-re":{"alias":"system-runtime-environments"},"system-runtime-environment":{"alias":"system-runtime-environments"},"teams":{"__optionHandlers":["../commands/root/get.completion.js"]},"team":{"alias":"teams"},"tm":{"alias":"teams"},"tokens":{"__optionHandlers":["../commands/root/get.completion.js"]},"token":{"alias":"tokens"},"helm-repo":{"__optionHandlers":["../commands/root/get.completion.js"]},"registry":{"__optionHandlers":["../commands/root/get.completion.js"]},"triggers":{"__optionHandlers":["../commands/root/get.completion.js"]},"trigger":{"alias":"triggers"},"t":{"alias":"triggers"},"trigger-events":{"__optionHandlers":["../commands/root/get.completion.js"]},"trigger-event":{"alias":"trigger-events"},"te":{"alias":"trigger-events"},"trigger-types":{"__optionHandlers":["../commands/root/get.completion.js"]},"trigger-type":{"alias":"trigger-types"},"tt":{"alias":"trigger-types"},"builds":{"__optionHandlers":["../commands/root/get.completion.js"]},"build":{"alias":"builds"},"workflow-data-item":{"__optionHandlers":["../commands/root/get.completion.js"]},"wdi":{"alias":"workflow-data-item"},"contexts":{"__optionHandlers":["../commands/root/get.completion.js"]},"ctx":{"alias":"contexts"},"context":{"alias":"contexts"}},"install":{"runtime":{},"agent":{},"app-proxy":{},"monitor":{},"gitops":{}},"replace":{"__optionHandlers":["../commands/root/replace.completion.js"],"composition":{"__optionHandlers":["../commands/composition/replace.completion.js","../commands/root/replace.completion.js"]},"com":{"alias":"composition"}},"runner":{"delete":{},"execute-test-pipeline":{},"info":{},"init":{},"upgrade":{}},"synchronize":{"teams":{},"team":{"alias":"teams"},"tm":{"alias":"teams"}},"uninstall":{"agent":{},"app-proxy":{},"runtime":{},"monitor":{},"gitops":{}},"upgrade":{"app-proxy":{},"gitops":{}},"validate":{"__positionalHandler":"../commands/root/validate.completion.js"},"version":{},"cli-config":{"get":{},"help":{},"profile":{},"set":{}},"set-helm-config":{},"install-chart":{},"helm-promotion":{},"delete-release":{},"rollback-release":{},"test-release":{},"approve":{},"deny":{},"logs":{},"restart":{},"terminate":{},"wait":{}}}
|
|
@@ -13,6 +13,7 @@ const DEFAULTS = {
|
|
|
13
13
|
MAX_CONSECUTIVE_ERRORS_LIMIT: 10,
|
|
14
14
|
CODEFRESH_PATH: path.resolve(homedir(), '.Codefresh'),
|
|
15
15
|
ENGINE_IMAGE: process.env.ENGINE_IMAGE || 'codefresh/engine:master',
|
|
16
|
+
MIN_API_VERSION_FOR_ENCRYPTED_VARS_SUPPORT_IN_RUN_CMD: '21.221.14',
|
|
16
17
|
};
|
|
17
18
|
|
|
18
19
|
module.exports = DEFAULTS;
|
|
@@ -1,15 +1,43 @@
|
|
|
1
|
+
const debug = require('debug')('codefresh:cli:helpers:general');
|
|
1
2
|
const Promise = require('bluebird');
|
|
2
3
|
const _ = require('lodash');
|
|
3
4
|
const fs = require('fs');
|
|
4
5
|
const yaml = require('js-yaml');
|
|
5
6
|
const CFError = require('cf-errors');
|
|
6
7
|
const path = require('path');
|
|
8
|
+
const semver = require('semver');
|
|
9
|
+
const request = require('requestretry');
|
|
7
10
|
const defaults = require('../defaults');
|
|
8
11
|
const Output = require('../../../output/Output');
|
|
9
12
|
const { sdk } = require('../../../logic');
|
|
10
13
|
|
|
11
14
|
const isDebug = () => (process.env.DEBUG || '').includes(defaults.DEBUG_PATTERN);
|
|
12
15
|
|
|
16
|
+
async function getApiVersion(token, url) {
|
|
17
|
+
const RequestOptions = {
|
|
18
|
+
url: `${url}/api/user`,
|
|
19
|
+
headers: {
|
|
20
|
+
Authorization: token,
|
|
21
|
+
},
|
|
22
|
+
json: true,
|
|
23
|
+
maxAttempts: 3, // Retry up to 3 times
|
|
24
|
+
timeout: 10000,
|
|
25
|
+
};
|
|
26
|
+
try {
|
|
27
|
+
const res = await request(RequestOptions);
|
|
28
|
+
return _.get(res, 'headers.api_version');
|
|
29
|
+
} catch (error) {
|
|
30
|
+
debug('Failed to get API version:', error);
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async function isCompatibleApiVersion({ supportedVersion }) {
|
|
36
|
+
const token = _.get(sdk, 'config.context.token');
|
|
37
|
+
const url = _.get(sdk, 'config.context.url', defaults.URL);
|
|
38
|
+
const apiVersion = token ? await getApiVersion(token, url) : null;
|
|
39
|
+
return apiVersion && semver.gte(apiVersion, supportedVersion);
|
|
40
|
+
}
|
|
13
41
|
|
|
14
42
|
const wrapHandler = (handler, requiresAuthentication) => {
|
|
15
43
|
return async (argv) => {
|
|
@@ -273,4 +301,5 @@ module.exports = {
|
|
|
273
301
|
addProxyVariables,
|
|
274
302
|
markEncryptedFlagOnRequestedVariables,
|
|
275
303
|
prepareKeyValueObjectsFromEnvFileOption,
|
|
304
|
+
isCompatibleApiVersion,
|
|
276
305
|
};
|