Contributing to Open Source on GitHub


This section is freely adapted from the official GitHub guides.

A great way to get involved in open source is to contribute to the existing projects you’re using.

A Typical GitHub Project Structure

The Community

Projects often have a community around them, made up of other users in different (formal or informal) roles:

  • Owner is the user or organization that created the project has the project on their account.
  • Maintainers and Collaborators are the users primarily doing the work on a project and driving the direction. Oftentimes the owner and the maintainer are the same. They have write access to the repository.
  • Contributors is everyone who has had a pull request merged into a project.
  • Community Members are the users who often use and care deeply about the project and are active in discussions for features and pull requests.


Nearly all GitHub projects include a file. The readme provides a lay of the land for a project with details on how to use, build and sometimes contribute to a project.


A LICENSE file, well, is the license for the project. An open source project’s license informs users what they can and can’t do (e.g., use, modify, redistribute), and contributors, what they are allowing others to do.

Documentation and Wikis

Many larger projects go beyond a readme to give instructions for how people can use their project. In such cases you’ll often find a link to another file or a folder named docs in the repository.


Alternatively, the repository may instead use the GitHub wiki to break down documentation.



Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. They’re kind of like email—except they can be shared and discussed with the rest of your team. Most software projects have a bug tracker of some kind. GitHub’s tracker is called Issues, and has its own section in every repository.


For more information on how Issues work, see the section “Work With GitHub Issues and Pull Requests

Pull Requests

If you’re able to patch the bug or add the feature yourself, make a pull request with the code. Be sure you’ve read any documents on contributing, understand the license and have signed a CLA if required.

Once you’ve submitted a pull request, the maintainer(s) can compare your branch to the existing one and decide whether or not to incorporate (pull) your changes.

For more information on how Pull Requests work, see the section “Work With GitHub Issues and Pull Requests