View Source

From QuickBuild 3, a two-way solution is provided to integrate with Atlassian JIRA.

h3. Integrate JIRA in QuickBuild
The integration features:
* Hyperlink the JIRA keys in commit messages to corresponding JIRA pages
* Generate an issues report from commit messages
* Progress/update the issues from commit messages
* Release a version of a project in JIRA and update the fixed versions field of issues with status fixed or closed
* Create an issue to JIRA based on a customized step condition

h4. Simple Integration
To enable the integration:
*1. Enable 'Access remote API calls' in JIRA*

!jira-remote-calls.png!

*2. Configure JIRA server in your configuration setting tab*

!jira-server-settings.png!

You can associate multiple JIRA projects with one QuickBuild configuration.

After doing these, the issues keys mentioned in commit messages will be hyperlinked:
!issues-in-commit-message.png!

and an issues report tab will be displayed in Build tab:
!issues-tab.png!

also, you can find all related issues from a specified version and view the changes for an issue:
!issues-history.png!


h4. Update Issues Via Commit Command
*Update JIRA Issue Step*

To update issues from the commit messages, *Update JIRA Issue* step should be added to your build workflow.

*NOTE:*
* To update issues, the user defined in JIRA server should has the proper rights or you will be not able to update the issues.
* This step should be defined after your checkout step.
* QuickBuild will update all issues which are requested from the commit comments from *previous successful* build.
* If issue updated manually after committed, this issue will not be updated then.
* Only issues which belong to the projects defined in JIRA server will be updated.

*Commit Command*

A commit command in commit message defines what kind of action will be executed to update an issue. The commit command has below format:
{code}
COMMAND ISSUE_KEY [--ATTRIBUTE1 VALUE1] [--ATTRIBUTE2 VALUE2]
{code}

For example, the command below will progress the issues TST-1, TST-2 and TST-3 with workflow transition 'Resolve Issue' and add comment 'something is updated' to them.
{code}
Fix TST-1, TST-2 and TST-3 --comment something is updated
{code}

The commit command is case-insensitive, that means Fix TST-1 is equals to fix TST-1 or FIX TST-1.

*Normally, one command is in one line*, if you need multiple line for an attribute, a '\' should be added to the end of line, for example:
{code}
Fix TST-1 --comment First line comment \
Second line comment \
Third line comment
{code}

The commands can be customized in the Update Jira Issue step based on your JIRA workflow definition.

!commit-commands.png!

{note}
'update' command is reserved and should not be used here.
{note}



With the definition above, you can now update an issue in your commit message by writing commands like:
{code}
1. Fix TSTA-1, TSTA-2 and TSTA-3
2. Close TSTA-4
{code}

The commands above will progress the issues TSTA-1, TSTA-2 and TSTA-3 with 'Resolve Issue' workflow and progress the issue TSTA-4 with 'Close Issue' workflow.


*NOTE*
* A commit command should be in one line.


h3. QuickBuild Side

h3. Jira Side
!jira-issue-changes.png!

!jira-issue-builds.png!

!jira-project-builds.png!

h3. FAQ

* Q: I can't add comment to a closed issue, why?
A: You need modify the file $JIRA_HOME/atlassian-jira/WEB-INF/classes/jira-workflow.xml, find 'Closed' step and change the value of 'jira.issue.editable' to *true*.

* Q: The commit command failed with error: Workflow step 'Start Progress' is not valid for issue: XXX-123, but I can progress the issue in Jira GUI.
A: The user defined in QuickBuild Jira setting should have the permissions to do all of the workflow actions which defined in workflow command transition. If you encountered the problems above, please login to Jira with that user and check the 'Available Workflow Actions' section.