Skip to content

Jira issue to pull request

This is the Jira version of the Linear issue to pull request guide. The pipeline part is identical; this page covers what’s different about Jira. Read the Linear guide’s steps 1, 2, 4 and 5 for harnesses, git/gh setup, the Feature: Plan → Build → Review → PR pipeline, and a manual test run.

The result: label a Jira issue jimothy (or move it to a Ready for AI status) and Jimothy transitions it to In Progress, plans, implements, tests, reviews, waits for your approval, opens a PR titled WEB-45: <summary>, comments the summary on the issue and transitions it to In Review.

  1. Jira Cloud: create an API token at https://id.atlassian.com/manage-profile/security/api-tokens (Create API token). Data Center / Server: in Jira, Profile → Personal Access Tokens → Create token.
  2. In Jimothy: Accounts → Jira.
  3. Jira site URL: https://acme.atlassian.net (Cloud) or your Jira base URL.
  4. Authentication: Jira Cloud — email + API token (then fill Account email) or Data Center / Server — personal access token.
  5. Paste the token into API token and click Sign in.

The account needs Browse projects on the projects you’ll query, and Add comments and Transition issues for write-back. See Jira.

Pick how someone tells Jimothy “work on this”:

Hand-off JQL
A label project = WEB AND labels = jimothy AND statusCategory != Done ORDER BY created ASC
A status in your workflow project = WEB AND status = "Ready for AI" ORDER BY priority DESC, created ASC
Assign to a service user project = WEB AND assignee = "jimothy-bot" AND statusCategory = "To Do"

A dedicated status works best with write-back: the start transition moves the issue out of that status, so it leaves the query immediately.

  1. Triggers → Add trigger → Jira.

  2. Name Jira: WEB, Runs pipeline Feature: Plan → Build → Review → PR, Jira account from step 1.

  3. JQL: from the table above.

  4. Poll every (seconds): 60 or 120.

  5. Write back to the issue:

    • Run starts: Comment on, transition In Progress
    • Succeeds: Comment on, transition In Review
    • Fails: Comment on, transition empty

    The transition box takes a transition name or the target status name.

  6. Preview matching issues. JQL errors are shown exactly as Jira reports them. Every listed issue will start a run when you save.

  7. Save trigger.

Label an issue (or move it to your hand-off status). Within a poll interval — or immediately with Check now — a run starts, the issue moves to In Progress, and a comment appears: 👋 Jimothy started run #12 (Feature: Plan → Build → Review → PR).

From here it’s the same as the Linear guide: watch the run, approve, and the PR is opened. The branch is jimothy/web-45, and the PR title is WEB-45: <summary>, which lets Jira’s development panel link the PR if your Jira is connected to GitHub.

The Jira description is converted to plain text / light Markdown (headings, lists, code blocks, quotes, links) before it reaches {{issue.description}}. Also available: {{issue.status}}, {{issue.priority}}, {{issue.assignee}}, {{issue.reporter}}, {{issue.labels}} and {{issue.raw.issueType}}. You can branch on the issue type:

{{#if issue.raw.issueType}}This is a {{issue.raw.issueType}}.{{/if}}

Or route bugs to a different pipeline with a second trigger: project = WEB AND issuetype = Bug AND labels = jimothy → Bug fix (fast lane), and exclude bugs from the feature trigger’s JQL.

  • Jimothy uses REST API v2 (/rest/api/2/search) with Authorization: Bearer <PAT>.
  • Comments are posted as plain text (wiki markup renders), descriptions come through as-is.
  • If Jira runs under a context path, include it in Jira site URL (https://acme.internal/jira).
  • Instant webhooks need Jira to reach Jimothy’s webhook server; see Jira → Webhooks. Polling alone is fine for most teams.