Skip to content

Commit 8393f5b

Browse files
authored
Merge pull request #139 from codefresh-io/triggers_commands
update cli to work with trigger-events
2 parents 7407173 + ca3a74a commit 8393f5b

File tree

12 files changed

+229
-101
lines changed

12 files changed

+229
-101
lines changed

lib/interface/cli/commands/trigger/delete.cmd.js

Lines changed: 0 additions & 40 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
require('debug')('codefresh:cli:create:trigger-event');
2+
3+
const Command = require('../../../Command');
4+
const { trigger } = require('../../../../../logic').api;
5+
const { prepareKeyValueFromCLIEnvOption } = require('../../../helpers/general');
6+
const createRoot = require('../../root/create.cmd');
7+
8+
const command = new Command({
9+
command: 'trigger-event',
10+
parent: createRoot,
11+
description: 'Create new `trigger-event`',
12+
webDocs: {
13+
category: 'Triggers',
14+
title: 'Create Trigger Event',
15+
},
16+
builder: (yargs) => {
17+
yargs
18+
.option('type', {
19+
describe: 'trigger-event type',
20+
require: true,
21+
})
22+
.option('kind', {
23+
describe: 'trigger-event kind',
24+
})
25+
.option('secret', {
26+
describe: 'trigger-event secret (omit to auto-generate)',
27+
require: true,
28+
default: '!generate',
29+
})
30+
.option('value', {
31+
describe: 'trigger-event specific values pairs (key=value), as required by trigger-type',
32+
default: [],
33+
})
34+
.option('context', {
35+
describe: 'context with credentials required to setup event on remote system',
36+
})
37+
.example('codefresh create trigger-event --type registry --kind dockerhub --secret XYZ1234 --value namespace=codefresh --value name=fortune --context dockerhub', 'Create registry/dockerhub trigger-event');
38+
},
39+
handler: async (argv) => {
40+
const values = prepareKeyValueFromCLIEnvOption(argv.value);
41+
const event = await trigger.createEvent(argv.type, argv.kind, argv.secret, values, argv.context);
42+
console.log(`Trigger event: ${event.uri} was successfully created.`);
43+
},
44+
});
45+
46+
module.exports = command;
47+
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
require('debug')('codefresh:cli:delete:trigger-event');
2+
3+
const Command = require('../../../Command');
4+
const { trigger } = require('../../../../../logic').api;
5+
const deleteRoot = require('../../root/delete.cmd');
6+
7+
const command = new Command({
8+
command: 'trigger-event [event-uri]',
9+
parent: deleteRoot,
10+
description: 'Delete `trigger-event`',
11+
webDocs: {
12+
category: 'Triggers',
13+
title: 'Delete Trigger Event',
14+
},
15+
builder: (yargs) => {
16+
yargs
17+
.positional('event-uri', {
18+
describe: 'trigger-event URI',
19+
})
20+
.option('context', {
21+
describe: 'context with credentials required to setup event on remote system',
22+
})
23+
.example('codefresh delete trigger-event --context dockerhub registry:dockerhub:codefresh:fortune:push', 'Delete registry/dockerhub trigger-event');
24+
},
25+
handler: async (argv) => {
26+
await trigger.deleteEvent(argv['event-uri'], argv.context);
27+
console.log(`Trigger event: ${argv['event-uri']} was successfully deleted.`);
28+
},
29+
});
30+
31+
module.exports = command;
32+

lib/interface/cli/commands/trigger/event/get.cmd.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
const debug = require('debug')('codefresh:cli:get:trigger-event');
1+
require('debug')('codefresh:cli:get:trigger-event');
2+
23
const Command = require('../../../Command');
34
const _ = require('lodash');
45
const { trigger } = require('../../../../../logic').api;
@@ -7,31 +8,27 @@ const getRoot = require('../../root/get.cmd');
78

89
const command = new Command({
910
command: 'trigger-event <event-uri>',
10-
aliases: ['te', 'event'],
1111
parent: getRoot,
12-
description: 'Get detailed information about specified `trigger-event`',
12+
description: 'Get `trigger-event`',
1313
webDocs: {
1414
category: 'Triggers',
1515
title: 'Get Trigger Event',
1616
},
1717
builder: (yargs) => {
18-
return yargs
18+
yargs
1919
.positional('event-uri', {
20-
describe: '`trigger-event` uri (as defined by trigger `type[/kind]`)',
20+
describe: '`trigger-event` URI (as defined by trigger `type[/kind]`)',
2121
require: true,
22-
});
22+
})
23+
.example('codefresh get trigger-event registry:dockerhub:codefresh:fortune:push', 'Get DockerHub codefresh/fortune push `trigger-event`');
2324
},
2425
handler: async (argv) => {
25-
/* eslint-disable prefer-destructuring */
26-
const eventURI = argv['event-uri'];
27-
/* eslint-enable prefer-destructuring */
28-
29-
const info = await trigger.getEventInfo(eventURI);
26+
const event = await trigger.getEvent(argv['event-uri']);
3027

31-
if (_.isArray(info)) {
32-
specifyOutputForArray(argv.output, info);
28+
if (_.isArray(event)) {
29+
specifyOutputForArray(argv.output, event);
3330
} else {
34-
specifyOutputForSingle(argv.output, info);
31+
specifyOutputForSingle(argv.output, event);
3532
}
3633
},
3734
});

