1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
unleash.unleash/website/docs/guides/feature-updates-to-slack.md
Thomas Heartman 68cec1349b
Fix broken doc links (#2046)
## What

This PR fixes some broken links that have been hanging around in the
docs for what seems like a very long time.

## Why

As discovered by the link check in #1912, there are a fair few broken
links in the docs. Everyone hates broken links because it makes it
harder to understand what they were supposed to be pointing at.

## How

There are 3 types of links that have been fixed:
- Links that should have been internal but were absolute. E.g.
  `https://docs.getunleash.io/path/article` that should have been
  `./article.md`
- External links that have changed, such as Slack's API description
- GitHub links to files that either no longer exist or that have been
  moved. These links generally pointed to `master`/`main`, meaning
  they are subject to change. They have been replaced with permalinks
  pointing to specific commits.

-----

* docs: fix slack api doc link

* docs: update links in migration guide

* docs: fix broken link to ancient feature schema validation

* docs: update links to v3 auth hooks

* docs: update broken link in the go sdk article

* Fix: use permalink for GitHub link

* docs: fix wrong google auth link
2022-09-07 14:26:23 +02:00

2.4 KiB

id title
feature_updates_to_slack 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 add-on guide instead.

:::

Create a custom Slack WebHook url:

  1. Go to https://slack.com/apps/manage/custom-integrations
  2. Click Incoming WebHooks
  3. Click “Add Configuration”
  4. 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')}`);
});