bdy 1.19.5-dev-pipeline → 1.19.6-dev
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/distTs/package.json +2 -2
- package/distTs/src/api/client.js +2 -103
- package/distTs/src/command/pipeline/run.js +125 -22
- package/distTs/src/command/pipeline.js +0 -23
- package/distTs/src/command/project/get.js +18 -0
- package/distTs/src/command/project/link.js +11 -11
- package/distTs/src/command/project/set.js +31 -0
- package/distTs/src/command/sandbox/get/yaml.js +30 -0
- package/distTs/src/command/vt/scrape.js +193 -0
- package/distTs/src/input.js +10 -11
- package/distTs/src/output.js +31 -149
- package/distTs/src/texts.js +35 -85
- package/distTs/src/tunnel/http.js +63 -57
- package/distTs/src/tunnel/output/interactive/tunnel.js +2 -2
- package/distTs/src/tunnel/tcp.js +12 -1
- package/package.json +2 -2
- package/distTs/src/command/crawl/link.js +0 -61
- package/distTs/src/command/crawl/run.js +0 -147
- package/distTs/src/command/crawl/validation.js +0 -154
- package/distTs/src/command/crawl.js +0 -13
- package/distTs/src/command/pipeline/create.js +0 -45
- package/distTs/src/command/pipeline/get.js +0 -42
- package/distTs/src/command/pipeline/list.js +0 -43
- package/distTs/src/command/pipeline/run/apply.js +0 -62
- package/distTs/src/command/pipeline/run/approve.js +0 -62
- package/distTs/src/command/pipeline/run/cancel.js +0 -36
- package/distTs/src/command/pipeline/run/list.js +0 -52
- package/distTs/src/command/pipeline/run/logs.js +0 -37
- package/distTs/src/command/pipeline/run/retry.js +0 -36
- package/distTs/src/command/pipeline/run/start.js +0 -96
- package/distTs/src/command/pipeline/run/status.js +0 -35
- package/distTs/src/command/pipeline/update.js +0 -41
- package/distTs/src/command/pipeline/yaml.js +0 -38
- package/distTs/src/command/tests/capture/validation.js +0 -46
- package/distTs/src/command/tests/capture.js +0 -103
- package/distTs/src/command/tests/unit/link.js +0 -61
- package/distTs/src/command/tests/unit/upload.js +0 -91
- package/distTs/src/command/tests/unit.js +0 -13
- package/distTs/src/command/tests/visual/link.js +0 -61
- package/distTs/src/command/tests/visual/session/close.js +0 -32
- package/distTs/src/command/tests/visual/session/create.js +0 -86
- package/distTs/src/command/tests/visual/session.js +0 -13
- package/distTs/src/command/tests/visual/setup.js +0 -20
- package/distTs/src/command/tests/visual/shared/validation.js +0 -145
- package/distTs/src/command/tests/visual/upload.js +0 -141
- package/distTs/src/command/tests/visual.js +0 -17
- package/distTs/src/command/tests.js +0 -15
- package/distTs/src/crawl/requests.js +0 -141
- package/distTs/src/output/pipeline.js +0 -1555
- package/distTs/src/types/crawl.js +0 -2
- package/distTs/src/types/pipeline.js +0 -424
- package/distTs/src/unitTest/context.js +0 -26
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
const texts_1 = require("../../../texts");
|
|
8
|
-
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const commandPipelineRunCancel = (0, utils_1.newCommand)('cancel', texts_1.DESC_COMMAND_PIPELINE_RUN_CANCEL);
|
|
11
|
-
commandPipelineRunCancel.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
12
|
-
commandPipelineRunCancel.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
13
|
-
commandPipelineRunCancel.option('-n, --no-wait', texts_1.OPTION_PIPELINE_RUN_NO_WAIT);
|
|
14
|
-
commandPipelineRunCancel.argument('<identifier>', texts_1.OPTION_PIPELINE_IDENTIFIER);
|
|
15
|
-
commandPipelineRunCancel.argument('<run-id>', texts_1.OPTION_PIPELINE_RUN_ID);
|
|
16
|
-
commandPipelineRunCancel.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_PIPELINE_RUN_CANCEL}`);
|
|
17
|
-
commandPipelineRunCancel.action(async (identifier, runId, options) => {
|
|
18
|
-
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
19
|
-
const project = input_1.default.restApiProject(options.project);
|
|
20
|
-
const client = input_1.default.restApiTokenClient();
|
|
21
|
-
const rid = input_1.default.pipelineRunId(runId);
|
|
22
|
-
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
23
|
-
if (!data || !data.domain) {
|
|
24
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
25
|
-
}
|
|
26
|
-
if (!data.project_identifier) {
|
|
27
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
28
|
-
}
|
|
29
|
-
if (!data.pipeline_id) {
|
|
30
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_NOT_FOUND);
|
|
31
|
-
}
|
|
32
|
-
await client.pipelineRunCancel(workspace, project, data.pipeline_id, rid);
|
|
33
|
-
const OutputPipeline = require('../../../output/pipeline').default;
|
|
34
|
-
await OutputPipeline.runStatus(client, workspace, project, data.pipeline_id, rid, !options.wait);
|
|
35
|
-
});
|
|
36
|
-
exports.default = commandPipelineRunCancel;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
const texts_1 = require("../../../texts");
|
|
8
|
-
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const commandPipelineRunList = (0, utils_1.newCommand)('list', texts_1.DESC_COMMAND_PIPELINE_RUN_LIST);
|
|
11
|
-
commandPipelineRunList.alias('ls');
|
|
12
|
-
commandPipelineRunList.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
13
|
-
commandPipelineRunList.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
14
|
-
commandPipelineRunList.option('--page <number>', texts_1.OPTION_REST_API_PAGE, '1');
|
|
15
|
-
commandPipelineRunList.option('--per-page <number>', texts_1.OPTION_REST_API_PER_PAGE, '10');
|
|
16
|
-
commandPipelineRunList.argument('<identifier>', texts_1.OPTION_PIPELINE_IDENTIFIER);
|
|
17
|
-
commandPipelineRunList.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_PIPELINE_RUN_LIST}`);
|
|
18
|
-
commandPipelineRunList.action(async (identifier, options) => {
|
|
19
|
-
const page = input_1.default.restApiPage(options.page);
|
|
20
|
-
const perPage = input_1.default.restApiPerPage(options.perPage);
|
|
21
|
-
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
22
|
-
const project = input_1.default.restApiProject(options.project);
|
|
23
|
-
const client = input_1.default.restApiTokenClient();
|
|
24
|
-
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
25
|
-
if (!data || !data.domain) {
|
|
26
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
27
|
-
}
|
|
28
|
-
if (!data.project_identifier) {
|
|
29
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
30
|
-
}
|
|
31
|
-
if (!data.pipeline_id) {
|
|
32
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_NOT_FOUND);
|
|
33
|
-
}
|
|
34
|
-
const result = await client.getPipelineRuns(workspace, project, data.pipeline_id, page, perPage);
|
|
35
|
-
if (!result.executions.length) {
|
|
36
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_RUNS_NOT_FOUND);
|
|
37
|
-
}
|
|
38
|
-
const OutputPipeline = require('../../../output/pipeline').default;
|
|
39
|
-
const table = [['ID', 'STATUS', 'STARTED', 'FINISHED', 'URL']];
|
|
40
|
-
for (const run of result.executions) {
|
|
41
|
-
table.push([
|
|
42
|
-
String(run.id),
|
|
43
|
-
OutputPipeline.runStatusText(run.status),
|
|
44
|
-
run.start_date || '-',
|
|
45
|
-
run.finish_date || '-',
|
|
46
|
-
run.html_url,
|
|
47
|
-
]);
|
|
48
|
-
}
|
|
49
|
-
output_1.default.table(table);
|
|
50
|
-
output_1.default.exitNormal('');
|
|
51
|
-
});
|
|
52
|
-
exports.default = commandPipelineRunList;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
const texts_1 = require("../../../texts");
|
|
8
|
-
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const commandPipelineRunLogs = (0, utils_1.newCommand)('logs', texts_1.DESC_COMMAND_PIPELINE_RUN_LOGS);
|
|
11
|
-
commandPipelineRunLogs.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
12
|
-
commandPipelineRunLogs.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
13
|
-
commandPipelineRunLogs.option('-n, --no-wait', texts_1.OPTION_PIPELINE_RUN_NO_WAIT);
|
|
14
|
-
commandPipelineRunLogs.argument('<identifier>', texts_1.OPTION_PIPELINE_IDENTIFIER);
|
|
15
|
-
commandPipelineRunLogs.argument('<run-id>', texts_1.OPTION_PIPELINE_RUN_ID);
|
|
16
|
-
commandPipelineRunLogs.argument('<run-action-id>', texts_1.OPTION_PIPELINE_RUN_ACTION_ID);
|
|
17
|
-
commandPipelineRunLogs.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_PIPELINE_RUN_LOGS}`);
|
|
18
|
-
commandPipelineRunLogs.action(async (identifier, runId, runActionId, options) => {
|
|
19
|
-
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
20
|
-
const project = input_1.default.restApiProject(options.project);
|
|
21
|
-
const client = input_1.default.restApiTokenClient();
|
|
22
|
-
const rid = input_1.default.pipelineRunId(runId);
|
|
23
|
-
const raid = input_1.default.pipelineRunActionId(runActionId);
|
|
24
|
-
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
25
|
-
if (!data || !data.domain) {
|
|
26
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
27
|
-
}
|
|
28
|
-
if (!data.project_identifier) {
|
|
29
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
30
|
-
}
|
|
31
|
-
if (!data.pipeline_id) {
|
|
32
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_NOT_FOUND);
|
|
33
|
-
}
|
|
34
|
-
const OutputPipeline = require('../../../output/pipeline').default;
|
|
35
|
-
await OutputPipeline.runLogs(client, workspace, project, data.pipeline_id, rid, raid, !options.wait);
|
|
36
|
-
});
|
|
37
|
-
exports.default = commandPipelineRunLogs;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
const texts_1 = require("../../../texts");
|
|
8
|
-
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const commandPipelineRunRetry = (0, utils_1.newCommand)('retry', texts_1.DESC_COMMAND_PIPELINE_RUN_RETRY);
|
|
11
|
-
commandPipelineRunRetry.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
12
|
-
commandPipelineRunRetry.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
13
|
-
commandPipelineRunRetry.option('-n, --no-wait', texts_1.OPTION_PIPELINE_RUN_NO_WAIT);
|
|
14
|
-
commandPipelineRunRetry.argument('<identifier>', texts_1.OPTION_PIPELINE_IDENTIFIER);
|
|
15
|
-
commandPipelineRunRetry.argument('<run-id>', texts_1.OPTION_PIPELINE_RUN_ID);
|
|
16
|
-
commandPipelineRunRetry.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_PIPELINE_RUN_RETRY}`);
|
|
17
|
-
commandPipelineRunRetry.action(async (identifier, runId, options) => {
|
|
18
|
-
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
19
|
-
const project = input_1.default.restApiProject(options.project);
|
|
20
|
-
const client = input_1.default.restApiTokenClient();
|
|
21
|
-
const rid = input_1.default.pipelineRunId(runId);
|
|
22
|
-
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
23
|
-
if (!data || !data.domain) {
|
|
24
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
25
|
-
}
|
|
26
|
-
if (!data.project_identifier) {
|
|
27
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
28
|
-
}
|
|
29
|
-
if (!data.pipeline_id) {
|
|
30
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_NOT_FOUND);
|
|
31
|
-
}
|
|
32
|
-
await client.pipelineRunRetry(workspace, project, data.pipeline_id, rid);
|
|
33
|
-
const OutputPipeline = require('../../../output/pipeline').default;
|
|
34
|
-
await OutputPipeline.runStatus(client, workspace, project, data.pipeline_id, rid, !options.wait);
|
|
35
|
-
});
|
|
36
|
-
exports.default = commandPipelineRunRetry;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
const texts_1 = require("../../../texts");
|
|
8
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
9
|
-
const input_1 = __importDefault(require("../../../input"));
|
|
10
|
-
const commandPipelineRunStart = (0, utils_1.newCommand)('start', texts_1.DESC_COMMAND_PIPELINE_RUN_START);
|
|
11
|
-
commandPipelineRunStart.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
12
|
-
commandPipelineRunStart.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
13
|
-
commandPipelineRunStart.option('-b, --branch <branch>', texts_1.OPTION_PIPELINE_RUN_BRANCH);
|
|
14
|
-
commandPipelineRunStart.option('-t, --tag <tag>', texts_1.OPTION_PIPELINE_RUN_TAG);
|
|
15
|
-
commandPipelineRunStart.option('-pr, --pull-request <pull request>', texts_1.OPTION_PIPELINE_RUN_PULL_REQUEST);
|
|
16
|
-
commandPipelineRunStart.option('-r, --revision <revision>', texts_1.OPTION_PIPELINE_RUN_REVISION);
|
|
17
|
-
commandPipelineRunStart.option('--comment <comment>', texts_1.OPTION_PIPELINE_RUN_COMMENT);
|
|
18
|
-
commandPipelineRunStart.option('-f, --refresh', texts_1.OPTION_PIPELINE_RUN_REFRESH);
|
|
19
|
-
commandPipelineRunStart.option('-c, --clear-cache', texts_1.OPTION_PIPELINE_RUN_CLEAR_CACHE);
|
|
20
|
-
commandPipelineRunStart.option('--priority <priority>', texts_1.OPTION_PIPELINE_RUN_PRIORITY);
|
|
21
|
-
commandPipelineRunStart.option('-v, --variable <variables...>', texts_1.OPTION_PIPELINE_RUN_VAR);
|
|
22
|
-
commandPipelineRunStart.option('-vm, --variable-masked <variables...>', texts_1.OPTION_PIPELINE_RUN_VAR);
|
|
23
|
-
commandPipelineRunStart.option('--schedule <date>', texts_1.OPTION_PIPELINE_RUN_DELAY);
|
|
24
|
-
commandPipelineRunStart.option('--action <actions...>', texts_1.OPTION_PIPELINE_RUN_ACTION);
|
|
25
|
-
commandPipelineRunStart.option('--no-wait', texts_1.OPTION_PIPELINE_RUN_NO_WAIT);
|
|
26
|
-
commandPipelineRunStart.argument('<identifier>', texts_1.OPTION_PIPELINE_IDENTIFIER);
|
|
27
|
-
commandPipelineRunStart.usage('<identifier> [options]');
|
|
28
|
-
commandPipelineRunStart.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_PIPELINE_RUN_START}`);
|
|
29
|
-
commandPipelineRunStart.action(async (identifier, options) => {
|
|
30
|
-
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
31
|
-
const project = input_1.default.restApiProject(options.project);
|
|
32
|
-
const client = input_1.default.restApiTokenClient();
|
|
33
|
-
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
34
|
-
if (!data || !data.domain) {
|
|
35
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
36
|
-
}
|
|
37
|
-
if (!data.project_identifier) {
|
|
38
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
39
|
-
}
|
|
40
|
-
if (!data.pipeline_id) {
|
|
41
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_NOT_FOUND);
|
|
42
|
-
}
|
|
43
|
-
const body = {};
|
|
44
|
-
if (options.branch) {
|
|
45
|
-
body.branch = {
|
|
46
|
-
name: options.branch,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
if (options.tag) {
|
|
50
|
-
body.tag = {
|
|
51
|
-
name: options.tag,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
if (options.pullRequest) {
|
|
55
|
-
body.pull_request = {
|
|
56
|
-
name: `pull/${options.pullRequest}`,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
if (options.revision) {
|
|
60
|
-
body.to_revision = {
|
|
61
|
-
revision: options.revision,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
if (options.comment) {
|
|
65
|
-
body.comment = options.comment;
|
|
66
|
-
}
|
|
67
|
-
if (options.refresh) {
|
|
68
|
-
body.refresh = true;
|
|
69
|
-
}
|
|
70
|
-
if (options.clearCache) {
|
|
71
|
-
body.clear_cache = true;
|
|
72
|
-
}
|
|
73
|
-
const priority = input_1.default.pipelineRunPriority(options.priority);
|
|
74
|
-
if (priority) {
|
|
75
|
-
body.priority = priority;
|
|
76
|
-
}
|
|
77
|
-
body.variables = [];
|
|
78
|
-
if (options.variable) {
|
|
79
|
-
body.variables = body.variables.concat(input_1.default.pipelineRunVariable(options.variable, false));
|
|
80
|
-
}
|
|
81
|
-
if (options.variableMasked) {
|
|
82
|
-
body.variables = body.variables.concat(input_1.default.pipelineRunVariable(options.variableMasked, true));
|
|
83
|
-
}
|
|
84
|
-
const delay = input_1.default.pipelineRunDelay(options.schedule);
|
|
85
|
-
if (delay) {
|
|
86
|
-
body.delay_until = delay;
|
|
87
|
-
}
|
|
88
|
-
const actions = input_1.default.pipelineRunAction(options.action);
|
|
89
|
-
if (actions) {
|
|
90
|
-
body.actions_to_run = actions;
|
|
91
|
-
}
|
|
92
|
-
const result = await client.pipelineRun(workspace, project, data.pipeline_id, body);
|
|
93
|
-
const OutputPipeline = require('../../../output/pipeline').default;
|
|
94
|
-
await OutputPipeline.runStatus(client, workspace, project, data.pipeline_id, result.id, !options.wait);
|
|
95
|
-
});
|
|
96
|
-
exports.default = commandPipelineRunStart;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
const texts_1 = require("../../../texts");
|
|
8
|
-
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const commandPipelineRunStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_PIPELINE_RUN_STATUS);
|
|
11
|
-
commandPipelineRunStatus.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
12
|
-
commandPipelineRunStatus.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
13
|
-
commandPipelineRunStatus.option('-n, --no-wait', texts_1.OPTION_PIPELINE_RUN_NO_WAIT);
|
|
14
|
-
commandPipelineRunStatus.argument('<identifier>', texts_1.OPTION_PIPELINE_IDENTIFIER);
|
|
15
|
-
commandPipelineRunStatus.argument('<run-id>', texts_1.OPTION_PIPELINE_RUN_ID);
|
|
16
|
-
commandPipelineRunStatus.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_PIPELINE_RUN_STATUS}`);
|
|
17
|
-
commandPipelineRunStatus.action(async (identifier, runId, options) => {
|
|
18
|
-
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
19
|
-
const project = input_1.default.restApiProject(options.project);
|
|
20
|
-
const client = input_1.default.restApiTokenClient();
|
|
21
|
-
const rid = input_1.default.pipelineRunId(runId);
|
|
22
|
-
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
23
|
-
if (!data || !data.domain) {
|
|
24
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
25
|
-
}
|
|
26
|
-
if (!data.project_identifier) {
|
|
27
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
28
|
-
}
|
|
29
|
-
if (!data.pipeline_id) {
|
|
30
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_NOT_FOUND);
|
|
31
|
-
}
|
|
32
|
-
const OutputPipeline = require('../../../output/pipeline').default;
|
|
33
|
-
await OutputPipeline.runStatus(client, workspace, project, data.pipeline_id, rid, !options.wait);
|
|
34
|
-
});
|
|
35
|
-
exports.default = commandPipelineRunStatus;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../utils");
|
|
7
|
-
const texts_1 = require("../../texts");
|
|
8
|
-
const input_1 = __importDefault(require("../../input"));
|
|
9
|
-
const output_1 = __importDefault(require("../../output"));
|
|
10
|
-
const commandPipelineUpdate = (0, utils_1.newCommand)('update', texts_1.DESC_COMMAND_PIPELINE_UPDATE);
|
|
11
|
-
commandPipelineUpdate.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
12
|
-
commandPipelineUpdate.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
13
|
-
commandPipelineUpdate.argument('<identifier>', texts_1.OPTION_PIPELINE_IDENTIFIER);
|
|
14
|
-
commandPipelineUpdate.argument('<yaml|@path>', texts_1.OPTION_PIPELINE_YAML);
|
|
15
|
-
commandPipelineUpdate.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_PIPELINE_UPDATE}`);
|
|
16
|
-
commandPipelineUpdate.action(async (identifier, y, options) => {
|
|
17
|
-
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
18
|
-
const project = input_1.default.restApiProject(options.project);
|
|
19
|
-
const yaml = input_1.default.restApiYaml(y);
|
|
20
|
-
const client = input_1.default.restApiTokenClient();
|
|
21
|
-
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
22
|
-
if (!data || !data.domain) {
|
|
23
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
24
|
-
}
|
|
25
|
-
if (!data.project_identifier) {
|
|
26
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
27
|
-
}
|
|
28
|
-
if (!data.pipeline_id) {
|
|
29
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_NOT_FOUND);
|
|
30
|
-
}
|
|
31
|
-
await client.updatePipelineYml(workspace, project, data.pipeline_id, {
|
|
32
|
-
yaml: Buffer.from(yaml, 'utf8').toString('base64'),
|
|
33
|
-
});
|
|
34
|
-
const result = await client.getPipeline(workspace, project, data.pipeline_id);
|
|
35
|
-
output_1.default.dim('Identifier: ', false);
|
|
36
|
-
output_1.default.cyan(result.identifier);
|
|
37
|
-
output_1.default.cyan(result.html_url);
|
|
38
|
-
output_1.default.green(texts_1.TXT_PIPELINE_UPDATED);
|
|
39
|
-
output_1.default.exitNormal();
|
|
40
|
-
});
|
|
41
|
-
exports.default = commandPipelineUpdate;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../utils");
|
|
7
|
-
const texts_1 = require("../../texts");
|
|
8
|
-
const input_1 = __importDefault(require("../../input"));
|
|
9
|
-
const output_1 = __importDefault(require("../../output"));
|
|
10
|
-
const commandPipelineYaml = (0, utils_1.newCommand)('yaml', texts_1.DESC_COMMAND_PIPELINE_YAML);
|
|
11
|
-
commandPipelineYaml.hideVersionUpdate = true;
|
|
12
|
-
commandPipelineYaml.alias('yml');
|
|
13
|
-
commandPipelineYaml.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
14
|
-
commandPipelineYaml.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
15
|
-
commandPipelineYaml.argument('<identifier>', texts_1.OPTION_PIPELINE_IDENTIFIER);
|
|
16
|
-
commandPipelineYaml.addHelpText('after', `\nEXAMPLES:${texts_1.EXAMPLE_PIPELINE_YML}`);
|
|
17
|
-
commandPipelineYaml.action(async (identifier, options) => {
|
|
18
|
-
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
19
|
-
const project = input_1.default.restApiProject(options.project);
|
|
20
|
-
const client = input_1.default.restApiTokenClient();
|
|
21
|
-
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
22
|
-
if (!data || !data.domain) {
|
|
23
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
24
|
-
}
|
|
25
|
-
if (!data.project_identifier) {
|
|
26
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
27
|
-
}
|
|
28
|
-
if (!data.pipeline_id) {
|
|
29
|
-
output_1.default.exitError(texts_1.ERR_PIPELINE_NOT_FOUND);
|
|
30
|
-
}
|
|
31
|
-
const result = await client.getPipelineYml(workspace, project, data.pipeline_id);
|
|
32
|
-
let yml = '';
|
|
33
|
-
if (result.yaml) {
|
|
34
|
-
yml = Buffer.from(result.yaml, 'base64').toString('utf8');
|
|
35
|
-
}
|
|
36
|
-
output_1.default.exitNormal(yml);
|
|
37
|
-
});
|
|
38
|
-
exports.default = commandPipelineYaml;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.validateOptions = validateOptions;
|
|
7
|
-
exports.checkIfMinimalOptionsAreProvided = checkIfMinimalOptionsAreProvided;
|
|
8
|
-
const zod_1 = require("zod");
|
|
9
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const validation_1 = require("../visual/shared/validation");
|
|
11
|
-
const optionsSchema = zod_1.z.object({
|
|
12
|
-
urls: zod_1.z.string().optional(),
|
|
13
|
-
sitemap: zod_1.z.string().optional(),
|
|
14
|
-
urlsFile: zod_1.z.string().optional(),
|
|
15
|
-
follow: zod_1.z.boolean(),
|
|
16
|
-
respectRobots: zod_1.z.boolean(),
|
|
17
|
-
ignore: zod_1.z
|
|
18
|
-
.array(zod_1.z.string().regex(/^(?:([^:]+)::)?(?:(CSS|XPATH))=(.+)$/, {
|
|
19
|
-
message: "Ignore option must follow pattern '[scope::]type=value' where type must be CSS or XPATH (scope is optional)",
|
|
20
|
-
}))
|
|
21
|
-
.optional()
|
|
22
|
-
.transform(validation_1.parseScopedSelector),
|
|
23
|
-
cookie: validation_1.cookieSchema,
|
|
24
|
-
header: validation_1.headerSchema,
|
|
25
|
-
delay: validation_1.delaySchema,
|
|
26
|
-
waitFor: validation_1.waitForSchema,
|
|
27
|
-
ignoreUrls: zod_1.z.array(zod_1.z.string()).optional(),
|
|
28
|
-
dryRun: zod_1.z.boolean().optional(),
|
|
29
|
-
});
|
|
30
|
-
function validateOptions(options) {
|
|
31
|
-
try {
|
|
32
|
-
const validatedOptions = optionsSchema.parse(options);
|
|
33
|
-
return validatedOptions;
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
if (error instanceof zod_1.ZodError) {
|
|
37
|
-
output_1.default.exitError(error.errors.map((e) => e.message).join(', '));
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
throw error;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
function checkIfMinimalOptionsAreProvided(options) {
|
|
45
|
-
return !!options.urls || !!options.sitemap || !!options.urlsFile;
|
|
46
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../utils");
|
|
7
|
-
const texts_1 = require("../../texts");
|
|
8
|
-
const output_1 = __importDefault(require("../../output"));
|
|
9
|
-
const node_fs_1 = require("node:fs");
|
|
10
|
-
const commandCapture = (0, utils_1.newCommand)('capture', texts_1.DESC_COMMAND_CAPTURE);
|
|
11
|
-
commandCapture.option('--urls <urls>', texts_1.OPTION_COMPARE_URLS);
|
|
12
|
-
commandCapture.option('--sitemap <sitemap>', texts_1.OPTION_COMPARE_SITEMAP);
|
|
13
|
-
commandCapture.option('--urlsFile <urlsFile>', texts_1.OPTION_COMPARE_URLS_FILE);
|
|
14
|
-
commandCapture.option('--dryRun', texts_1.OPTION_COMPARE_DRY_RUN);
|
|
15
|
-
commandCapture.option('--follow', texts_1.OPTION_COMPARE_FOLLOW, false);
|
|
16
|
-
commandCapture.option('--respectRobots', texts_1.OPTION_COMPARE_RESPECT_ROBOTS, false);
|
|
17
|
-
commandCapture.option('--ignoreUrls <ignoreUrls...>', texts_1.OPTION_COMPARE_IGNORE_URLS);
|
|
18
|
-
commandCapture.option('--ignore <ignores...>', texts_1.OPTION_COMPARE_IGNORE);
|
|
19
|
-
commandCapture.option('--cookie <cookies...>', texts_1.OPTION_COMPARE_COOKIE);
|
|
20
|
-
commandCapture.option('--header <headers...>', texts_1.OPTION_COMPARE_HEADER);
|
|
21
|
-
commandCapture.option('--delay <delays...>', texts_1.OPTION_COMPARE_DELAY);
|
|
22
|
-
commandCapture.option('--waitFor <waitFors...>', texts_1.OPTION_COMPARE_WAIT_FOR);
|
|
23
|
-
commandCapture.action(async (options) => {
|
|
24
|
-
const { getCiAndGitInfo, formattedCiInfo } = require('@buddy-works/ci-info');
|
|
25
|
-
const { addProtocolIfMissing } = require('../../visualTest/linkUtils');
|
|
26
|
-
const { sendCompareLinks } = require('../../visualTest/requests');
|
|
27
|
-
const { checkIfMinimalOptionsAreProvided, validateOptions } = require('./capture/validation');
|
|
28
|
-
const { createVtContext, applyToken, applyCiAndCommitInfo } = require('../../visualTest/context');
|
|
29
|
-
const validatedOptions = validateOptions(options);
|
|
30
|
-
const Input = require('../../input').default;
|
|
31
|
-
const token = await Input.vtSuiteToken();
|
|
32
|
-
if (!token) {
|
|
33
|
-
output_1.default.exitError(texts_1.ERR_MISSING_VT_TOKEN);
|
|
34
|
-
}
|
|
35
|
-
const ctx = createVtContext();
|
|
36
|
-
applyToken(ctx, token);
|
|
37
|
-
if (!checkIfMinimalOptionsAreProvided(validatedOptions)) {
|
|
38
|
-
output_1.default.exitError(texts_1.ERR_MISSING_URLS);
|
|
39
|
-
}
|
|
40
|
-
let urls = [];
|
|
41
|
-
let sitemapSource;
|
|
42
|
-
if (validatedOptions.urls) {
|
|
43
|
-
const urlsList = getUrlsFromUrlOption(validatedOptions.urls);
|
|
44
|
-
urls = urls.concat(urlsList);
|
|
45
|
-
}
|
|
46
|
-
if (validatedOptions.urlsFile) {
|
|
47
|
-
const urlsList = getUrlsFromUrlFile(validatedOptions.urlsFile);
|
|
48
|
-
urls = urls.concat(urlsList);
|
|
49
|
-
}
|
|
50
|
-
if (validatedOptions.sitemap) {
|
|
51
|
-
sitemapSource = addProtocolIfMissing(validatedOptions.sitemap);
|
|
52
|
-
}
|
|
53
|
-
const { filteredUrls, duplicates } = filterDuplicates(urls);
|
|
54
|
-
if (duplicates.length > 0) {
|
|
55
|
-
output_1.default.normal(`Detected ${duplicates.length} duplicated urls:`);
|
|
56
|
-
output_1.default.normal(duplicates.join('\n'));
|
|
57
|
-
}
|
|
58
|
-
if (validatedOptions.dryRun) {
|
|
59
|
-
output_1.default.exitSuccess(`List of urls:\n${filteredUrls.join('\n')}`);
|
|
60
|
-
}
|
|
61
|
-
else if (filteredUrls.length > 1) {
|
|
62
|
-
output_1.default.normal(`List of urls:\n${filteredUrls.join('\n')}`);
|
|
63
|
-
}
|
|
64
|
-
const ciAndGitInfo = await getCiAndGitInfo({});
|
|
65
|
-
output_1.default.normal(formattedCiInfo(ciAndGitInfo));
|
|
66
|
-
applyCiAndCommitInfo(ctx, ciAndGitInfo);
|
|
67
|
-
try {
|
|
68
|
-
const { message } = await sendCompareLinks(ctx, filteredUrls, validatedOptions, sitemapSource);
|
|
69
|
-
output_1.default.exitSuccess(message);
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
output_1.default.exitError(`${error}`);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
function getUrlsFromUrlOption(urls) {
|
|
76
|
-
const { addProtocolIfMissing } = require('../../visualTest/linkUtils');
|
|
77
|
-
return urls.split(',').map((url) => addProtocolIfMissing(url).trim());
|
|
78
|
-
}
|
|
79
|
-
function getUrlsFromUrlFile(urlsFile) {
|
|
80
|
-
const { addProtocolIfMissing } = require('../../visualTest/linkUtils');
|
|
81
|
-
const urlsFromFile = (0, node_fs_1.readFileSync)(urlsFile, 'utf-8');
|
|
82
|
-
return urlsFromFile
|
|
83
|
-
.split('\n')
|
|
84
|
-
.filter((url) => url.trim().length > 0)
|
|
85
|
-
.map((url) => addProtocolIfMissing(url).trim());
|
|
86
|
-
}
|
|
87
|
-
function filterDuplicates(urls) {
|
|
88
|
-
const seen = new Set();
|
|
89
|
-
const duplicates = new Set();
|
|
90
|
-
for (const url of urls) {
|
|
91
|
-
if (seen.has(url)) {
|
|
92
|
-
duplicates.add(url);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
seen.add(url);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
filteredUrls: Array.from(seen),
|
|
100
|
-
duplicates: Array.from(duplicates),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
exports.default = commandCapture;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
const texts_1 = require("../../../texts");
|
|
8
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
9
|
-
const commandUtLink = (0, utils_1.newCommand)('link', texts_1.DESC_COMMAND_UT_LINK);
|
|
10
|
-
commandUtLink.option('-w, --workspace <workspace>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
11
|
-
commandUtLink.option('-p, --project <project>', texts_1.OPTION_REST_API_PROJECT);
|
|
12
|
-
commandUtLink.option('-s, --suite <suite>', texts_1.OPTION_SUITE_IDENTIFIER);
|
|
13
|
-
commandUtLink.action(async (options) => {
|
|
14
|
-
const Input = require('../../../input').default;
|
|
15
|
-
const ProjectCfg = require('../../../project/cfg').default;
|
|
16
|
-
output_1.default.handleSignals();
|
|
17
|
-
const workspace = Input.restApiWorkspace(options.workspace);
|
|
18
|
-
const project = Input.restApiProject(options.project);
|
|
19
|
-
const client = Input.restApiTokenClient(false, options.api, options.region);
|
|
20
|
-
let suiteIdentifier = options.suite;
|
|
21
|
-
if (!suiteIdentifier) {
|
|
22
|
-
const opt = await output_1.default.inputMenuAdv(texts_1.TXT_COMMAND_SUITE_SELECT, [
|
|
23
|
-
{
|
|
24
|
-
name: texts_1.TXT_COMMAND_SUITE_CREATE_NEW,
|
|
25
|
-
description: texts_1.TXT_COMMAND_SUITE_CREATE_NEW_UT_DESC,
|
|
26
|
-
value: 'new',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: texts_1.TXT_COMMAND_SUITE_LINK_EXISTING,
|
|
30
|
-
description: texts_1.TXT_COMMAND_SUITE_LINK_EXISTING_DESC,
|
|
31
|
-
value: 'existing',
|
|
32
|
-
},
|
|
33
|
-
]);
|
|
34
|
-
if (opt === 'new') {
|
|
35
|
-
const name = await output_1.default.inputString(texts_1.TXT_COMMAND_SUITE_NAME);
|
|
36
|
-
const response = await client.createUtSuite(workspace, project, { name, identifier: name });
|
|
37
|
-
output_1.default.okSign();
|
|
38
|
-
output_1.default.normal(texts_1.TXT_COMMAND_SUITE_CREATED);
|
|
39
|
-
suiteIdentifier = response.identifier;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
const result = await client.getUtSuites(workspace, project);
|
|
43
|
-
const suites = result?.suites || [];
|
|
44
|
-
if (!suites.length) {
|
|
45
|
-
output_1.default.exitError(texts_1.ERR_NO_UT_SUITES);
|
|
46
|
-
}
|
|
47
|
-
if (suites.length === 1) {
|
|
48
|
-
suiteIdentifier = suites[0].identifier;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
const items = suites.map((s) => s.name || s.identifier);
|
|
52
|
-
const index = await output_1.default.inputMenu(texts_1.TXT_COMMAND_UT_LINK_SELECT, items);
|
|
53
|
-
suiteIdentifier = suites[index].identifier;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
ProjectCfg.setSuite((0, utils_1.getWorkingDir)(), 'ut', suiteIdentifier);
|
|
58
|
-
output_1.default.okSign();
|
|
59
|
-
output_1.default.exitSuccess(texts_1.TXT_COMMAND_UT_LINK_SUCCESS);
|
|
60
|
-
});
|
|
61
|
-
exports.default = commandUtLink;
|