lib/interface/cli/commands/trigger/get.cmd.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const debug = require('debug')('codefresh:cli:get:triggers');
1+
require('debug')('codefresh:cli:get:triggers');
22
const Command = require('../../Command');
33
const _ = require('lodash');
44
const { trigger } = require('../../../../logic').api;
@@ -15,7 +15,7 @@ const command = new Command({
1515
title: 'Get Pipeline Triggers',
1616
},
1717
builder: (yargs) => {
18-
return yargs
18+
yargs
1919
.positional('pipeline', {
2020
describe: 'pipeline id',
2121
require: true,

lib/interface/cli/commands/trigger/create.cmd.js renamed to lib/interface/cli/commands/trigger/link.cmd.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
1-
const debug = require('debug')('codefresh:cli:create:trigger');
1+
require('debug')('codefresh:cli:create:trigger');
2+
23
const Command = require('../../Command');
34
const { trigger } = require('../../../../logic').api;
4-
const createRoot = require('../root/create.cmd');
55

66
const command = new Command({
7-
command: 'trigger <event-uri> <pipeline> [pipelines...]',
8-
aliases: ['t'],
9-
parent: createRoot,
10-
description: 'Set pipeline(s) trigger: connect the `trigger-event` to the pipeline(s). *Note:* `trigger-event` exists only if there is at least one connected pipeline.',
7+
root: true,
8+
command: 'link <event-uri> <pipeline> [pipelines...]',
9+
description: 'Define new trigger(s): link pipeline(s) to the specified `trigger-event`',
1110
webDocs: {
1211
category: 'Triggers',
13-
title: 'Set Pipeline Trigger',
12+
title: 'Define Pipeline Trigger',
1413
},
1514
builder: (yargs) => {
16-
return yargs
15+
yargs
1716
.positional('event-uri', {
1817
describe: '`trigger-event` URI (as defined by trigger `type[/kind]`)',
1918
require: true,
2019
})
2120
.positional('pipeline', {
2221
describe: 'pipeline(s) to be triggered by the specified `trigger-event`',
2322
require: true,
24-
});
23+
})
24+
.example('codefresh link registry:dockerhub:codefresh:fortune:push 5a439664af73ad0001f3ece0', 'Setup trigger by linking 5a43... pipeline to the DockerHub `codefresh/fortune` `push` event');
2525
},
2626
handler: async (argv) => {
2727
/* eslint-disable prefer-destructuring */
2828
const pipelines = [].concat(argv.pipeline).concat(argv.pipelines);
29-
const eventURI = argv['event-uri'];
29+
const event = argv['event-uri'];
3030
/* eslint-enable prefer-destructuring */
31-
await trigger.addPipelineTrigger(eventURI, pipelines);
32-
console.log(`Trigger : ${eventURI} was successfully added to the pipeline(s): ${pipelines}`);
31+
await trigger.linkPipelinesToEvent(event, pipelines);
32+
console.log(`Trigger: ${event} was successfully linked to the pipeline(s): ${pipelines}`);
3333
},
3434
});
3535

lib/interface/cli/commands/trigger/type/get.cmd.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
const debug = require('debug')('codefresh:cli:get:trigger-types');
1+
require('debug')('codefresh:cli:get:trigger-types');
2+
23
const Command = require('../../../Command');
34
const _ = require('lodash');
45
const { trigger } = require('../../../../../logic').api;
@@ -7,21 +8,21 @@ const getRoot = require('../../root/get.cmd');
78

89
const command = new Command({
910
command: 'trigger-types [type] [kind]',
10-
aliases: ['tt'],
1111
parent: getRoot,
1212
description: 'Get a list of system-wide available `trigger-types` or specified `trigger-type`',
1313
webDocs: {
1414
category: 'Triggers',
1515
title: 'Get Trigger Types',
1616
},
1717
builder: (yargs) => {
18-
return yargs
18+
yargs
1919
.positional('type', {
2020
describe: '`trigger-type` type name (e.g. `registry`, `cron`)',
2121
})
2222
.positional('kind', {
2323
describe: '`trigger-type` kind (e.g. `dockerhub`, `cfcr`, `gcr`, `acr`); only some `trigger-types` may have kinds',
24-
});
24+
})
25+
.example('codefresh get trigger-types --type registry', 'Get Docker registry trigger types');
2526
},
2627
handler: async (argv) => {
2728
/* eslint-disable prefer-destructuring */
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
require('debug')('codefresh:cli:delete:trigger');
2+
3+
const Command = require('../../Command');
4+
const { trigger } = require('../../../../logic').api;
5+
6+
const command = new Command({
7+
root: true,
8+
command: 'unlink <event-uri> <pipeline> [pipelines...]',
9+
description: 'Undefine trigger(s): unlink pipeline(s) from the specified `trigger-event`',
10+
webDocs: {
11+
category: 'Triggers',
12+
title: 'Remove Pipeline Trigger',
13+
},
14+
builder: (yargs) => {
15+
yargs
16+
.positional('event-uri', {
17+
describe: '`trigger-event` URI (as defined by trigger `type[/kind]`)',
18+
required: true,
19+
})
20+
.positional('pipeline', {
21+
describe: 'pipeline ID',
22+
required: true,
23+
})
24+
.example('codefresh unlink registry:dockerhub:codefresh:fortune:push 5a439664af73ad0001f3ece0', 'Remove trigger by unlinking 5a43... pipeline from the DockerHub `codefresh/fortune` `push` event');
25+
},
26+
handler: async (argv) => {
27+
/* eslint-disable prefer-destructuring */
28+
const event = argv['event-uri'];
29+
const pipelines = [].concat(argv.pipeline).concat(argv.pipelines);
30+
/* eslint-enable prefer-destructuring */
31+
32+
await trigger.unlinkPipelinesFromEvent(event, pipelines);
33+
console.log(`Trigger: ${eventURI} was unlinked from the pipeline(s): ${pipelines}`);
34+
},
35+
});
36+
37+
module.exports = command;
38+

0 commit comments

Comments
 (0)