Automating new contributor issues with First Timers Bot
Tags: opensource, github, beginners, javascript
Published: 2018-01-17 21:40:30

---
title: "Automating new contributor issues with First Timers Bot"
published: true
description: A GitHub app that helps maintainers automatically create issues for those new to open source.
tags: open source, github, beginners, javascript
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ikffi2z97vmylf7a6vz6.png
---

It's a new year and many of us have resolved to work in Open Source more. Maybe you want to contribute for the first time? Or maybe you are a maintainer of a project and want to have more contributors? Let me introduce you to my botfriend  [First Timers](https://probot.github.io/apps/first-timers/) who will help you accomplish these resolutions.

Last year my friend [Arlene](https://twitter.com/TechChicaPerez) and I worked on a [Rails Girls Summer of Code](https://railsgirlssummerofcode.org/) project with [Gregor Martynus](https://twitter.com/gr2m) from [Hoodie](https://github.com/hoodiehq) as our mentor. Hoodie has these super awesome [first-timers-only issues](https://github.com/hoodiehq/camp/issues/135) that guide new contributors through the contribution process. The problem was that creating these step-by-step issues would usually take the maintainer longer than to do the fix themselves. So Gregor asked us to build a bot that would automate this process. And so First Timers was born!

First Timers is a GitHub App built with [Probot](https://github.com/probot/probot). Probot is a framework for building GitHub Apps in Node.js. It makes it really easy to set up a webhook for events that happen on the repository. You can see our webhook below. We are listening on the "create" event, and whenever something happens our function handleCreateEvent fires off. That's it! You can check out our code [here](https://github.com/hoodiehq/first-timers-bot) (contributions welcome!).


```js
module.exports = function (robot) {
  debug(`ready to receive "create" webhooks`)
  robot.on('create', handleCreateEvent)
}
```


To use First Timers, first you need to [install](https://github.com/apps/first-timers) the app on your GitHub repo. Then when you want to create a new issue, go to the file where the change will happen, make the change, and commit this to a new branch that starts with "first-timers-" along with a short message that describes what to do. First Timers will then check if this "create" event was a branch and if it starts with "first-timers-", and if these are both true, then it will open a new issue that looks like this.
![Screenshot of First Timers issue](https://github.com/hoodiehq/first-timers-bot/blob/master/assets/Issue-Done.png?raw=true)

The issue has a step-by-step guide, shows a diff of what the changes need to be, has a link to the file where the changes need to be done, and has labels like "first-timers-only".  We have also added configuration which means you can change the labels, the template, or even create the issues on a different repository.  Check out our Configuration [section](https://github.com/hoodiehq/first-timers-bot#configuration) for more information.

First timers has been installed on over 200 projects, including Jekyll, Processing, and Semantic-Release! 


**So this is my call to action. Do you have typos that need to be fixed? Do you have copyright years that need to be updated? Do you want to help people make their first contribution? Install First Timers and start creating some issues!**


Here's a short screencast Gregor made to show how it works. 
{% youtube vyuqd-30Qm4 %}