RGSoC ’18 with Probot

As students for Rails Girls Summer of Code 2018, my friend Akshita Aggarwal and I of team $we init built 2 bots to automate GitHub workflow under the Probot organisation. We achieved this under the amazing mentorship of Gregor Martynus (maintainer of Probot) and our 4 coaches who volunteered to help us during the summer.

Why RGSoC ?

Because it’s that AWESOME! The organising committe is simply ❤. Ana Sofia Pinho and Vaishali Thakkar left no stone unturned in making it a magical experience for all the teams. From giving us the biggest surprise of our lives while breaking the news of our acceptance to the program, to all the calls ending in closer community bonding, to the box of joy we received in the form of Swags and to countless other little things. It has been one infinitude of a journey! ❤

Our (Pro)Bots

first-timers-only-app :

A bot that ensures exactly one newcomer issue is assigned per person so that it’s fair for all newcomers.

This is specifically close to me as the major issue I faced while getting into open source was that I couldn’t find a lot of new comer issues as most of them were either claimed or resolved. So I opened this issue and later it made its way into our proposal and has now been transformed into a deployed bot ❤

Here’s a link to a detailed blog on the same.

enforce-template-app :

The Bot will require new Issues and PRs to use the respective templates and fill out their fields. It will check that the template was actually used instead of deleted by ensuring that keywords are present in the body.

Implementation specifics:

  • The repository on which the bot is to be installed is required to contain an ISSUE_TEMPLATE.md file as well as a PULL_REQUEST_TEMPLATE.md file
  • Upon the opening of an issue or a pull request, the bot is triggered to do the following
  • It reads the template accordingly (based on whether it is an issue or a pull request that was opened) and then stores the fields present in the template in an array.
  • Then it takes the issue body and checks for the occurrence of each of element of the array of template fields in the issue body.
  • It also handles check-boxes markdown which are commonly used in PR templates

Future Scope:

  • We want to enforce certain mandatory fields to necessarily contain some content
  • We also want to ensure that the content filled against these fields is relevant and not some random gibberish.

See it work:

Our bot responding on violation of template on an opened issue

Want to contribute?

You can open issues and send PRs to our repository.

We would be elated to accept contributions. 😃

Thank you so much for your time ❤