@lskjs/bots-plugin-notify

2.85.1 • Public • Published

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

LSK logo NPM version NPM downloads NPM Dependency count Have TypeScript types Have tree shaking NPM Package size Package size Ask us in Telegram


Table of contents

⌨️ Install

# 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 через алерт-менеджер.

Api Query Params

Param Type Required Default Description
text String Any text
md String Any text with markdown mode
projectName String _default Project name from env
secret String Chat secret key from env

Env & Preferences

Конфиг плагина находится по пути bots.plugins.notify и имеет вид:

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

Проекты (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

bots: {
  plugins: {
    notify: {
      projects: {
        _default: {
          telegram: [
            telegram.chat1,
          ],
          slack: [
            slack.chat2,
          ],
        },
      },
    },
  },
}

monitoring

bots: {
  plugins: {
    notify: {
      projects: {
        monitor_project: {
          telegram: [
            telegram.chat1,
          ],
          slack: [
            slack.chat1,
          ],
          monitoring: [
            {
              url: 'MONITORING_URL',
            },
          ],
        },
      },
    },
  },
}

github / gitlab alert-managers

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 file for details

👥 Contributors


Igor Suvorov

💻 🎨 🤔

👏 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 :)

Package Sidebar

Install

npm i @lskjs/bots-plugin-notify

Weekly Downloads

15

Version

2.85.1

License

MIT

Unpacked Size

197 kB

Total Files

75

Last publish

Collaborators

  • lskjsru
  • maxxborer
  • isuvorov
  • yukioru
  • andru_xa
  • natavts
  • blacklightburn
  • ga2mer
  • kafkae
  • sophiyabezruk
  • vladik_deniska
  • finalgetname