Hackathon#4 - They boost Git Projects with their GitBot

If you love Github Project, we have good news for you! Our Team with Antoine, Erwan and Albin have improved the new Git Project, they automated the status of the cards in order to move them automatically to the right column by using labels.

IMG_0272

Their code is available here for further info : https://github.com/KnpLabs/gitbot/projects/1

They worked on the different automatisation tasks :

  • Move cards to the appropriate column according to their labels
  • Synchronize project columns and labels
  • If a card is closed, it is automatically moved to the last column
  • By adding an issue in github, it is shown automatically in the first column of the github project page.
  • Move automatically an issue into the “done” column when a PR is merged or closed

Technical stack

  • We used ECMAScript6 (and all its brand new features: Promises, destructuring, arrow functions, string interpolations…) to create the bot. Also, we used the latest Express version to help us creating the API.
  • We started by designing our API using RAML, which is “contract-first driven” (whereas other tools like swagger).
  • The API has 4 endpoints to manage (start and stop) the gitbot, and to receive events from Github.
  • Those events are then dispatched to RabbitMQ, and a worker will wait for them. Then this worker will do all the business job.
  • Docker Compose to create the services

It was mostly a fun way for us to discover more about ECMAScript6 and all its brand new features like Promises, arrow functions, destructuring, classes & modules, …

P1030636