Have you ever thought about how great it would be if you could customize your own workflow? Managing your project, schedule events, release checklists or manage some kind of specific feature work? Don't worry, because with GitHub's Project Boards you can do just that!
What’s awesome is that with every app you have on SashiDo, you get a Free Private GitHub repo, which includes the option to enable Project Boards by default.
There are generally two types of Project Boards:
- Repository Project Boards - These types of Project Boards are scoped only to pull requests, issues, and notes under a given repo.
- Organization-wide Project Boards - They may refer to pull requests and issues from any repository that is part of an organization.
Project Boards are great for managing and coordinating your workflow. They combine pull requests, issues, and notes, which are sorted in cards in columns of your choosing. You can easily drag and drop cards to re-arrange them, for example at the top of the column or in another column altogether. The same can be applied to the columns themselves. This is also made easier by using keyboard shortcuts, for which you can read more in the official GitHub Guide for Using keyboard shortcuts for Project Boards
The cards in a Project Board contain data relevant to issues and pull requests, for example, labels, assignees, status or who opened the issue or pull request. If you want to see more detail, you can click the link in the card. The cool part is that each card has a unique URL address, which means you can easily share and discuss a specific card with your team.
You can create a note in every column you desire. They generally function as a reminder or a reference to an issue or pull request from any repo on GitHub, but you can also simply add information related to the Project Board itself. If you want, you can create a reference card to another Project Board by adding a link to a note. However, there may come a time when simply a note is not enough for your needs. Should that time come, you can always convert it to an issue. If you want to read more about that, check out the official GitHub Guide on Adding notes to a Project Board.
Before anything else, it's important to know that only people with write access to a repository can create a Project Board. Likewise, anybody who has read access to the repo can view the board. In relation to organization-wide Project Boards, only members of the given organization can create/view Project Boards. Should an organization-wide Project Board contain any pull requests or issues from a repository you do not have view access to, the card will be redacted.
It's fairly simple to create a Project Board. First of all, you need to be in your repository main page. Once there, you can see a little tab called Projects located under your repo name. When you click on it, given that you do not have any Project Boards, you need to click on the green button named New Project.
To create an organization-wide Project Board, you need to navigate to Your profile. You can find it when you click on your avatar in the top-right corner of the page. When there, on the left side of the screen, click on your organization icon. After that, click on Projects -> Create a project.
In both cases, you'll be asked to fill in the Project Board name and provide a description. After you've filled the name and description, you can optionally choose a template for your new board. Templates help you quickly set up your Project Board. When you choose to create it with a given template, it will include already created columns and cards with tips on how to use the Project Board. There are 3 templates to choose from:
- Basic Kanban - Using this template you can track your tasks with To Do, In progress and Done columns.
- Automated Kanban - It's identical to the Kanban template, with a difference that the cards automatically move from To Do, In progress and Done columns. If you want to read more about automation, check out GitHub's Article "About automation for project boards."
- Bug Triage - If you want to emphasize your work on bugs this template is perfect for you. It prioritizes bugs with columns of To Do, High priority, Low priority and Closed.
The Activity view a really cool feature of the Project Board. It allows you to see the recent history, like if someone created new cards or moved them to another column. To access the Activity View, just click on the Menu.
Filtering enables you to easily find a specific card or some subset of cards in a Project Board by applying filters. For example, you can filter cards by author, assignee, label, state, type. If you want to read more, you can do so in GitHub's article Filtering Cards on a Project Board
There might come a time when you've completed all your tasks in the Project Board and don't need it anymore. You can always close it. You can do so by clicking on the Projects tab in your repo. When there you can choose which Project Board you want to close in the projects list.
You've learned about Project Boards in general. However, it may still be hard for you to visualize how to use them or for what purposes so let us help you out a bit.
An example use of a Project Board is to categorize your issues & pull requests. For instance, if you plan on a new release of your application, you can create a Project Board that can hold all the issues, pull requests, bugs, and notes that need to be cleared before your new release. You can categorize them by columns of your choosing like Next up, In progress, High priority, Low priority & Completed. That way it would be really easy for you and your team to get things done quickly and efficiently.
Don't forget that you can always draw inspiration from any open source projects on GitHub if you want. You can check Kubernetes' Projects section for example.
You can see that there is no limit as to how many Project Boards you can have, it can be one, it can be many. It solely depends on how you want to use them.
If you want to read in-depth about how to edit your Project Boards you can check GitHub's official article Editing a project board.
Perhaps you are more interested in learning how to easily add issues and pull requests to your Project Boards. In that case, you can read more about it in GitHub's Adding issues and pull requests to a project board.