codefresh 0.84.0 → 0.84.2

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/Dockerfile CHANGED
@@ -11,7 +11,7 @@ RUN pip install yq==${YQ_VERSION}
11
11
  RUN pyinstaller --noconfirm --onefile --log-level DEBUG --clean --distpath /tmp/ $(which yq)
12
12
 
13
13
  # Main
14
- FROM node:18.14.1-alpine3.17
14
+ FROM node:18.16.0-alpine3.17
15
15
 
16
16
  RUN apk --update add --no-cache ca-certificates git curl bash jq
17
17
 
package/Dockerfile-debian CHANGED
@@ -11,7 +11,7 @@ RUN pip install yq==${YQ_VERSION}
11
11
  RUN pyinstaller --noconfirm --onefile --log-level DEBUG --clean --distpath /tmp/ $(which yq)
12
12
 
13
13
  # Main
14
- FROM node:18.14.1-bullseye-slim
14
+ FROM node:18.16.0-bullseye-slim
15
15
 
16
16
  RUN apt update
17
17
  RUN apt -y install ca-certificates git curl bash jq busybox && ln -s /bin/busybox /usr/bin/[[
@@ -11,7 +11,7 @@ RUN pip install yq==${YQ_VERSION}
11
11
  RUN pyinstaller --noconfirm --onefile --log-level DEBUG --clean --distpath /tmp/ $(which yq)
12
12
 
13
13
  # Main
14
- FROM node:18.14.1-bullseye-slim
14
+ FROM node:18.16.0-bullseye-slim
15
15
 
16
16
  RUN apt update
17
17
  RUN apt -y install ca-certificates git curl bash jq busybox && ln -s /bin/busybox /usr/bin/[[
@@ -11,7 +11,7 @@ RUN pip install yq==${YQ_VERSION}
11
11
  RUN pyinstaller --noconfirm --onefile --log-level DEBUG --clean --distpath /tmp/ $(which yq)
12
12
 
13
13
  # Main
14
- FROM node:18.14.1-alpine3.17
14
+ FROM node:18.16.0-alpine3.17
15
15
 
16
16
  RUN apk --update add --no-cache ca-certificates git curl bash jq
17
17
 
@@ -15,44 +15,22 @@ The pipeline will be triggered multiple times according to the array length.
15
15
 
16
16
  #### Variable yaml file with 2 sets of variables
17
17
  ```yaml
18
- - VARIABLE_A: value_a_for_the_first_build
19
- VARIABLE_B: value_b_for_the_first_build
20
- - VARIABLE_A: value_a_for_the_first_build
21
- VARIABLE_B: value_b_for_the_first_build
18
+ - key: value
19
+ key2: key1
20
+ - key: value
21
+ key2: key2
22
22
  ```
23
23
 
24
24
  #### Variable json file with 2 sets of variables
25
25
  ```json
26
26
  [
27
27
  {
28
- "VARIABLE_A": "value_a_for_the_first_build",
29
- "VARIABLE_B": "value_b_for_the_first_build"
28
+ "key": "value",
29
+ "key2": "key1"
30
30
  },
31
31
  {
32
- "VARIABLE_A": "value_a_for_the_first_build",
33
- "VARIABLE_B": "value_b_for_the_first_build"
34
- }
35
- ]
36
- ```
37
- ### Use encrypted variables in Codefresh build runs
38
- #### Variable yaml file with single variable set with encrypted variables
39
- ```yaml
40
- - key:
41
- val: value
42
- encrypted: true
43
- key2: val2
44
-
45
- ```
46
-
47
- #### Variable json file single variable set with encrypted variables
48
- ```json
49
- [
50
- {
51
- "key": {
52
- "val": "value",
53
- "encrypted": true
54
- },
55
- "key2": "key1"
32
+ "key": "value",
33
+ "key2": "key2"
56
34
  }
57
35
  ]
58
36
  ```
@@ -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 workflow 643d807b85bbe35931ae2282 ENV=prod tests_passed=true --display ENV', 'Annotate entity with multiple labels and display selection'),
34
+ .example('codefresh create annotation image 2dfacdaad466 coverage=75% tests_passed=true --display coverage', '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,3 @@
1
- const yaml = require('js-yaml');
2
- const request = require('requestretry');
3
- const fs = require('fs');
4
1
  const DEFAULTS = require('../../defaults');
5
2
  const getCmd = require('./get.cmd').toCommand();
6
3
  const deleteCmd = require('./delete.cmd').toCommand();
@@ -13,21 +10,18 @@ jest.mock('../../helpers/validation'); // eslint-disable-line
13
10
  jest.mock('../../../../../check-version');
14
11
  jest.mock('../../completion/helpers', () => { // eslint-disable-line
15
12
  return {
16
- authContextWrapper: (func) => func,
13
+ authContextWrapper: func => func,
17
14
  };
18
15
  });
19
16
 
20
- jest.mock('../../helpers/general', () => ({
21
- ...jest.requireActual('../../helpers/general'),
22
- isCompatibleApiVersion: () => true,
23
- }));
24
-
25
17
  jest.mock('../../../../logic/entities/Pipeline', () => { // eslint-disable-line
26
18
  return {
27
- fromResponse: (res) => res,
19
+ fromResponse: res => res,
28
20
  };
29
21
  });
30
22
 
23
+ const request = require('requestretry');
24
+
31
25
  const DEFAULT_RESPONSE = request.__defaultResponse();
32
26
 
33
27
  describe('pipeline', () => {
@@ -63,11 +57,11 @@ describe('pipeline', () => {
63
57
  });
64
58
 
65
59
  it('should return default limit', async () => {
66
- expect(_getLimit(undefined, false)).toEqual(DEFAULTS.GET_LIMIT_RESULTS);
60
+ expect(_getLimit(undefined,false)).toEqual(DEFAULTS.GET_LIMIT_RESULTS);
67
61
  });
68
62
 
69
63
  it('should return `unlimited` value', async () => {
70
- expect(_getLimit(undefined, true)).toEqual(DEFAULTS.GET_ALL_PIPELINES_LIMIT);
64
+ expect(_getLimit(undefined,true)).toEqual(DEFAULTS.GET_ALL_PIPELINES_LIMIT);
71
65
  });
72
66
  });
73
67
 
@@ -90,69 +84,6 @@ describe('pipeline', () => {
90
84
  });
91
85
  });
92
86
 
93
- describe('run', () => {
94
- it('should handle running pipeline with encrypted variables', async () => {
95
- const argv = { name: 'some name',
96
- detach: true,
97
- annotation: [],
98
- variable: [
99
- 'secret=secret',
100
- 'VAR1=VAL1',
101
- ],
102
- encrypted: ['secret'],
103
- };
104
- const pip = new CfPipeline(argv);
105
- await pip.run();
106
- expect(pip.executionRequests[0].options.variables).toEqual([
107
- {
108
- key: 'secret',
109
- value: 'secret',
110
- encrypted: true,
111
- },
112
- {
113
- key: 'VAR1',
114
- value: 'VAL1',
115
- },
116
- ]);
117
- await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
118
- });
119
-
120
- it('should handle running pipeline with encrypted variables passing inside json file', async () => {
121
- const rawFile = fs.readFileSync('lib/interface/cli/commands/pipeline/test-files/var.json', 'utf8');
122
-
123
- const argv = { name: 'some name',
124
- detach: true,
125
- annotation: [],
126
- 'var-file': JSON.parse(rawFile),
127
- };
128
- const pip = new CfPipeline(argv);
129
- await pip.run();
130
- expect(pip.executionRequests[0].options.variables).toEqual(
131
- [{ key: 'help6', value: '85858' },
132
- { key: 'should_be_encrepted', value: '0000' },
133
- { encrypted: true, key: 'help7', value: 'test' }],
134
- );
135
- await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
136
- });
137
-
138
- it('should handle running pipeline with encrypted variables passing inside yaml file', async () => {
139
- const rawFile = fs.readFileSync('lib/interface/cli/commands/pipeline//test-files/var.yml', 'utf8');
140
-
141
- const argv = { name: 'some name',
142
- detach: true,
143
- annotation: [],
144
- 'var-file': yaml.safeLoad(rawFile),
145
- };
146
- const pip = new CfPipeline(argv);
147
- await pip.run();
148
- expect(pip.executionRequests[0].options.variables).toEqual(
149
- [{ key: 'VAR1', value: 'VAL1' },
150
- { encrypted: true, key: 'VAR2', value: 'VAL2' }],
151
- );
152
- await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
153
- });
154
- });
155
-
156
87
  describe('runImpl', () => {
157
88
  it('should handle running pipeline', async () => {
158
89
  const argv = { name: 'some name', detach: true };
@@ -1,16 +1,10 @@
1
1
  const _ = require('lodash');
2
2
  const Promise = require('bluebird');
3
- const CFError = require('cf-errors');
4
- const { prepareKeyValueFromCLIEnvOption,
5
- markEncryptedFlagOnRequestedVariables,
6
- prepareKeyValueObjectsFromEnvFileOption,
7
- prepareKeyValueObjectsFromCLIEnvOption,
8
- isCompatibleApiVersion,
9
- } = require('../../helpers/general');
3
+ const { prepareKeyValueFromCLIEnvOption } = require('../../helpers/general');
10
4
  const { validatePipelineYaml } = require('../../helpers/validation');
11
5
  const { printResult } = require('../root/validate.cmd');
6
+ const CFError = require('cf-errors');
12
7
  const { sdk } = require('../../../../logic');
13
- const defaults = require('../../defaults');
14
8
 
15
9
  class RunBaseCommand {
16
10
  constructor(argv) {
@@ -61,34 +55,22 @@ class RunBaseCommand {
61
55
  packName,
62
56
  },
63
57
  };
64
- const encryptedVarsSupported = await isCompatibleApiVersion({
65
- supportedVersion: defaults.MIN_API_VERSION_FOR_ENCRYPTED_VARS_SUPPORT_IN_RUN_CMD,
66
- });
58
+
67
59
  if (variablesFromFile) {
68
60
  _.forEach(variablesFromFile, (variables) => {
69
61
  const request = _.cloneDeep(executionRequestTemplate);
70
- if (encryptedVarsSupported) {
71
- request.options.variables = prepareKeyValueObjectsFromEnvFileOption(variables);
72
- } else {
73
- request.options.variables = variables;
74
- }
62
+ request.options.variables = variables;
75
63
  this.executionRequests.push(request);
76
64
  });
77
65
  } else {
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
- }
66
+ const variables = prepareKeyValueFromCLIEnvOption(this.argv.variable);
85
67
  const request = _.cloneDeep(executionRequestTemplate);
86
68
  request.options.variables = variables;
87
69
  request.options.contexts = contexts;
88
70
  this.executionRequests.push(request);
89
71
  }
90
72
 
91
- const results = await Promise.all(this.executionRequests.map((request) => this.runImpl(request)));
73
+ const results = await Promise.all(this.executionRequests.map(request => this.runImpl(request)));
92
74
  const findMaxReducer = (accumulator, currentValue) => (currentValue > accumulator ? currentValue : accumulator);
93
75
  const exitCode = results.reduce(findMaxReducer);
94
76
  await this.postRunRequest();
@@ -1,9 +1,8 @@
1
1
  const debug = require('debug')('codefresh:cli:run:pipeline');
2
2
  const Command = require('../../Command');
3
- const { crudFilenameOption, isCompatibleApiVersion } = require('../../helpers/general');
3
+ const { crudFilenameOption } = require('../../helpers/general');
4
4
  const RunLocalCommand = require('./run.local');
5
5
  const RunExternalCommand = require('./run.cf');
6
- const defaults = require('../../defaults');
7
6
 
8
7
  function getCommandFlavor(argv) {
9
8
  if (argv.local) {
@@ -87,22 +86,6 @@ const run = new Command({
87
86
  default: [],
88
87
  alias: 'v',
89
88
  })
90
- .option('encrypted', {
91
- array: true,
92
- alias: 'e',
93
- describe: 'Variable names to encrypt',
94
- default: [],
95
- })
96
- .check(async (argv) => {
97
- const encryptedVarsSupported = await isCompatibleApiVersion({
98
- supportedVersion: defaults.MIN_API_VERSION_FOR_ENCRYPTED_VARS_SUPPORT_IN_RUN_CMD,
99
- });
100
- if (!encryptedVarsSupported && argv.encrypted.length > 0) {
101
- throw new Error('The "encrypted" option is only supported in API versions '
102
- + `equal to or greater than ${defaults.MIN_API_VERSION_FOR_ENCRYPTED_VARS_SUPPORT_IN_RUN_CMD}.`);
103
- }
104
- return true;
105
- })
106
89
  .option('detach', {
107
90
  alias: 'd',
108
91
  describe: 'Run pipeline and print build ID',
@@ -143,7 +126,6 @@ const run = new Command({
143
126
  .example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master', 'Defining the source control context using a branch')
144
127
  .example('codefresh run PIPELINE_ID | PIPELINE_NAME -s=52b992e783d2f84dd0123c70ac8623b4f0f938d1', 'Defining the source control context using a commit')
145
128
  .example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master -v key1=value1 -v key2=value2', 'Setting variables through the command')
146
- .example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master -v key1=value1 -v key2=value2 -e key1', 'Setting variables through the command with encrypted option')
147
129
  .example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master --var-file ./var_file.yml', 'Settings variables through a yml file')
148
130
  .example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master --context context', 'Inject contexts to the pipeline execution')
149
131
  .example('codefresh run PIPELINE_ID | PIPELINE_NAME --skip step1 step2 step3', 'Skip specific steps');
@@ -4,7 +4,7 @@ const _ = require('lodash');
4
4
  const { sdk } = require('../../../../logic');
5
5
 
6
6
  const applyRoot = require('../root/apply.cmd');
7
- const { prepareKeyValueObjectsFromCLIEnvOption, ignoreHttpError, markEncryptedFlagOnRequestedVariables } = require('../../helpers/general');
7
+ const { prepareKeyValueObjectsFromCLIEnvOption, ignoreHttpError } = require('../../helpers/general');
8
8
 
9
9
  const command = new Command({
10
10
  command: 'project [id|name]',
@@ -61,7 +61,14 @@ const command = new Command({
61
61
  encrypted,
62
62
  } = argv;
63
63
 
64
- const requestedProjectVariables = markEncryptedFlagOnRequestedVariables(variables, encrypted);
64
+ const variableMap = _.reduce(variables, (acc, v) => _.assign(acc, { [v.key]: v }), {});
65
+ _.forEach(encrypted, (varName) => {
66
+ const variable = variableMap[varName];
67
+ if (!variable) {
68
+ throw new CFError(`Variable is not provided: "${varName}"`);
69
+ }
70
+ variable.encrypted = true;
71
+ });
65
72
 
66
73
  let project = await sdk.projects.get({ id }).catch(ignoreHttpError);
67
74
  project = project || await sdk.projects.getByName({ name }).catch(ignoreHttpError);
@@ -74,7 +81,7 @@ const command = new Command({
74
81
  const updatePayload = _.pickBy({
75
82
  projectName,
76
83
  tags: tags || existingTags,
77
- variables: requestedProjectVariables || existingVariables,
84
+ variables: variables || existingVariables,
78
85
  }, _.identity);
79
86
 
80
87
  await sdk.projects.patch({ id: project.id }, updatePayload);
@@ -1,8 +1,10 @@
1
1
  const Command = require('../../Command');
2
+ const CFError = require('cf-errors');
3
+ const _ = require('lodash');
2
4
  const { sdk } = require('../../../../logic');
3
5
  const createRoot = require('../root/create.cmd');
4
6
  const { checkOrProjectExists } = require('../../helpers/validation');
5
- const { prepareKeyValueObjectsFromCLIEnvOption, markEncryptedFlagOnRequestedVariables } = require('../../helpers/general');
7
+ const { prepareKeyValueObjectsFromCLIEnvOption } = require('../../helpers/general');
6
8
 
7
9
  const command = new Command({
8
10
  command: 'project <name>',
@@ -50,10 +52,17 @@ const command = new Command({
50
52
  encrypted,
51
53
  } = argv;
52
54
 
53
- const requestedProjectVariables = markEncryptedFlagOnRequestedVariables(variables, encrypted);
55
+ const variableMap = _.reduce(variables, (acc, v) => _.assign(acc, { [v.key]: v }), {});
56
+ _.forEach(encrypted, (varName) => {
57
+ const variable = variableMap[varName];
58
+ if (!variable) {
59
+ throw new CFError(`Variable is not provided: "${varName}"`);
60
+ }
61
+ variable.encrypted = true;
62
+ });
54
63
 
55
64
  await checkOrProjectExists(projectName);
56
- await sdk.projects.create({ projectName, tags, variables: requestedProjectVariables });
65
+ await sdk.projects.create({ projectName, tags, variables });
57
66
  console.log(`Project: "${projectName}" created`);
58
67
  },
59
68
  });
@@ -1 +1 @@
1
- {"codefresh":{"analyze":{},"completion":{},"completions":{"alias":"completion"},"tag":{},"untag":{},"offline-logs":{"ensure-index":{},"offload-to-collection":{},"offload-to-file":{}},"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"},"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"]},"pipeline":{"__optionHandlers":["../commands/root/delete.completion.js"]},"pip":{"alias":"pipeline"},"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"},"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"]},"pipelines":{"__positionalHandler":"../commands/pipeline/get.completion.js","__optionHandlers":["../commands/root/get.completion.js"]},"pip":{"alias":"pipelines"},"pipeline":{"alias":"pipelines"},"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":{},"run":{"__optionHandlers":["../commands/pipeline/run.completion.js"]},"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"]},"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":{}}}
@@ -13,7 +13,6 @@ 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',
17
16
  };
18
17
 
19
18
  module.exports = DEFAULTS;
@@ -1,43 +1,15 @@
1
- const debug = require('debug')('codefresh:cli:helpers:general');
2
1
  const Promise = require('bluebird');
3
2
  const _ = require('lodash');
4
3
  const fs = require('fs');
5
4
  const yaml = require('js-yaml');
5
+ const defaults = require('../defaults');
6
6
  const CFError = require('cf-errors');
7
7
  const path = require('path');
8
- const semver = require('semver');
9
- const request = require('requestretry');
10
- const defaults = require('../defaults');
11
8
  const Output = require('../../../output/Output');
12
9
  const { sdk } = require('../../../logic');
13
10
 
14
11
  const isDebug = () => (process.env.DEBUG || '').includes(defaults.DEBUG_PATTERN);
15
12
 
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
- }
41
13
 
42
14
  const wrapHandler = (handler, requiresAuthentication) => {
43
15
  return async (argv) => {
@@ -134,39 +106,6 @@ const prepareKeyValueObjectsFromCLIEnvOption = (environmentVariables) => {
134
106
  return variables;
135
107
  };
136
108
 
137
- /**
138
- * will return an array of objects { key, value, encrypted } from parsing an array of objects: key=value ,key: {value: "value", encrypted: true }
139
- * @param environmentVariables
140
- * @returns Array of { key, value, encrypted }
141
- */
142
- const prepareKeyValueObjectsFromEnvFileOption = (environmentVariables) => _.map(environmentVariables, (value, key) => {
143
- if (_.isObject(value)) {
144
- const { value: val, encrypted } = value;
145
- return { key, value: val, encrypted };
146
- }
147
- return { key, value };
148
- });
149
-
150
- /**
151
- * The function takes in a list of requested variables and an array of encrypted variable names,
152
- * and sets the encrypted flag to true on each corresponding variable object in the list.
153
- * @param environmentVariables
154
- * @param encrypted
155
- * @returns Array of { key, value, encrypted }
156
- */
157
- const markEncryptedFlagOnRequestedVariables = (requestedVariables, encrypted) => {
158
- const variables = _.cloneDeep(requestedVariables);
159
- const variableMap = _.reduce(variables, (acc, v) => _.assign(acc, { [v.key]: v }), {});
160
- _.forEach(encrypted, (varName) => {
161
- const variable = variableMap[varName];
162
- if (!variable) {
163
- throw new CFError(`Variable is not provided: "${varName}"`);
164
- }
165
- variable.encrypted = true;
166
- });
167
- return variables;
168
- };
169
-
170
109
  const crudFilenameOption = (yargs, options = {}) => {
171
110
  const filenameOption = {
172
111
  alias: options.alias || 'f',
@@ -183,19 +122,13 @@ const crudFilenameOption = (yargs, options = {}) => {
183
122
  .coerce(options.name || 'filename', (arg) => {
184
123
  try {
185
124
  const rawFile = fs.readFileSync(path.resolve(process.cwd(), arg), 'utf8');
186
- let content;
187
125
  if (arg.endsWith('.json')) {
188
- content = options.raw ? rawFile : JSON.parse(rawFile);
189
- } else if (arg.endsWith('.yml') || arg.endsWith('yaml')) {
190
- content = options.raw ? rawFile : yaml.safeLoad(rawFile);
191
- } else {
192
- throw new CFError('File extension is not recognized');
126
+ return options.raw ? rawFile : JSON.parse(rawFile);
193
127
  }
194
- if (options.raw || _.isObject(content)) {
195
- return content;
128
+ if (arg.endsWith('.yml') || arg.endsWith('yaml')) {
129
+ return options.raw ? rawFile : yaml.safeLoad(rawFile);
196
130
  }
197
- throw new CFError('Not a valid file.\n'
198
- + 'For more information how to pass a valid file, go to https://codefresh-io.github.io/cli/pipelines/run-pipeline/');
131
+ throw new CFError('File extension is not recognized');
199
132
  } catch (err) {
200
133
  const error = new CFError({
201
134
  message: 'Failed to read file',
@@ -228,15 +161,15 @@ const selectColumnsOption = (yargs, options = {}) => {
228
161
  };
229
162
 
230
163
  function pathExists(p) {
231
- return new Promise((resolve) => fs.access(p, resolve))
232
- .then((err) => !err);
164
+ return new Promise(resolve => fs.access(p, resolve))
165
+ .then(err => !err);
233
166
  }
234
167
 
235
168
  const readFile = Promise.promisify(fs.readFile);
236
169
 
237
170
  function watchFile(filename, listener) {
238
171
  fs.watchFile(filename, { interval: 500 }, listener);
239
- const unwatcher = (f) => () => fs.unwatchFile(f);
172
+ const unwatcher = f => () => fs.unwatchFile(f);
240
173
  ['exit', 'SIGINT', 'SIGUSR1', 'SIGUSR2', 'uncaughtException', 'SIGTERM'].forEach((eventType) => {
241
174
  process.on(eventType, unwatcher(filename));
242
175
  });
@@ -244,7 +177,7 @@ function watchFile(filename, listener) {
244
177
 
245
178
  function ignoreHttpError(e) {
246
179
  if (!e.statusCode) {
247
- throw e;
180
+ throw e
248
181
  }
249
182
  return undefined;
250
183
  }
@@ -299,7 +232,4 @@ module.exports = {
299
232
  detectProxy,
300
233
  keyValueArrayToObject,
301
234
  addProxyVariables,
302
- markEncryptedFlagOnRequestedVariables,
303
- prepareKeyValueObjectsFromEnvFileOption,
304
- isCompatibleApiVersion,
305
235
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codefresh",
3
- "version": "0.84.0",
3
+ "version": "0.84.2",
4
4
  "description": "Codefresh command line utility",
5
5
  "main": "index.js",
6
6
  "preferGlobal": true,
package/yarn.lock CHANGED
@@ -2763,9 +2763,9 @@ html-encoding-sniffer@^1.0.2:
2763
2763
  whatwg-encoding "^1.0.1"
2764
2764
 
2765
2765
  http-cache-semantics@^4.0.0:
2766
- version "4.1.0"
2767
- resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
2768
- integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
2766
+ version "4.1.1"
2767
+ resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
2768
+ integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
2769
2769
 
2770
2770
  "http-parser-js@>=0.4.0 <0.4.11":
2771
2771
  version "0.4.10"
@@ -3700,9 +3700,9 @@ jest@^23.6.0:
3700
3700
  jest-cli "^23.6.0"
3701
3701
 
3702
3702
  jose@^1.25.2:
3703
- version "1.27.0"
3704
- resolved "https://registry.yarnpkg.com/jose/-/jose-1.27.0.tgz#2b2b70978efdeeb0a0804e930a07992aede1ab91"
3705
- integrity sha512-SxYPCM9pWDaK070CXbxgL4ktVzLlE0yJxevDJtbWxv2WMQwYfpBZLYlG8PhChsiOfOXp6FrceRgTuZh1vZeDlg==
3703
+ version "1.28.2"
3704
+ resolved "https://registry.yarnpkg.com/jose/-/jose-1.28.2.tgz#97f4aa608d0020ae5c1051a2a33247b957401e5a"
3705
+ integrity sha512-wWy51U2MXxYi3g8zk2lsQ8M6O1lartpkxuq1TYexzPKYLgHLZkCjklaATP36I5BUoWjF2sInB9U1Qf18fBZxNA==
3706
3706
  dependencies:
3707
3707
  "@panva/asn1.js" "^1.0.0"
3708
3708
 
@@ -4247,14 +4247,7 @@ mimic-response@^2.0.0:
4247
4247
  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
4248
4248
  integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
4249
4249
 
4250
- minimatch@^3.0.3, minimatch@^3.0.4:
4251
- version "3.0.4"
4252
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
4253
- integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
4254
- dependencies:
4255
- brace-expansion "^1.1.7"
4256
-
4257
- minimatch@^3.0.5:
4250
+ minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5:
4258
4251
  version "3.1.2"
4259
4252
  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
4260
4253
  integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -4830,12 +4823,7 @@ path-key@^3.1.0:
4830
4823
  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
4831
4824
  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
4832
4825
 
4833
- path-parse@^1.0.5, path-parse@^1.0.6:
4834
- version "1.0.6"
4835
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
4836
- integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
4837
-
4838
- path-parse@^1.0.7:
4826
+ path-parse@^1.0.5, path-parse@^1.0.6, path-parse@^1.0.7:
4839
4827
  version "1.0.7"
4840
4828
  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
4841
4829
  integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
@@ -6326,9 +6314,9 @@ unbzip2-stream@^1.0.9:
6326
6314
  through "^2.3.8"
6327
6315
 
6328
6316
  underscore@^1.9.1:
6329
- version "1.10.2"
6330
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf"
6331
- integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==
6317
+ version "1.13.6"
6318
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441"
6319
+ integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==
6332
6320
 
6333
6321
  union-value@^1.0.0:
6334
6322
  version "1.0.1"
@@ -6639,16 +6627,16 @@ ws@^5.2.0:
6639
6627
  async-limiter "~1.0.0"
6640
6628
 
6641
6629
  ws@^6.1.0:
6642
- version "6.2.1"
6643
- resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
6644
- integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
6630
+ version "6.2.2"
6631
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
6632
+ integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
6645
6633
  dependencies:
6646
6634
  async-limiter "~1.0.0"
6647
6635
 
6648
6636
  ws@^7.2.3:
6649
- version "7.3.0"
6650
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd"
6651
- integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==
6637
+ version "7.5.9"
6638
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
6639
+ integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
6652
6640
 
6653
6641
  xml-name-validator@^3.0.0:
6654
6642
  version "3.0.0"
@@ -1,12 +0,0 @@
1
- {
2
- "build1": {
3
- "help6": "85858",
4
- "should_be_encrepted": "0000",
5
- "help7": {
6
- "value": "test",
7
- "encrypted": true
8
- }
9
- }
10
- }
11
-
12
-
@@ -1,5 +0,0 @@
1
- build1:
2
- VAR1: 'VAL1'
3
- VAR2:
4
- value: VAL2
5
- encrypted: true