Project Management: Issues and Projects
The Issues Tab
When looking at a GitHub repository, we see a tab called
Issues. This is a built-in GitHub tracking tool for all the bugs, errors, and potential small feature changes for the project living inside the repository. In one view, collaborators of the repository can see what needs to be worked on (open issues) as well as which tasks were resolved (closed issues). Take a look at the Codecademy docs Issue board:
The issue board acts as a forum for all the collaborators of the repository. In some instances, issue boards are public and users of a project can submit and discuss bugs they’ve encountered.
To help organize issues when more and more pop up in a project, we can use labels.
feature are common labels used to differentiate between errors and new features. In the Codecademy Docs repo Issue board earlier, we could see labels such as
Good first issue, if a suggested entry to Docs is
new or an
edit, and what language the entry should be in, like
Java. Labels help us toggle between different types of issues at a glance and have short names.
Creating an Issue
To create an Issue, we can click the
New Issue button on top of the Issues board. This will take us to a new page where to set the title and content of the issue.
Issues are a bit like pull requests in that we want to keep the title specific but to the point. For descriptions, repositories often have their own guidelines (just like pull requests do) for including details. For example, if the issue is related to a bug, we should include the error message in the description. Check out a complete issue from the Facebook Folly repository:
Once the issue is posted and now open, collaborators and other GitHub users can add to the discussion and reference this issue by the
# in other issues and pull requests.
GitHub Project Management
GitHub projects is a beta feature (as of late 2021) for project management. While other project management tools exist, like JIRA or even handwritten post-its, GitHub projects allow direct integration within the repository, letting developers stay within the same ecosystem. We can also create automated project boards that trigger the status of issues and pull requests. And… it’s completely free!
To try out projects, we can select the
New Project option after clicking the
+ button on the upper right side of the GitHub dashboard. In most cases, projects are linked to repositories, which already have existing issues and pull requests, but in other cases, projects can be standalone.
After filling out the name and description of the new project, a drop-down will appear asking what Project template we want to use.
The options range from different types of Kanban boards that can host issues and pull requests to a Bug Triage, which gives details into which bugs are high priority, low priority, or need further investigation. Once the board is created, we will add issues and pull requests to it.
An example of a laid-out GitHub project board is Github’s own public roadmap project, shown next. This is an example of a Project with no repository, as a roadmap can be used for organizational purposes.
In this article, we learned about two GitHub features that can come in handy for teams: issues and projects. We can use GitHub issues to keep track of tasks that need to be worked on. Those issues can then be referenced in pull requests, comments, or projects. GitHub projects are an even newer feature for project management purposes and can be linked to repositories. We can choose from a variety of different board types to organize tasks.
We encourage you to try these out if you want to incorporate project management into your GitHub experience!