Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bingneef/shipit-slack
Slack notifier for ShipitDeploy
https://github.com/bingneef/shipit-slack
javascript nodejs shipit slack
Last synced: about 2 months ago
JSON representation
Slack notifier for ShipitDeploy
- Host: GitHub
- URL: https://github.com/bingneef/shipit-slack
- Owner: bingneef
- License: mit
- Created: 2017-04-25T08:23:03.000Z (over 7 years ago)
- Default Branch: develop
- Last Pushed: 2022-07-12T18:08:13.000Z (over 2 years ago)
- Last Synced: 2024-04-15T04:34:41.393Z (9 months ago)
- Topics: javascript, nodejs, shipit, slack
- Language: JavaScript
- Size: 147 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# shipit-slack
A set of tasks for [Shipit](https://github.com/shipitjs/shipit) used for [slack](https://slack.com/) slack notifications.
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/f9c3e73d0ebf4b3faea507390e247635)](https://www.codacy.com/app/bingneef/AristotoServer?utm_source=github.com&utm_medium=referral&utm_content=bingneef/AristotoServer&utm_campaign=Badge_Grade)
[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/0312a33892fd45018c4224293625f492)](https://www.codacy.com/app/bingneef/shipit-slack?utm_source=github.com&utm_medium=referral&utm_content=bingneef/shipit-slack&utm_campaign=Badge_Coverage)
[![Codeship Status for bingneef/shipit-slack](https://app.codeship.com/projects/a7c04530-0c86-0135-da8a-06ff7cc4e0e6/status?branch=master)](https://app.codeship.com/projects/215322)
[![Package status for bingneef/shipit-slack](https://david-dm.org/bingneef/shipit-slack.svg)](https://david-dm.org/bingneef/shipit-slack)
[![Package status for bingneef/shipit-slack/?type=dev](https://david-dm.org/bingneef/shipit-slack/dev-status.svg)](https://david-dm.org/bingneef/shipit-slack/?type=dev)# AristotoServer
**Features:**- Triggered on the `updated` or `fetched` event from [shipit-deploy](https://github.com/shipitjs/shipit-deploy)
- Works via [shipit-cli](https://github.com/shipitjs/shipit) and [grunt-shipit](https://github.com/shipitjs/grunt-shipit)## Install
```
npm install shipit-slack --save-dev
yarn add shipit-slack --dev
```## Usage
It is required to set the webhookUrl that links to a Slack [incoming webhook](https://my.slack.com/apps/manage/custom-integrations). This can be done in the `shipit.config.slack` 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`
### `slack.webhookUrl`
Type: `String`
Default: `null`
Required: `true`The webhook url that is configured for your Slack channel.
### `slack.channel`
Type: `String`
Default: `null`A 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`.
### `slack.message`
Type: `String`
Default: `Shipit-Slack`A string that determines the message that is send with the Slack notification.
### `slack.triggerEvent`
Type: `String`
Default: `fetched`An event name that triggers `slack:install`.
### `slack.status`
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.
### `slack.template`
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](https://api.slack.com/docs/message-formatting)### Example `shipitfile.js` options usage
```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](https://github.com/shipitjs/shipit-deploy) or by a custom `slack.triggerEvent` as mentioned above.)## License
MIT