All Projects → brunojdo → Slack Gitlab Notifier

brunojdo / Slack Gitlab Notifier

Gitlab-Slack Notifier - Integration between Gitlab Webhook Events and Slack Bot notifications

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Slack Gitlab Notifier

Connect
The swiss army knife of healthcare integration.
Stars: ✭ 326 (+1817.65%)
Mutual labels:  integration
Datafire
A framework for building integrations and APIs
Stars: ✭ 487 (+2764.71%)
Mutual labels:  integration
Kafka Storm Starter
Code examples that show to integrate Apache Kafka 0.8+ with Apache Storm 0.9+ and Apache Spark Streaming 1.1+, while using Apache Avro as the data serialization format.
Stars: ✭ 728 (+4182.35%)
Mutual labels:  integration
Camel
Apache Camel is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.
Stars: ✭ 4,034 (+23629.41%)
Mutual labels:  integration
Camelinaction2
🐫 This project hosts the source code for the examples of the Camel in Action 2nd ed book 📕 written by Claus Ibsen and Jonathan Anstey.
Stars: ✭ 453 (+2564.71%)
Mutual labels:  integration
Cdap
An open source framework for building data analytic applications.
Stars: ✭ 509 (+2894.12%)
Mutual labels:  integration
X Road
Source code of the X-Road data exchange layer software.
Stars: ✭ 323 (+1800%)
Mutual labels:  integration
Sparkling Water
Sparkling Water provides H2O functionality inside Spark cluster
Stars: ✭ 887 (+5117.65%)
Mutual labels:  integration
Quadpy
Numerical integration (quadrature, cubature) in Python
Stars: ✭ 471 (+2670.59%)
Mutual labels:  integration
Microsoft Integration And Azure Stencils Pack For Visio
Microsoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack it’s a Visio package that contains fully resizable Visio shapes (symbols/icons) that will help you to visually represent On-premise, Cloud or Hybrid Integration and Enterprise architectures scenarios (BizTalk Server, API Management, Logic Apps, Service Bus, Event Hub…), solutions diagrams and features or systems that use Microsoft Azure and related cloud and on-premises technologies in Visio 2016/2013
Stars: ✭ 716 (+4111.76%)
Mutual labels:  integration
Linux Steam Integration
Helper for enabling better Steam integration on Linux
Stars: ✭ 386 (+2170.59%)
Mutual labels:  integration
Syndesis
A flexible, customizable, open source platform that provides core integration capabilities as a service.
Stars: ✭ 433 (+2447.06%)
Mutual labels:  integration
Web3modal
A single Web3 / Ethereum provider solution for all Wallets
Stars: ✭ 515 (+2929.41%)
Mutual labels:  integration
Askql
AskQL is a query language that can express any data request
Stars: ✭ 352 (+1970.59%)
Mutual labels:  integration
Webhook
webhook is a lightweight incoming webhook server to run shell commands
Stars: ✭ 7,201 (+42258.82%)
Mutual labels:  integration
Nerdamer
a symbolic math expression evaluator for javascript
Stars: ✭ 322 (+1794.12%)
Mutual labels:  integration
Zappr
An agent that enforces guidelines for your GitHub repositories
Stars: ✭ 504 (+2864.71%)
Mutual labels:  integration
Yii2 Yml Catalog
Компонент выгрузки каталога товаров в Яндекс.Маркет
Stars: ✭ 16 (-5.88%)
Mutual labels:  integration
Sitewhere
SiteWhere is an industrial strength open-source application enablement platform for the Internet of Things (IoT). It provides a multi-tenant microservice-based infrastructure that includes device/asset management, data ingestion, big-data storage, and integration through a modern, scalable architecture. SiteWhere provides REST APIs for all system functionality. SiteWhere provides SDKs for many common device platforms including Android, iOS, Arduino, and any Java-capable platform such as Raspberry Pi rapidly accelerating the speed of innovation.
Stars: ✭ 788 (+4535.29%)
Mutual labels:  integration
Camel K
Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers
Stars: ✭ 549 (+3129.41%)
Mutual labels:  integration

Gitlab-Slack Notifier

This project aims to integrate Gitlab with Slack teams through webhooks. To do so, we created a service in NodeJS that handle the hooks to Slack channels and also direct messages to slack users.

So far, we integrated Push Hooks and Merge Request Hooks.

IMPORTANT: If you want to notify the slack users through DM, they must have the same username in Gitlab and Slack.

Ex: Slack username: @brunojdo and Gitlab username: brunojdo

Dependencies

  • NodeJS 8.3
  • Express 4.10.*

See others dependencies here.

Usage

There is two ways to start the service that we describe on follow sections.

Docker Image

You can start the service using a docker container. Execute the command below:

docker run -d --restart=always -p 8080:8080 -e SLACK_TOKEN=your-bot-token --name notifier-slgb brunodias20/slack-gitlab-notifier:latest

Environment Setup

You must pass the token of slack bot trough environment variable SLACK_TOKEN.

You also can pass an env SERVICE_PORT that will set a port of the service inside the container (optional).

In addition, you can simply configure your own config.yml and bind as a volume with your container. For example:

docker run -d --restart=always -p 8080:8080 --name notifier-slgb -v ~/config.yml:/opt/app/config.yml brunodias20/slack-gitlab-notifier:latest

ATTENTION: You must bind your config.yml correctly. The path of config.yml inside the container is /opt/app/config.yml. See more information about config.yml

Docker Store

This project is also available on Docker Store, check out here!

NPM

If you prefer, you may also clone this project and run npm. On the ./app folder you can execute:

npm run build && npm run serve

Setup

Enable Webhooks

In your Gitlab project select Settings -> Integrations and put your service address. For example, on: http://localhost:8080/webhook select which hooks you want use. For more information click here.

Create a SlackBot

To create a slackbot click here. If you are in doubt visit: https://api.slack.com/bot-users

File config.yml

This file has several configuration options, such as:

Parameter Description Required
system.name Name to display when accessing the root address true
system.port Service port (Default: 8080) false
lang_selector Language to use for notifications true
slack.bot.name Bot Name true
slack.bot.token Bot Token true
slack.bot.icon Image for the bot avatar false
slack.push_channel Slack channel where Push Event notifications will be posted true
slack.mr_channel Slack channel where MR Event notifications will be posted true
slack.clrPush Color of push messages false
slack.clrOpen Color of opened MR messages false
slack.clrUpdate Color of updated MR messages false
slack.clrMerge Color of merged MR messages false
slack.clrNotAssigned Color when MR has no selected Assignee false
gitlab.events List of all Hooks accepted by service true

Language options

This project has two languages defined to send slack notifications:

  • English (lang/en_US.yml)
  • Brazilian Portuguese (lang/pt_BR.yml)

Select a language

Just change the lang_selector parameter inside config.yml file to your preferred language.

You can also contribute with the project by translating it to your language and submitting a PR to us!

Troubleshooting

You can check if others are experiencing similar issues here. Also feel free to open issues.

Contributing

You can contribute to our project!! To do this, see our list of issues and make a PR! ❤️

Acknowledgement

We would like to thank the projects SlackBots.js and Gitlab-Handler-Webhooks for the awesome libraries to work with Slack API and Gitlab Webhooks Events. Thank you, guys!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].