We've recently made a few changes to the ModeShape JIRA to better work with our use of GitHub pull-requests. Now, there are two additional statuses that an issue can be in. The basic workflow is as follows:
- A new JIRA issue is created, resulting in an "Open" status.
- A developer working the issue on a topic branch commits a change locally, and pushes their branch into their fork on GitHub. Using GitHub.com, the user creates a pull-request for their changes. (BTW, recent GitHub changes automagically populate the pull-request description with the commit comment. Nice!)
- The developer uses the "Workflow" button on the JIRA issue (see Figure 1), clicks on "Link Pull Request", and pastes the URL to the pull-request in the form (see Figure 2). At this point, the issue is transitioned to the "Sent Pull-Request" status. The "Workflow" menu items change at this point to be "Update Pull Request" and "Pull Request Closed".
- The developer can update the pull-request by either pushing their new commits on the same branch to their fork, or pushing commits on a new topic branch to their fork. After this, they can choose the "Update Pull-Request" option from the "Workflow" menu on the JIRA issue (see Figure 3).
- When an integration manager reviews the pull-request and agrees to merge the changes into the official repository, they can use the "Pull-Request Closed" option from the "Workflow" menu on the JIRA issue. This will transition the issue into the "Done" status.
- At this point, the issue can be closed or, if needed, reopened.
This new workflow allows us to identify those issues that have a status of "Sent Pull-Request", meaning they are waiting for review, approval and merging into the official repository.
Figure 1: "Link Pull Request" is now an option in the JIRA "Workflow" menu
Figure 2: The "Link Pull Request" form for entering a comment and the URL to the GitHub pull-request
Figure 3: "Update Pull Request" and "Pull Request Closed" options in the JIRA "Workflow" menu