Using Smart Commits

Smart Commits allow repository committers to perform actions such as transitioning JIRA Software issues or creating Crucible code reviews by embedding specific commands into their commit messages.

You can:

  • comment on issues
  • record time tracking information against issues
  • transition issues to any status defined in the JIRA Software project's workflow.

There are other commands available if you use Crucible. See below for more information.

For example, to record 2 days and 5 hours of work against the JRA-123 issue, you would include the following in a commit message:

JRA-123 #time 2d 5

Smart commit commands

The basic command line syntax for a smart commit message is:

<ignored text> <ISSUE_KEY> <ignored text> #<COMMAND> <optional COMMAND_ARGUMENTS>

Any text between the issue key and the smart commit command is ignored.

There are three smart commit commands you can use in your commit messages:


Description Adds a comment to a JIRA Software issue.
Syntax <ignored text> ISSUE_KEY <ignored text> #comment <comment_string>
JRA-34 #comment corrected indent issue
  • The committer's email address must match the email address of a single JIRA Software user with permission to comment on issues in that particular project.


Description Records time tracking information against an issue.
Syntax <ignored text> ISSUE_KEY <ignored text> #time <value>w <value>d <value>h <value>m <comment_string>
JRA-34 #time 1w 2d 4h 30m Total work logged

This example records 1 week, 2 days, 4hours and 30 minutes against the issue, and adds the comment 'Total work logged' in the Work Log tab of the issue.

  • Each value for w, d, h and m can be a decimal number.
  • The committer's email address must match the email address of a single JIRA Software user with permission to log work on an issue.
  • Your system administrator must have enabled time tracking on your JIRA Software instance.

Workflow transitions

Description Transitions a JIRA Software issue to a particular workflow state.
Syntax <ignored text> ISSUE_KEY <ignored text> #<transition_name> <comment_string>
JRA-090 #close Fixed this today

This example executes the close issue workflow transition for the issue and adds the comment 'Fixed this today' to the issue. 

You can see the custom commands available for use with smart commits by visiting the JIRA Software issue and seeing its available workflow transitions:

  1. Open an issue in the project.
  2. Click View Workflow (near the issue's Status).

The smart commit only considers the part of a transition name before the first space. So, for a transition name such as finish work, then specifying #finish is sufficient. You must use hyphens to replace spaces when ambiguity can arise over transition names, for example: #finish-work.

If a workflow has two valid transitions, such as:

  • Start Progress
  • Start Review

A smart commit with the action #start is ambiguous because it could mean either of the two transitions. To specify one of these two transitions, fully qualify the transition you want by using either #start-review or #start-progress.

  • When you resolve an issue with the #resolve command, you cannot set the Resolution field with smart commits.
  • If you want to add a comment during the transition, the transition must have a screen associated with it.
  • The committer's email address must match the email address of a single JIRA Software user with the appropriate project permissions to transition issues.

Smart Commit commands for Crucible reviews

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 using a Smart Commit.

Create a review

Description Create a review in Crucible.
<commit message> +review <project key>
Fix a bug +review CR-TEST

The +review  command creates 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.

Add reviewers

Description Add reviewers when creating a new review in Crucible.
<commit message> +review <project key> <reviewer_1> <reviewer_2>... <reviewer_n>
Fix a bug +review CR-TEST @jcage @skhan

The 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 that you cannot add reviewers to existing reviews using Smart Commits.

Update a review

Description  Iteratively add new code changes to a review
<commit message> +review <project key>
Implement rework on past work +review CR-TEST-123

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.

Note that:

  • Each commit command in the Smart Commit must not span more than one line (i.e. you cannot use carriage returns). However, you can use multiple commands in the same commit message, and these can be on the same line.
  • 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.

Advanced examples

You can perform multiple actions on issues by combining commands. Note that a commit command cannot span more than one line (i.e. you cannot use carriage returns), but you can add multiple commands to the same line.

Description Syntax

A single action on a single issue



JRA-123 #time 2d 5h

Record 2 days and 5 hours of work against issue JRA-123.

Multiple actions on a single issue


JRA-123 #time 2d 5h #comment Task completed ahead of schedule #resolve

Log 2 days and 5 hours of work against issue JRA-123, add the comment 'Task completed ahead of schedule', and resolve the issue.

A single action on multiple issues


JRA-123 JRA-234 JRA-345 #resolve

Resolve issues JRA-123, JRA-234 and JRA-345.

Multiple issue keys must be separated by whitespace or commas.

Multiple actions on multiple issues


JRA-123 JRA-234 JRA-345 #resolve #time 2d 5h #comment Task completed ahead of schedule

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.

Multiple issue keys must be separated by whitespace or commas.

Get Smart Commits working

Your FishEye administrator must have:

Note that:

  • Multiple smart commands can be used in the one commit message (and these can be on the same line).
  • Smart Commits only support the default JIRA Software issue key format (that is, two or more uppercase letters, followed by a hyphen and the issue number, for example BAM-123).
  • Smart Commits don't provide for field-level updates in JIRA Software issues.
  • When using Smart Commits you can use linkers that create a hyperlink to the JIRA Software issue. See Linkers for more information.

  • 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. Speak to your FishEye administrator about Configuring SMTP.

If the application link is configured as OAuth

If the application link to JIRA Software is configured to use OAuth, the committing user must authenticate with JIRA Software before any Smart Commit will work with JIRA Software.

  Click to see how to authenticate with JIRA Software...
  1. Create a test review in FishEye.
  2. Log in as the committing user.
  3. Open the review and click Edit Details.
  4. Enter a JIRA Software issue key for 'Linked Issue' and click Link. You'll be prompted to authenticate.
  5. Do this for every committing user (there's no need to create a new review, just link the review to any JIRA Software issue).

Was this helpful?

Thanks for your feedback!

Why was this unhelpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport