Education news and updates

Save setup time with GitHub Classroom and Probot

Image of Vanessa Gennarelli

This situation might be familiar: Dozens or even hundreds of students are each working in their own assignment repository created by GitHub Classroom. As they work, they run into questions, so they open issues in their repositories and tag instructors or teaching assistants with questions. It’s a recipe for getting overwhelmed by issues and notifications.

What if you could turn off issues for your students’ repositories and use your README to redirect them to a central place to have discussions and get help? With Probot—a project, a framework, and a collection of free apps—you can do that and more.

What is Probot?

Probot is a framework for making apps that automate your workflow on GitHub. It listens to events from your repositories, like the creation of new commits, comments, and issues—and automatically creates a response.

Created by the GitHub Team, Probot is an open source community project. And the community has made more than just a framework: They’ve also created dozens of apps to add automation to projects, small and large. Just to name a few, there are Probot apps to help you:

For teachers, the Settings app is one of the most useful. It helps you configure a repository’s settings in a text file that’s checked into your repository, just like other code and configuration files. You can configure a myriad of options for your repository, from label names to turning issues on or off. It’s a great tool to structure student assignments, reflect real-world workflows, and automate your course setup.

How it works

Adding the Probot Settings app to your organization turns it on for any repository in the organization with a .github/settings.yml file. Here’s how you set it up:

  1. Add the Probot Settings app to the GitHub organization you use with Classroom. Go to Settings and click + Add to GitHub. When prompted, grant access to all repositories in the organization.
    Gif of adding the Probot Settings app to the GitHub organization being used with Classroom.
  2. Add a .github/settings.yml file to your starter repository. Since we want to turn off issues on students’ assignment repositories, we check in a file that looks like this:

    repository:
    has_issues: false

    You can also choose other settings, like label names or merge methods for pull requests. Check out the probot/settings README for a list of settings.

    Note: Classroom automatically adds teachers and teaching assistants to repositories.

  3. Use the starter repository when creating your assignment in GitHub Classroom.

That’s it! Now all of your students’ assignment repositories will share the same configuration.

Probot power ups

Probot can do more than toggling issues on or off. The GitHub Education Team has first-hand experience using Probot to help students and educators learn.

For example, with the Settings app, you can configure a predefined set of labels for your students to use as they work through an assignment. For example, the Campus Experts training course uses the Settings app and a set of module labels to track students’ progress through the course.

When you build a custom app with Probot, you can use automation specific to an assignment or course. For example, the GitHub Education Team has a Probot app that automatically creates merge conflicts in repositories to help teach Campus Advisors the art of resolving merge conflicts.

Want to make your own Probot app? Check out the Probot docs to learn how to build an app with Probot or deploy your app with free hosting on Glitch.

Ready to start?

Check out all the apps you can install. If you want more help or inspiration—or want to contribute to the project, join the Probot community with office hours, a Slack workspace, and discussions.

Learn more about GitHub Classroom

Save your seat at GitHub Universe

Celebrate a world connected by code at our annual product and community event, November 13-14 in San Francisco.

Get tickets

Experience GitHub Satellite 2019

Our latest event spotlighted an interconnected software community. Watch the keynote, talks, and panels from your corner of the world.

Watch now