1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-06 00:07:44 +01:00
unleash.unleash/src/lib/addons/slack-definition.ts
Thomas Heartman fc25bc6b82
Feat(#4205): add potentially stale events to addons (#4279)
This PR adds potentially stale events as available to all addons and
adds a formatted message.

## Discussion

I'd still be interested in hearing input on whether the event type
should be selectable by addons or not before we start emitting the
event. I'm leaning towards "yes", but I'll take your thoughts into
consideration.
2023-07-19 13:52:19 +00:00

104 lines
3.1 KiB
TypeScript

import {
FEATURE_CREATED,
FEATURE_UPDATED,
FEATURE_ARCHIVED,
FEATURE_REVIVED,
FEATURE_STALE_ON,
FEATURE_STALE_OFF,
FEATURE_ENVIRONMENT_ENABLED,
FEATURE_ENVIRONMENT_DISABLED,
FEATURE_STRATEGY_REMOVE,
FEATURE_STRATEGY_UPDATE,
FEATURE_STRATEGY_ADD,
FEATURE_METADATA_UPDATED,
FEATURE_PROJECT_CHANGE,
FEATURE_VARIANTS_UPDATED,
FEATURE_POTENTIALLY_STALE_ON,
} from '../types/events';
import { IAddonDefinition } from '../types/model';
const slackDefinition: IAddonDefinition = {
name: 'slack',
displayName: 'Slack',
description: 'Allows Unleash to post updates to Slack.',
documentationUrl: 'https://docs.getunleash.io/docs/addons/slack',
parameters: [
{
name: 'url',
displayName: 'Slack webhook URL',
description: '(Required)',
type: 'url',
required: true,
sensitive: true,
},
{
name: 'username',
displayName: 'Username',
placeholder: 'Unleash',
description:
'The username to use when posting messages to slack. Defaults to "Unleash".',
type: 'text',
required: false,
sensitive: false,
},
{
name: 'emojiIcon',
displayName: 'Emoji Icon',
placeholder: ':unleash:',
description:
'The emoji_icon to use when posting messages to slack. Defaults to ":unleash:".',
type: 'text',
required: false,
sensitive: false,
},
{
name: 'defaultChannel',
displayName: 'Default channel',
description:
'(Required) Default channel to post updates to if not specified in the slack-tag',
type: 'text',
required: true,
sensitive: false,
},
{
name: 'customHeaders',
displayName: 'Extra HTTP Headers',
placeholder: `{
"ISTIO_USER_KEY": "hunter2",
"SOME_OTHER_CUSTOM_HTTP_HEADER": "SOMEVALUE"
}`,
description: `(Optional) Used to add extra HTTP Headers to the request the plugin fires off. Format here needs to be a valid json object of key value pairs where both key and value are strings`,
required: false,
sensitive: true,
type: 'textfield',
},
],
events: [
FEATURE_CREATED,
FEATURE_UPDATED,
FEATURE_ARCHIVED,
FEATURE_REVIVED,
FEATURE_STALE_ON,
FEATURE_STALE_OFF,
FEATURE_ENVIRONMENT_ENABLED,
FEATURE_ENVIRONMENT_DISABLED,
FEATURE_STRATEGY_REMOVE,
FEATURE_STRATEGY_UPDATE,
FEATURE_STRATEGY_ADD,
FEATURE_METADATA_UPDATED,
FEATURE_VARIANTS_UPDATED,
FEATURE_PROJECT_CHANGE,
FEATURE_POTENTIALLY_STALE_ON,
],
tagTypes: [
{
name: 'slack',
description:
'Slack tag used by the slack-addon to specify the slack channel.',
icon: 'S',
},
],
};
export default slackDefinition;