Самая простая нотификация ботом в slack
1) Нужно создать приложение, авторизуемся в слаке через веб интерфейс и начинаем мучать их api вот тут . Само по себе приложение уже умеет играть роль уведомлялки, а нам впринципе этого и достаточно (для более сложного ботоводства с интерактивом рекомендуется создавать пользователя-бота в приложении). Как вы приложение назовете, от этого имени и будете получать сообщения в канал или ЛС.
2) создаем канал в вашем workspace. Если нужно делаем его приватным.
Вот тут самое важное отступление ради которого делается эта заметка. Приложение НЕ надо добавлять в приватый канал. НЕ надо жать эту чертову кнопку "add an app". Оно добавится туда автоматически после создания Incoming Webhook.
3) Продолжая мучать апишку, на страничке Incoming Webhooks в свойсвах вашего приложения активируем эту фичу и создаем новый веб хук. При создании указываем канал или пользователя, которому хотим писть сообщения.
На этом впринипе все. Дальше вам даже для удобства сформируют примитивную строку с curl, типа
Пример нотификации из jenkins:
#jenkins #slack #bot
1) Нужно создать приложение, авторизуемся в слаке через веб интерфейс и начинаем мучать их api вот тут . Само по себе приложение уже умеет играть роль уведомлялки, а нам впринципе этого и достаточно (для более сложного ботоводства с интерактивом рекомендуется создавать пользователя-бота в приложении). Как вы приложение назовете, от этого имени и будете получать сообщения в канал или ЛС.
2) создаем канал в вашем workspace. Если нужно делаем его приватным.
Вот тут самое важное отступление ради которого делается эта заметка. Приложение НЕ надо добавлять в приватый канал. НЕ надо жать эту чертову кнопку "add an app". Оно добавится туда автоматически после создания Incoming Webhook.
3) Продолжая мучать апишку, на страничке Incoming Webhooks в свойсвах вашего приложения активируем эту фичу и создаем новый веб хук. При создании указываем канал или пользователя, которому хотим писть сообщения.
На этом впринипе все. Дальше вам даже для удобства сформируют примитивную строку с curl, типа
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/T0XXX/BXXXXX/ZZZZZZСамое главное для понимания - плюс этого способа это его же минус. за счет простоты создания мы лишаемся любых других возможностей. Т.е. в данной ситуации, создавая вебхук мы жестко связываем конкретную ссылку с конкретным каналом и конкретным ботом. Больше никуда по этому урлу мы постить не сможем. Но для мониторинга или сообщений о сборках из jenkins подойдет без проблем.
Пример нотификации из jenkins:
node {Здесь остается только создать секрет с веб хуком или поместить урл не скрывая его в рамках тестов.
stage('Notify') {
text = "HELLO FROM JENKINS"
withCredentials([string(credentialsId: 'ZZZZZ', variable: 'SLACK_WEB_HOOK')]) {
httpRequest(httpMode: 'POST',
url: env.SLACK_WEB_HOOK,
contentType: 'APPLICATION_JSON',
requestBody: "{\"text\": \"${text}\"}",
responseHandle: 'NONE',
consoleLogResponseBody: true,
validResponseCodes: '200')
}
}
}
#jenkins #slack #bot