In this article you will learn how to setup a project in GitHub and to use boards to organize your issues using agile methods.
We all have been there, long lists of issues overwhelming our brain.
Wouldn't it be great to organize these issues in a way that simplifies priorization and illustrates progress without having to copy the same issues to Trello?
There is! With
GitHub projects you can set up boards and use agile methods such as KanBan or Scrum. Let's dive into it!
First, we create a new GitHub repository to show the process from scratch. If you already have a repository, you can jump to the next paragraph.
First, click on the "+" on the upper right next to your GitHub profile icon to create a new repository:
Fill in the form, for example with the title and description that I used to create this article:
Subsequently, create some dummy issues that describe different tasks that you have to work on.
Your issue list might look like the following:
GitHub even suggests to try out
project boards. But how?
In GitHub, one needs to first create a
project to subsequently create a
project board. Therefore, click on the
Try it now! button or on
Projects and subsequently on
The following window should open:
Fill in some creative names, or stay with these great suggestions.
Congratulations, by creating the first
project, you automatically created a
project board. It's empty though, so let's populate it.
Therefore, you first have to
Add a column. I suggest to use the following
Backlog: All new issues land here
To Do: Issues that are planned to be worked on soon
In Progress: Issues that are actively being worked on
Waiting for Feedback: Issues that require feedback, to decide whether they are completed
Done: completed issues
columns intuitively visualize the progress of the issues. You can just create them for now and ignore the automation, which we will set up later.
After having created the
project board should look similar to the following image:
But there are still no issues... :(
GitHub enables many-to-many relationships between issues and projects. That means, one issue can be attributed to several projects and of course, one project can have infinite (?) issues.
To add issues to this
project, you have two options:
+ Add cardsand drag and drop the issues to the respective
Projectsto select the project you want this issue to be added to:
You might have noticed, that the second step did not add the issues to a
column yet. You still have to drag and drop it as mentioned in step 1. Or, do you?
GitHub allows you to automate some of the steps described above, to create labels, and to filter the issues in the
project board. Let's check out these additional functionalities, that are really useful in everyday project management.
manage automation of the
To Do, check the shown check boxes as visualized below, and
Now, if you go back to the issues view and assign the issue to the project, the issue will be automatically added to the
Update automation for the
column "Done", such that merged PRs and closed issues are automatically added to the
column "Done". Additionally, you might want to add automation to the
column "In Progress", if issues or PRs are reopened.
To visualize priority implicitly, the issues can be sorted according to their priority (high position = high priority) within their
Additionally, issue labels can be created to visualize priority explicitly. Therefore, click on one of the issue titles and in the sidebar that opens to the right, click on the settings icon in
Labels and type in
Now, you should be able to
Create new label "high priority". Alternatively, you can
Now, your project board might already look more colorful - and more neat. 👌🏻
Another useful functionality, once the project board gets busy, is to filter the issues.
For example, you might want to see all issues assigned to you or to a specific milestone. Or all issues, that have high priority. Therefore, click on the search field
Filter cards and type in exactly
label:"high priority", such that the project board should change as follows:
In this article, we have checked out how to use GitHub's
project boards to organize your issues into
Therefore, we have created
projects and assigned the issues to several projects. Using the columns
Waiting for Feedback and
Done, we can now intuitively visualize the progress of the issues.
Additionally, we can visualize the priority of the issues implicitly using the position (highest = highest priority) as well as explicitly using labels
high priority and
Furthermore, we have
managed automation to automatically move issues to
Backlog when they are added to the project and
Done when they are closed.
What are you waiting for? Get back control over all the open issues and manage them using
This can also be a game changer in communicating workload and available ressources with your colleagues, your mentors or your boss.
You like the idea of issue organization into boards, but are using GitLab?
Check out my blog, instructions for GitLab will follow soon!
Do you want to get 250+ concise and applicable Python tips in an ebook that will cost you less than 10 bucks (future updates included), check it out here.
"The discussions are succinct yet thorough enough to give you a solid grasp of the particular problem. I just wish I would have had this book when I started learning Python." - Daniel H
"Bob and Julian are the masters at aggregating these small snippets of code that can really make certain aspects of coding easier." - Jesse B
"This is now my favourite first Python go-to reference." - Anthony L
"Do you ever go on one of those cooking websites for a recipe and have to scroll for what feels like an eternity to get to the ingredients and the 4 steps the recipe actually takes? This is the opposite of that." - Sergio S