GitHub Issues have two states: Open and Closed. On top of GitHub’s Open and Closed states, Codetree adds the concept of Stages. Stages work in conjunction with GitHub’s Open and Closed states to allow you to define a custom workflow that matches how your team works. Codetree has a set of built-in Stages. You can also add your own custom Stages. Codetree automatically stores Stage information in GitHub Labels so you can still set and filter using Stages from inside GitHub.
Stages map to columns in Board View. Dragging an Issue from one column to another in Board view moves an issue to that Stage. You can also move an Issue to a stage in List view via the Edit Issue Dialog.
Codetree has three built in stages:
- Backlog. An Issue is in the Backlog Stage if it’s in the Open state and is not part of a Milestone (or is unassigned if your project grouping is by Assignee).
- To Do. An Issue is in the To Do Stage if it’s Open and is in a Milestone (or is assigned if your project grouping is by Assignee).
- Closed. An Issue is in the Closed Stage if it’s in the Close State.
By adding custom Stages you can create a workflow that maps to how your team works. You can add custom Stages from the Project settings screen. For example, if your team's process requires Issues to be submitted for code review and then go for user acceptance testing before being closed you would create custom Stages for “Code Review” and “UAT” like this:
After adding custom Stages your Boards include a Code Review and UAT columns.
After setting up your stages, Codetree's workflow feature automatically moves issues through your custom stages, without you having to explicitly add/remove labels or drag issues between columns.
You can setup rules to move issues into a stage of your choosing when a branch is created, a PR is created, or a PR is merged.
Take advantage of the workflow feature:
1. Navigate to Project Settings -> Workflow
2. Tell Codetree what branch naming pattern your team uses. Codetree uses this to identify which issues to move through your stages. A typical pattern would be `^(\d+)` which allows you to start your branch names with the issue number. Or `(\d+)$` if you end your branch names with the issue number.
3. Tell Codetree what you'd like to happen when:
- a branch is created
- a PR is created
- a PR is merged into your default branch