Можете ли вы установить 2 разных веб-перехватчика Slack в одном репозитории Gitlab? - PullRequest
1 голос
/ 28 мая 2020

У меня есть два слабых канала: команда A и команда B.

У меня есть один репозиторий Gitlab с двумя ветвями: Branch A и Branch B. Когда pu sh происходит в ветке A, сообщение отправляется по каналу Slack, команда A. Когда pu sh происходит в ветке B, сообщение отправляется по каналу Slack, команда B.

Я думаю мы не можем использовать секцию Webhooks Gitlab, и мы должны использовать секцию интеграции Slack, как описано в этот вопрос о переполнении стека .

При интеграции Gitlab со Slack я могу ввести только один URL-адрес для одного из каналов slack но не 2:

Gitlab's Slack integration - Webhook

Кто-нибудь знает обходной путь?

1 Ответ

2 голосов
/ 28 мая 2020

Я не думаю, что есть обходной путь с использованием только веб-перехватчика, поэтому Акшай Капур написал альтернативное решение « Пользовательские интеграции Slack для конвейеров Gitlab CI / CD »

Идея состоит в том, чтобы использовать GitLab CI / CD (строится на стороне сервера GitLab, в отличие от WebHooks, которые отправляют события на стороне клиента)

Конец результат:

https://miro.medium.com/max/1400/1*akmWeFzT_GhqAcR8g-pMyA.png

Идея состоит в том, что в скрипте, запущенном на стороне сервера, вы можете контролировать и добавлять любое условие, которое хотите (например, ветвь нажата), чтобы перенаправить ваше уведомление Slack.

Акшай использует Slack Block Kit (и его игровую площадку ) для создания своего уведомления.

А потом выкладывает:

function share_slack_update() {

    curl -X POST                                           \
        --data-urlencode "payload=$(print_slack_summary)"  \
        "${SLACK_WEBHOOK}"

}
...