Pull Request Status Sync for Jira

Move a Jira issue when its pull request is approved

Jira Cloud can move an issue when a pull request is created, merged or declined, but not when it's approved. This page covers what Jira can do on its own, Atlassian's webhook workaround for Bitbucket, GitHub and GitLab, and where that workaround falls short.

Checked against Atlassian's, GitHub's and GitLab's documentation on 29 September 2026. Atlassian now calls issues "work items" and projects "spaces"; this page keeps the older names.

What Jira can do on its own

FeaturePull request events it can useApproval
Workflow triggersPull request created, merged, declined or reopened, plus branch and commit created. Company-managed projects only.No
Automation triggersPull request created, Pull request declined, Pull request mergedNo
JQLdevelopment[pullrequests].all and .open: whether an issue has pull requests, not their reviewsNo

The workflow triggers list also has "Review" events, such as "Review submitted for approval". Those come from Crucible, Atlassian's older code review tool, not from pull requests.

People have asked for the missing trigger for years. JRACLOUD-71798, "Add a 'Pull request approved' to workflow triggers", has 325 votes and has been gathering interest since 27 March 2019. The automation version, JRACLOUD-81389, has 26.

Atlassian's workaround for Bitbucket

Atlassian's knowledge base article connects a Bitbucket webhook to an automation rule. It needs the issue key in every pull request's title.

  1. In Jira, create an automation rule with the Incoming webhook trigger, and copy the webhook URL it gives you.
  2. Add a branch for the issue whose key is in the pull request's title, with this JQL:
    key = {{webhookData.pullrequest.title.match("(\b[A-Z]+-\d+\b)")}}
  3. Inside the branch, add a Transition action to the status you want.
  4. In Bitbucket, open the repository's settings, add a webhook with the URL from step 1, and choose the pull request Approved trigger.

What to watch for

GitHub and GitLab

The same rule works with other code hosts' webhooks, with a condition on the event:

Blocking the merge instead

Bitbucket's minimum number of approvals merge check works on every plan, but only Bitbucket Premium stops the merge; on other plans people see a warning and can still merge. Either way it guards the merge in Bitbucket, not the issue's status in Jira.

Where Pull Request Status Sync fits

I built Pull Request Status Sync for Jira for teams that need more than the workaround. It reads pull requests on Bitbucket Cloud, GitHub and GitLab, read-only, and:

The app is waiting for Atlassian's Marketplace approval, so it can't be installed from the Marketplace yet. It will be free for up to 10 users (pricing).