Smart commits allow repository committers to perform actions like transitioning JIRA issues or creating Crucible code reviews by embedding specific commands into their commit messages. Multiple smart commits can be used in one commit message, however they must be on separate lines. Note that smart commits don't provide for field-level updates in JIRA issues.
Note that Smart commits require the following:
- An application link must be configured between FishEye/Crucible and JIRA. See Adding an application link.
- If you have JIRA 5.0 or later, and the JIRA FishEye Plugin (at least version 5.0.10), a project/entity link is unnecessary. Otherwise, a project link must be configured between FishEye/Crucible and JIRA. See Adding project links between applications.
- Smart commits must be enabled in FishEye. See Enabling smart commits.
Transition your JIRA issues
Basic command line syntax
The basic command line syntax for your commit comment is:
<ISSUE_KEY> #<COMMAND> <optional COMMAND_PARAMETERS>
Please note, commit commands cannot span more than one line (i.e. you cannot use carriage returns).
For example, if you include the following text in your commit message, FishEye will record 2 days and 5 hours of work against issue JRA-123, when you perform your commit:
JRA-123 #time 2d 5h
Please see the section below for further information on the command line parameters.
Advanced command line syntax
If you wish to perform multiple actions on issues, you can create composite commands by combining keywords, as described below. Please note, commit commands cannot span more than one line (i.e. you cannot use carriage returns).
- To perform multiple actions on a single issue:
<ISSUE_KEY> #<COMMAND1> <optional COMMAND1_PARAMETERS> #<COMMAND2> <optional COMMAND2_PARAMETERS> #<COMMAND3> <optional COMMAND3_PARAMETERS> etc
For example, if you include the following text in your commit message, FishEye will log 2 days and 5 hours of work against issue JRA-123, add the comment 'Task completed ahead of schedule' and resolve the issue, when you perform your commit:
JRA-123 #time 2d 5h #comment Task completed ahead of schedule #resolve
- To perform a single action on multiple issues:
<ISSUE_KEY1> <ISSUE_KEY2> <ISSUE_KEY3> #<COMMAND> <optional COMMAND_PARAMETERS> etc
For example, if you include the following text in your commit message, FishEye will resolve issues JRA-123, JRA-234 and JRA-345, when you perform your commit:
JRA-123 JRA-234 JRA-345 #resolve
- To perform multiple actions on multiple issues:
<ISSUE_KEY1> <ISSUE_KEY2> <ISSUE_KEY3> #<COMMAND1> <optional COMMAND1_PARAMETERS> #<COMMAND2> <optional COMMAND2_PARAMETERS> #<COMMAND3> <optional COMMAND3_PARAMETERS> etc.
For example, if you include the following text in your commit message, FishEye will log 2 days and 5 hours of work against issues JRA-123, JRA-234 and JRA-345, add the comment 'Task completed ahead of schedule' to all three issues, and resolve all three issues, when you perform your commit:
JRA-123 JRA-234 JRA-345 #resolve #time 2d 5h #comment Task completed ahead of schedule
Commands
Note that you can see the custom commands available for use with smart commits by visiting the JIRA issue and seeing its available workflow transitions (in an issue, click View Workflow, near the issue status).
Command | Command Parameters | Description | Example | |
---|---|---|---|---|
| <n>w <n>d <n>h <n>m <work log comment> | This command records time tracking information against an issue. Please note:
|
| |
| <comment text> | This command records a comment against an issue. |
| |
| <workflow> <comment text> | This command transitions an issue to a particular workflow state. Please see the documentation for Configuring Workflow in JIRA. FishEye will do prefix matching for issue transitioning. For example, if you have transition name with spaces, such as FishEye will only execute issue transitions if there is no ambiguity in valid workflow transitions. Take the following example:
A smart commit with action Please note: If you want to resolve an issue using the #resolve command, you will not be able to set the resolution via smart commits. We are tracking this improvement request here:
![]()
|
|
Integration with Crucible
Please note that:
- Each commit command in the commit message must not span more than one line (i.e. you cannot use carriage returns). You can use multiple commands in the same message as long as they are on separate lines.
- Creating a review in Crucible using a smart commit requires that the author of the changeset has already been mapped to a Crucible username. See 'Author mapping' on Changing your user profile.
Creating a review
With smart commits, it is also easy to create a Crucible review from a commit:
Fix a bug +review CR-TEST
The command "+review" tells FishEye to create a new review in the project CR-TEST with the content of the changeset. The review will be in a draft state unless the project has default reviewers or reviewers are explicitly mentioned. If you only have one project in Crucible, or a repository is a project's default repository, it is not necessary to mention the project key. Just use "fix a bug +review".
Adding reviewers
Reviewers can be added to a new review using a smart commit:
Fix a bug +review CR-TEST @jcage @skhan
That command will create a new review in PROJ and add the users jcage and skhan to the review. The review will be automatically started if reviewers are specified.
Note, you cannot add reviewers to existing reviews using smart commits.
Review objectives
When creating a new review using a smart commit the default project objectives are added to the review, and since Fisheye/Crucible 2.10.2, the commit message is also copied to the review objectives.
Note that you cannot add arbitrary objectives to the review from the smart commit.
Updating an existing review
Often, reviews require rework and changes in response to comments left by the team. When committing these changes, adding the review key will iteratively add these new changes to the review:
Implement rework on past work +review CR-TEST-123
With this command FishEye will add the changeset content to the review CR-TEST-123.
Linkers
When using smart commits you can use linkers that create a hyperlink to the JIRA issue. See Linkers for more information.
Error handling
If there are any errors during the processing of smart commits, they will be logged to FishEye's error console, as well as emailed to the actioning users. Please speak to your FishEye administrator about Configuring SMTP.