codefresh 0.82.8 → 0.82.9
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/docs/content/pipelines/Run Pipeline.md +8 -30
- package/lib/interface/cli/commands/pipeline/pipeline.sdk.spec.js +6 -76
- package/lib/interface/cli/commands/pipeline/run.base.js +5 -7
- package/lib/interface/cli/commands/pipeline/run.cmd.js +2 -9
- package/lib/interface/cli/commands/project/apply.cmd.js +10 -3
- package/lib/interface/cli/commands/project/create.cmd.js +12 -3
- package/lib/interface/cli/completion/tree.json +1 -1
- package/lib/interface/cli/helpers/general.js +9 -50
- package/package.json +1 -1
- package/lib/interface/cli/commands/pipeline/var.json +0 -12
- package/lib/interface/cli/commands/pipeline/var.yml +0 -5
|
@@ -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
|
-
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
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
|
-
"
|
|
29
|
-
"
|
|
28
|
+
"key": "value",
|
|
29
|
+
"key2": "key1"
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
```
|
|
37
|
-
### Use encrypted variables in Codefresh build runs; supported from CLI version: 0.82.8
|
|
38
|
-
#### Variable yaml file with single variable set with encrypted variables
|
|
39
|
-
```yaml
|
|
40
|
-
- key:
|
|
41
|
-
val: value
|
|
42
|
-
encrypted: true
|
|
43
|
-
key2: key1
|
|
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
|
```
|
|
@@ -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,16 +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:
|
|
13
|
+
authContextWrapper: func => func,
|
|
17
14
|
};
|
|
18
15
|
});
|
|
19
16
|
|
|
20
17
|
jest.mock('../../../../logic/entities/Pipeline', () => { // eslint-disable-line
|
|
21
18
|
return {
|
|
22
|
-
fromResponse:
|
|
19
|
+
fromResponse: res => res,
|
|
23
20
|
};
|
|
24
21
|
});
|
|
25
22
|
|
|
23
|
+
const request = require('requestretry');
|
|
24
|
+
|
|
26
25
|
const DEFAULT_RESPONSE = request.__defaultResponse();
|
|
27
26
|
|
|
28
27
|
describe('pipeline', () => {
|
|
@@ -58,11 +57,11 @@ describe('pipeline', () => {
|
|
|
58
57
|
});
|
|
59
58
|
|
|
60
59
|
it('should return default limit', async () => {
|
|
61
|
-
expect(_getLimit(undefined,
|
|
60
|
+
expect(_getLimit(undefined,false)).toEqual(DEFAULTS.GET_LIMIT_RESULTS);
|
|
62
61
|
});
|
|
63
62
|
|
|
64
63
|
it('should return `unlimited` value', async () => {
|
|
65
|
-
expect(_getLimit(undefined,
|
|
64
|
+
expect(_getLimit(undefined,true)).toEqual(DEFAULTS.GET_ALL_PIPELINES_LIMIT);
|
|
66
65
|
});
|
|
67
66
|
});
|
|
68
67
|
|
|
@@ -85,75 +84,6 @@ describe('pipeline', () => {
|
|
|
85
84
|
});
|
|
86
85
|
});
|
|
87
86
|
|
|
88
|
-
describe('run', () => {
|
|
89
|
-
it('should handle running pipeline with encrypted variables', async () => {
|
|
90
|
-
const argv = { name: 'some name',
|
|
91
|
-
detach: true,
|
|
92
|
-
annotation: [],
|
|
93
|
-
variable:
|
|
94
|
-
[{
|
|
95
|
-
key: 'secret',
|
|
96
|
-
value: 'secret',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
key: 'VAR1',
|
|
100
|
-
value: 'VAL1',
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
|
-
encrypted: ['secret'],
|
|
104
|
-
};
|
|
105
|
-
const pip = new CfPipeline(argv);
|
|
106
|
-
await pip.run();
|
|
107
|
-
expect(pip.executionRequests[0].options.variables).toEqual([
|
|
108
|
-
{
|
|
109
|
-
key: 'secret',
|
|
110
|
-
value: 'secret',
|
|
111
|
-
encrypted: true,
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
key: 'VAR1',
|
|
115
|
-
value: 'VAL1',
|
|
116
|
-
},
|
|
117
|
-
]);
|
|
118
|
-
await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
it('should handle running pipeline with encrypted variables passing inside json file', async () => {
|
|
122
|
-
const rawFile = fs.readFileSync('lib/interface/cli/commands/pipeline/var.json', 'utf8');
|
|
123
|
-
|
|
124
|
-
const argv = { name: 'some name',
|
|
125
|
-
detach: true,
|
|
126
|
-
annotation: [],
|
|
127
|
-
'var-file': JSON.parse(rawFile),
|
|
128
|
-
};
|
|
129
|
-
const pip = new CfPipeline(argv);
|
|
130
|
-
await pip.run();
|
|
131
|
-
expect(pip.executionRequests[0].options.variables).toEqual(
|
|
132
|
-
[{ key: 'help6', value: '85858' },
|
|
133
|
-
{ key: 'should_be_encrepted', value: '0000' },
|
|
134
|
-
{ encrypted: true, key: 'help7', value: 'test' }],
|
|
135
|
-
);
|
|
136
|
-
await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
it('should handle running pipeline with encrypted variables passing inside yaml file', async () => {
|
|
140
|
-
const rawFile = fs.readFileSync('lib/interface/cli/commands/pipeline/var.yml', 'utf8');
|
|
141
|
-
|
|
142
|
-
const argv = { name: 'some name',
|
|
143
|
-
detach: true,
|
|
144
|
-
annotation: [],
|
|
145
|
-
'var-file': yaml.safeLoad(rawFile),
|
|
146
|
-
};
|
|
147
|
-
const pip = new CfPipeline(argv);
|
|
148
|
-
await pip.run();
|
|
149
|
-
expect(pip.executionRequests[0].options.variables).toEqual(
|
|
150
|
-
[{ key: 'VAR1', value: 'VAL1' },
|
|
151
|
-
{ encrypted: true, key: 'VAR2', value: 'VAL2' }],
|
|
152
|
-
);
|
|
153
|
-
await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
|
|
157
87
|
describe('runImpl', () => {
|
|
158
88
|
it('should handle running pipeline', async () => {
|
|
159
89
|
const argv = { name: 'some name', detach: true };
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
const _ = require('lodash');
|
|
2
2
|
const Promise = require('bluebird');
|
|
3
|
-
const
|
|
4
|
-
const { prepareKeyValueFromCLIEnvOption,
|
|
5
|
-
markEncryptedFlagOnRequestedVariables,
|
|
6
|
-
prepareKeyValueObjectsFromEnvFileOption } = require('../../helpers/general');
|
|
3
|
+
const { prepareKeyValueFromCLIEnvOption } = require('../../helpers/general');
|
|
7
4
|
const { validatePipelineYaml } = require('../../helpers/validation');
|
|
8
5
|
const { printResult } = require('../root/validate.cmd');
|
|
6
|
+
const CFError = require('cf-errors');
|
|
9
7
|
const { sdk } = require('../../../../logic');
|
|
10
8
|
|
|
11
9
|
class RunBaseCommand {
|
|
@@ -61,18 +59,18 @@ class RunBaseCommand {
|
|
|
61
59
|
if (variablesFromFile) {
|
|
62
60
|
_.forEach(variablesFromFile, (variables) => {
|
|
63
61
|
const request = _.cloneDeep(executionRequestTemplate);
|
|
64
|
-
request.options.variables =
|
|
62
|
+
request.options.variables = variables;
|
|
65
63
|
this.executionRequests.push(request);
|
|
66
64
|
});
|
|
67
65
|
} else {
|
|
68
|
-
const variables =
|
|
66
|
+
const variables = prepareKeyValueFromCLIEnvOption(this.argv.variable);
|
|
69
67
|
const request = _.cloneDeep(executionRequestTemplate);
|
|
70
68
|
request.options.variables = variables;
|
|
71
69
|
request.options.contexts = contexts;
|
|
72
70
|
this.executionRequests.push(request);
|
|
73
71
|
}
|
|
74
72
|
|
|
75
|
-
const results = await Promise.all(this.executionRequests.map(
|
|
73
|
+
const results = await Promise.all(this.executionRequests.map(request => this.runImpl(request)));
|
|
76
74
|
const findMaxReducer = (accumulator, currentValue) => (currentValue > accumulator ? currentValue : accumulator);
|
|
77
75
|
const exitCode = results.reduce(findMaxReducer);
|
|
78
76
|
await this.postRunRequest();
|
|
@@ -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,13 +85,6 @@ const run = new Command({
|
|
|
84
85
|
describe: 'Set build variables',
|
|
85
86
|
default: [],
|
|
86
87
|
alias: 'v',
|
|
87
|
-
coerce: prepareKeyValueObjectsFromCLIEnvOption,
|
|
88
|
-
})
|
|
89
|
-
.option('encrypted', {
|
|
90
|
-
array: true,
|
|
91
|
-
alias: 'e',
|
|
92
|
-
describe: 'Variable names to encrypt',
|
|
93
|
-
default: [],
|
|
94
88
|
})
|
|
95
89
|
.option('detach', {
|
|
96
90
|
alias: 'd',
|
|
@@ -132,7 +126,6 @@ const run = new Command({
|
|
|
132
126
|
.example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master', 'Defining the source control context using a branch')
|
|
133
127
|
.example('codefresh run PIPELINE_ID | PIPELINE_NAME -s=52b992e783d2f84dd0123c70ac8623b4f0f938d1', 'Defining the source control context using a commit')
|
|
134
128
|
.example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master -v key1=value1 -v key2=value2', 'Setting variables through the command')
|
|
135
|
-
.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')
|
|
136
129
|
.example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master --var-file ./var_file.yml', 'Settings variables through a yml file')
|
|
137
130
|
.example('codefresh run PIPELINE_ID | PIPELINE_NAME -b=master --context context', 'Inject contexts to the pipeline execution')
|
|
138
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
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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":{}},"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"]},"add":{"repository":{},"repo":{"alias":"repository"}},"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"}},"annotate":{"image":{},"img":{"alias":"image"}},"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":{},"attach":{},"cli-config":{"get":{},"help":{},"profile":{},"set":{}},"set-helm-config":{},"install-chart":{},"helm-promotion":{},"delete-release":{},"rollback-release":{},"test-release":{},"approve":{},"deny":{},"restart":{},"logs":{},"terminate":{},"wait":{}}}
|
|
@@ -2,9 +2,9 @@ const Promise = require('bluebird');
|
|
|
2
2
|
const _ = require('lodash');
|
|
3
3
|
const fs = require('fs');
|
|
4
4
|
const yaml = require('js-yaml');
|
|
5
|
+
const defaults = require('../defaults');
|
|
5
6
|
const CFError = require('cf-errors');
|
|
6
7
|
const path = require('path');
|
|
7
|
-
const defaults = require('../defaults');
|
|
8
8
|
const Output = require('../../../output/Output');
|
|
9
9
|
const { sdk } = require('../../../logic');
|
|
10
10
|
|
|
@@ -106,39 +106,6 @@ const prepareKeyValueObjectsFromCLIEnvOption = (environmentVariables) => {
|
|
|
106
106
|
return variables;
|
|
107
107
|
};
|
|
108
108
|
|
|
109
|
-
/**
|
|
110
|
-
* will return an array of objects { key, value, encrypted } from parsing an array of objects: key=value ,key: {value: "value", encrypted: true }
|
|
111
|
-
* @param environmentVariables
|
|
112
|
-
* @returns Array of { key, value, encrypted }
|
|
113
|
-
*/
|
|
114
|
-
const prepareKeyValueObjectsFromEnvFileOption = (environmentVariables) => _.map(environmentVariables, (value, key) => {
|
|
115
|
-
if (_.isObject(value)) {
|
|
116
|
-
const { value: val, encrypted } = value;
|
|
117
|
-
return { key, value: val, encrypted };
|
|
118
|
-
}
|
|
119
|
-
return { key, value };
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* The function takes in a list of requested variables and an array of encrypted variable names,
|
|
124
|
-
* and sets the encrypted flag to true on each corresponding variable object in the list.
|
|
125
|
-
* @param environmentVariables
|
|
126
|
-
* @param encrypted
|
|
127
|
-
* @returns Array of { key, value, encrypted }
|
|
128
|
-
*/
|
|
129
|
-
const markEncryptedFlagOnRequestedVariables = (requestedVariables, encrypted) => {
|
|
130
|
-
const variables = _.cloneDeep(requestedVariables);
|
|
131
|
-
const variableMap = _.reduce(variables, (acc, v) => _.assign(acc, { [v.key]: v }), {});
|
|
132
|
-
_.forEach(encrypted, (varName) => {
|
|
133
|
-
const variable = variableMap[varName];
|
|
134
|
-
if (!variable) {
|
|
135
|
-
throw new CFError(`Variable is not provided: "${varName}"`);
|
|
136
|
-
}
|
|
137
|
-
variable.encrypted = true;
|
|
138
|
-
});
|
|
139
|
-
return variables;
|
|
140
|
-
};
|
|
141
|
-
|
|
142
109
|
const crudFilenameOption = (yargs, options = {}) => {
|
|
143
110
|
const filenameOption = {
|
|
144
111
|
alias: options.alias || 'f',
|
|
@@ -155,19 +122,13 @@ const crudFilenameOption = (yargs, options = {}) => {
|
|
|
155
122
|
.coerce(options.name || 'filename', (arg) => {
|
|
156
123
|
try {
|
|
157
124
|
const rawFile = fs.readFileSync(path.resolve(process.cwd(), arg), 'utf8');
|
|
158
|
-
let content;
|
|
159
125
|
if (arg.endsWith('.json')) {
|
|
160
|
-
|
|
161
|
-
} else if (arg.endsWith('.yml') || arg.endsWith('yaml')) {
|
|
162
|
-
content = options.raw ? rawFile : yaml.safeLoad(rawFile);
|
|
163
|
-
} else {
|
|
164
|
-
throw new CFError('File extension is not recognized');
|
|
126
|
+
return options.raw ? rawFile : JSON.parse(rawFile);
|
|
165
127
|
}
|
|
166
|
-
if (
|
|
167
|
-
return
|
|
128
|
+
if (arg.endsWith('.yml') || arg.endsWith('yaml')) {
|
|
129
|
+
return options.raw ? rawFile : yaml.safeLoad(rawFile);
|
|
168
130
|
}
|
|
169
|
-
throw new CFError('
|
|
170
|
-
+ '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');
|
|
171
132
|
} catch (err) {
|
|
172
133
|
const error = new CFError({
|
|
173
134
|
message: 'Failed to read file',
|
|
@@ -200,15 +161,15 @@ const selectColumnsOption = (yargs, options = {}) => {
|
|
|
200
161
|
};
|
|
201
162
|
|
|
202
163
|
function pathExists(p) {
|
|
203
|
-
return new Promise(
|
|
204
|
-
.then(
|
|
164
|
+
return new Promise(resolve => fs.access(p, resolve))
|
|
165
|
+
.then(err => !err);
|
|
205
166
|
}
|
|
206
167
|
|
|
207
168
|
const readFile = Promise.promisify(fs.readFile);
|
|
208
169
|
|
|
209
170
|
function watchFile(filename, listener) {
|
|
210
171
|
fs.watchFile(filename, { interval: 500 }, listener);
|
|
211
|
-
const unwatcher =
|
|
172
|
+
const unwatcher = f => () => fs.unwatchFile(f);
|
|
212
173
|
['exit', 'SIGINT', 'SIGUSR1', 'SIGUSR2', 'uncaughtException', 'SIGTERM'].forEach((eventType) => {
|
|
213
174
|
process.on(eventType, unwatcher(filename));
|
|
214
175
|
});
|
|
@@ -216,7 +177,7 @@ function watchFile(filename, listener) {
|
|
|
216
177
|
|
|
217
178
|
function ignoreHttpError(e) {
|
|
218
179
|
if (!e.statusCode) {
|
|
219
|
-
throw e
|
|
180
|
+
throw e
|
|
220
181
|
}
|
|
221
182
|
return undefined;
|
|
222
183
|
}
|
|
@@ -271,6 +232,4 @@ module.exports = {
|
|
|
271
232
|
detectProxy,
|
|
272
233
|
keyValueArrayToObject,
|
|
273
234
|
addProxyVariables,
|
|
274
|
-
markEncryptedFlagOnRequestedVariables,
|
|
275
|
-
prepareKeyValueObjectsFromEnvFileOption,
|
|
276
235
|
};
|
package/package.json
CHANGED