Skip to content

Commit dda424e

Browse files
docs(factories): document Jira integration
Co-Authored-By: Warp Agent <agent@warp.dev>
1 parent 30ca251 commit dda424e

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
title: Connect a factory to Jira
3+
description: >-
4+
Connect Jira Cloud to a factory so issue activity can route work, preserve
5+
context, and return updates to Jira.
6+
sidebar:
7+
label: Jira
8+
topic: factories
9+
---
10+
11+
Connect Jira Cloud to a factory to turn issue activity into work and return results to the issue. Jira provides the authorized site and project context, while factory automations decide which events start or continue work.
12+
13+
## Before you connect
14+
15+
* **Jira Cloud** - The integration supports Jira Cloud, not Jira Server or Data Center.
16+
* **Jira site admin** - A site admin installs the Warp app on the Jira site and connects the installation to a Warp workspace.
17+
* **Factory access** - You need a factory in the connected workspace and permission to configure its automations.
18+
19+
The Jira app's authorization determines which site and projects Warp can access and what the app can read or update. Automation filters only route events within that authorized access. A project filter does not reduce the app's credential permissions.
20+
21+
## Connect and configure Jira
22+
23+
1. Follow the [Jira integration setup](../../platform/integrations/jira) to install the app, open its **Configure** page, and click **Connect to Warp**. The connected Jira installation is available to factories in that Warp workspace.
24+
2. In the factory's control room, open **Automations**, then click **New**. Enter an automation name and choose the agent that will handle matching Jira work.
25+
3. Click **Add trigger** > **Jira**, then choose **Issue created**, **Issue labeled**, or **Status changed**. Select **Projects**, then add **Labels** or **Statuses** when the event supports them. Empty filters match all values that the connected installation can deliver.
26+
4. Add any instructions the agent needs, then click **Save**. Send a matching Jira event and confirm the run appears on the automation's **Runs** tab.
27+
28+
The automation editor exposes those three Jira events. For a file-managed factory, define the other supported event classes, `issue_commented`, `issue_mentioned`, `comment_mentioned`, and `assignee_changed`, in `automations/<name>/automation.md`. See [factory definitions as code](../factory-as-code) for the automation file format.
29+
30+
## Supported events, context, and outputs
31+
32+
| Jira event class | Available routing filters | Context and typical output |
33+
| --- | --- | --- |
34+
| Issue created | Project and labels present at creation | Issue details and initial fields; comments, issue updates, or artifact links |
35+
| Issue labeled | Project and newly added labels | Issue details and the label change; comments or follow-up work |
36+
| Assignee changed | Project and destination assignee, including unassigned | Issue details and assignment change; comments or issue updates |
37+
| Status changed | Project and destination status | Issue details and status transition; comments or further issue updates |
38+
| Issue commented | Project | Issue and new comment; a follow-up on the same factory workstream |
39+
| Issue mentioned or comment mentioned | Project and mentioned account | Issue or comment mention context; a follow-up and Jira writeback |
40+
41+
Different filter fields combine together. Multiple values within one field act as alternatives. Label and status triggers match the change into the selected value, not an unrelated update that leaves the value unchanged.
42+
43+
## Continue work and write back
44+
45+
Jira activity for the same issue and factory shares one workstream. When a matching event arrives after work already exists, the factory continues that work instead of starting a competing work item. This continuity applies across matching event classes, so a run started by a label can receive a later comment, mention, status, or assignment change.
46+
47+
The factory can read the issue and its comments, post or update comments, transition the issue, add or remove labels, and update issue fields when the Jira installation authorizes those actions. It can also create Jira issues when the workflow calls for one. Completion comments can include links to branches, pull requests, and the full run.
48+
49+
Jira writeback follows the permissions and workflow rules already configured in Jira. Pull request review and merge requirements remain repository or workflow policy, not factory-specific access control.
50+
51+
## Permissions and delivery caveats
52+
53+
Grant the Jira app only the site and project access required for the factory's work. Restrict intake separately with project, label, status, assignee, or mention filters. Review both boundaries when an automation receives too much context or an expected event does not match.
54+
55+
Jira can deliver the same change more than once during retries. Build duplicate-safe workflows: check the current issue state before posting a comment, changing a status, or adding a label, and make repeated actions harmless whenever possible.
56+
57+
## Troubleshooting
58+
59+
* **The Jira site is not connected** - In Jira, open the Warp app's **Configure** page and click **Connect to Warp**. If the factory editor shows **Attach Jira**, **Set up Jira**, or **Reinstall Jira**, follow that action and retry.
60+
* **No run starts** - Confirm the automation is saved, the event class matches, and every configured project, label, status, assignee, or mention filter matches the Jira change.
61+
* **Writeback fails** - Check that the app can access the issue's project and perform the requested Jira action, including the target workflow transition.
62+
63+
For other intake paths and provider boundaries, see [connecting your factory](../connect-your-factory).

src/sidebar.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,7 @@ export const sidebarTopics: StarlightSidebarTopicsUserConfig = [
374374
// Icon is a placeholder (gear) -- Starlight's built-in icon set has no
375375
// literal factory glyph. A true factory icon would need a custom icon
376376
// library plugin + Sidebar component override; revisit post-launch.
377+
id: 'factories',
377378
label: 'Factories',
378379
link: '/factories/',
379380
icon: 'setting',

0 commit comments

Comments
 (0)