mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-28 00:06:53 +01:00
1539d1955f
This PR replaces references to _addons_ in the docs with references to _integrations_. In doing so, I have also: - moved `/reference/addons` documents into `/reference/integrations` - combined the previous "Addons" and "Integrations" categories into a new "Integrations" category - added redirects from all the old addons pages to their new locations I have updated the wording, but have not changed things such as API paths, event names, etc, because these will not change at the moment (maybe a breaking change to schedule for v6?). --------- Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
2.5 KiB
2.5 KiB
title |
---|
Feature Updates To slack |
:::caution
This guide is deprecated. If you're looking for ways to integrate with Slack, you should refer to the Slack integration guide instead.
Event hook option is removed in Unleash v5
:::
Create a custom Slack WebHook url:
- Go to https://slack.com/apps/manage/custom-integrations
- Click Incoming WebHooks
- Click “Add Configuration”
- This is Slack's help page on how to do this: https://api.slack.com/messaging/webhooks
- Choose a channel, follow the wizard, get the custom URL.
Send data to Slack using an event hook function
Using the eventHook
option, create a function that will send the data you'd like into Slack when mutation events happen.
const unleash = require('unleash-server');
const axios = require('axios');
function onEventHook(event, eventData) {
const { createdBy: user, data } = eventData;
let text = '';
const unleashUrl = 'http://your.unleash.host.com';
const feature = `<${unleashUrl}/#/features/strategies/${data.name}|${data.name}>`;
switch (event) {
case 'feature-created':
case 'feature-updated': {
const verb =
event === 'feature-created' ? 'created a new' : 'updated the';
text = `${user} ${verb} feature ${feature}\ndescription: ${
data.description
}\nenabled: ${data.enabled}\nstrategies: \`${JSON.stringify(
data.strategies,
)}\``;
break;
}
case 'feature-archived':
case 'feature-revived': {
const verb = event === 'feature-archived' ? 'archived' : 'revived';
text = `${user} ${verb} the feature ${feature}`;
break;
}
default: {
console.error(`Unknown event ${event}`);
return;
}
}
axios
.post(
'https://hooks.slack.com/services/THIS_IS_WHERE_THE_CUSTOM_URL_GOES',
{
username: 'Unleash',
icon_emoji: ':unleash:', // if you added a custom emoji, otherwise you can remove this field.
text: text,
},
)
.then((res) => {
console.log(`Slack post statusCode: ${res.status}. Text: ${text}`);
})
.catch((error) => {
console.error(error);
});
}
const options = {
eventHook: onEventHook,
};
unleash.start(options).then((server) => {
console.log(`Unleash started on http://localhost:${server.app.get('port')}`);
});