@lskjs/bots-plugin-notify
Version:
LSK.js plugin for @lskjs/bots module for telegram, slack, discord, whatsapp, twitter, instagram and vk bots creation
236 lines (186 loc) • 8.41 kB
Markdown
# LSK.js – bots-plugin-notify
> @lskjs/bots-plugin-notify – LSK.js plugin for @lskjs/bots module for telegram, slack, discord, whatsapp, twitter, instagram and vk bots creation
[](https://github.com/lskjs)
[](https://www.npmjs.com/package/@lskjs/bots-plugin-notify)
[](https://www.npmjs.com/package/@lskjs/bots-plugin-notify)
[](https://bundlephobia.com/result?p=@lskjs/bots-plugin-notify)
[](https://www.npmjs.com/package/@lskjs/bots-plugin-notify)
[](https://bundlephobia.com/result?p=@lskjs/bots-plugin-notify)
[](https://bundlephobia.com/result?p=@lskjs/bots-plugin-notify)
[](https://github.com/lskjs/lskjs/blob/master/LICENSE)
[](https://t.me/lskjschat)
<!-- template file="scripts/templates/preview.md" start -->
<!-- template end -->
***
<!-- # 📒 Table of contents -->
# Table of contents
* [⌨️ Install](#️-install)
* [Bots Plugin Notify](#bots-plugin-notify)
* [Таймер (cron)](#таймер-cron)
* [Проекты (projects)](#проекты-projects)
* [📖 License](#-license)
* [👥 Contributors](#-contributors)
* [👏 Contributing](#-contributing)
* [📮 Any questions? Always welcome :)](#-any-questions-always-welcome-)
# ⌨️ Install
```sh
# yarn
yarn i @lskjs/bots-plugin-notify bluebird lodash
# npm
npm i @lskjs/bots-plugin-notify bluebird lodash
```
***
# Bots Plugin Notify
**Bots Plugin Notify** (*@lskjs/bots-plugin-notify*) - плагин, позволяющий настраивать мониторинг ресурсов с уведомлениями в telegram/slack через алерт-менеджер.
Конфиг плагина находится по пути `bots.plugins.notify` и имеет вид:
```js
bots: {
plugins: {
notify: {
cron: '* * * * *',
projects: {
//...
},
},
},
},
```
**Params:**
| Field | Type | Default | Desription |
| ------ | :------: | :------: | ------ |
| cron | Array of String/String | '\* \* \* \* \*' | Таймер |
| projects | Object of Objects | | Объект проектов, которые выполняет бот при срабатывании крона или запроса на Api |
## Таймер (cron)
Параметр позволяет устанавливать время срабатывания действия бота. Например, если необходимо производить мониторинг ресурса каждую минуту, то конфиг будет выглядеть `cron: '* * * * *'`.
Официальный пакет крона: [node-cron - npm](https://www.npmjs.com/package/node-cron)
## Проекты (projects)
Проекты позволяют устанавливать мониторинг ресурсов, отправку сообщений и алерт-менеджер. Ключ, по которому располагается проект в конфиге - название проекта. В случае, когда алерт-менеджер не находит необходимый проект, срабатывает `_default` проект. Его реализация является обязательной.
**Проекты состоят из нескольких частей:**
| Rule Part | Type | Description |
| ------ | :------: | ------ |
| telegram | Array of Number\Array of String\Number\String | ID чатов, в которые будет отправлено сообщение |
| slack | Array of String\String | URL хуков, в которые будет отправлено сообщение |
| monitoring | Array of Objects | Массив объектов, в которых хранятся url для мониторинга ресурсов. Если ресурс не отвечает, то ошибка отправляется в чаты slack/telegram |
| secret | String | Секретный ключ для приватных ресурсов |
| github | Objects | Настройка алерт-менеджера для гитхаба. Позволяет устанавливать, о каких событиях уведомлять |
| gitlab | Objects | Настройка алерт-менеджера для гитлаба. Позволяет устанавливать, о каких событиях уведомлять |
Чтобы отправить какое-то сообщение в бота через алерт-менеджер: `https://YOUR_DOMAIN/notify?projectName=TestName&text=Test Message Text`.
**Examples**:
`_default`
```js
bots: {
plugins: {
notify: {
projects: {
_default: {
telegram: [
telegram.chat1,
],
slack: [
slack.chat2,
],
},
},
},
},
}
```
`monitoring`
```js
bots: {
plugins: {
notify: {
projects: {
monitor_project: {
telegram: [
telegram.chat1,
],
slack: [
slack.chat1,
],
monitoring: [
{
url: 'MONITORING_URL',
},
],
},
},
},
},
}
```
`github` / `gitlab` alert-managers
```js
bots: {
plugins: {
notify: {
projects: {
test_gitlab: {
secret: 'secret',
telegram: [
telegram.chat1,
],
slack: [
slack.chat1,
],
gitlab: {
pipline: true,
pipline__success: true,
pipline__pending: false,
pipline__failed: true,
pipline__canceled: true,
pipline__created: false,
pipline__running: false,
push: true,
merge_request: true,
},
},
test_github: {
secret: 'secret',
telegram: [
telegram.chat1,
],
slack: [
slack.chat1,
],
github: {
pipline: true,
pipline__success: true,
pipline__pending: false,
pipline__failed: true,
pipline__canceled: true,
pipline__created: false,
pipline__running: false,
push: true,
merge_request: true,
},
},
},
},
},
}
```
# 📖 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details
# 👥 Contributors
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://isuvorov.com"><img src="https://avatars2.githubusercontent.com/u/1056977?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Igor Suvorov</b></sub></a><br /><a href="lskjs/lskjs///commits?author=isuvorov" title="Code">💻</a> <a href="#design-isuvorov" title="Design">🎨</a> <a href="#ideas-isuvorov" title="Ideas, Planning, & Feedback">🤔</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
# 👏 Contributing
1. Fork it (<https://github.com/yourname/yourproject/fork>)
2. Create your feature branch (`git checkout -b features/fooBar`)
3. Commit your changes (`git commit -am 'feat(image): Add some fooBar'`)
4. Push to the branch (`git push origin feature/fooBar`)
5. Create a new Pull Request
# 📮 Any questions? Always welcome :)
* [Email](mailto:hi@isuvorov.com)
* [LSK.news – Telegram channel](https://t.me/lskjs)
* [Спроси нас в телеграме ;)](https://t.me/lskjschat)