npm install shipit-slackA set of tasks for Shipit used for slack slack notifications.





- Triggered on the updated or fetched event from shipit-deploy
- Works via shipit-cli and grunt-shipit
```
npm install shipit-slack --save-dev
yarn add shipit-slack --dev
key in the config.`
slack: {
webhookUrl: 'https://hooks.slack.com/services/XXX',
}
`Afterwards, just simply run: (This triggers the
slack task on the deploy deployed or fetched event. No additional config necessary.)`
shipit default deploy
`Or you can run the tasks separatly :
`
shipit default slack:init slack:send
`
Options
shipit.config.slack$3
Type:
String
Default: null
Required: trueThe webhook url that is configured for your Slack channel.
$3
Type:
String
Default: nullA string that decides what channel the webhook is send to. If this value is null, the default channel is used that is configured in the
incoming webhook.$3
Type:
String
Default: Shipit-SlackA string that determines the message that is send with the Slack notification.
$3
Type:
String
Default: fetchedAn event name that triggers
slack:install.$3
Type:
String
Default: good
Options: [good, warning, error]An string that decides what color the notification in Slack gets, they are respectively: green, orange and red.
$3
Type:
Object
Default:
`js
{
attachments: [
{
fallback: '{{message}}',
color: '{{status}}',
fields: [
{
title: '{{message}}',
value: moment().format('MMMM Do YYYY, H:mm:ss'),
short: true
},
{
title: 'Environment',
value: '{{buildEnv}}',
short: true
},
]
}
]
}
`Template of slack message. All
{{values}} will be populated from shipit.config.slack object.
More info about Slack formatting$3
`js
module.exports = function (shipit) {
require('shipit-deploy')(shipit);
require('shipit-slack')(shipit); shipit.initConfig({
default: {
slack: {
webhookUrl: 'https://hooks.slack.com/services/__XXX__',
status: 'good',
message: 'Shipit-Slack',
triggerEvent: 'deployed',
channel: '#default'
template: {
attachments: [{
fallback: 'Frontend deployed to {{buildEnv}}',
title: 'Visit',
title_link: '{{url}}',
pretext: 'Frontend deploy done!:tada:',
color: '{{status}}',
fields: [{
title: 'Environment',
value: '{{buildEnv}}',
short: false
},
{
title: 'Changes',
value: '{{message}}',
short: false
}],
mrkdwn_in: ['pretext']
}]
}
}
});
};
`Workflow tasks
- slack
- slack:init
- Emit event "slack_inited".
- slack:install
- Runs slack install
- Emit event "slack_installed"
- slack:send
- Sends slack notification.
##### Event flow:
- on Event "deploy" (shipit-deploy initialized)
- Runs slack:init
- on Event "slack_inited"
- Runs slack:install (Triggered on the
fetched event from shipit-deploy or by a custom slack.triggerEvent` as mentioned above.)MIT