Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 19 additions & 8 deletions enterprise/integrations/jira-cloud.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Jira Cloud
description: Configure Jira Cloud for OpenHands Enterprise.

Check warning on line 3 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L3

Did you really mean 'Jira'?
icon: cloud
---

This guide explains how to connect Jira Cloud to an OpenHands Enterprise

Check warning on line 7 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L7

Did you really mean 'Jira'?
Replicated installation. The integration lets users start OpenHands from Jira

Check warning on line 8 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L8

Did you really mean 'Jira'?
issues by commenting with `@openhands` or by adding the `openhands` label.
OpenHands replies on the issue with a link to the conversation and posts the
result back when it finishes.
Expand All @@ -13,33 +13,33 @@
The resolver is also available on a
[standalone Helm installation](#enable-the-integration-with-helm).

Jira Cloud users are linked to OpenHands accounts by **email match**: no

Check warning on line 16 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L16

Did you really mean 'Jira'?
Atlassian OAuth app is required, and users need no per-user setup beyond

Check warning on line 17 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L17

Did you really mean 'Atlassian'?
making their email visible (see [User requirements](#user-requirements)).
Users are enrolled automatically the first time they trigger OpenHands.

To trigger an **automation** from a Jira event instead, register a separate

Check warning on line 21 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L21

Did you really mean 'Jira'?
[custom webhook](/openhands/usage/automations/event-automations#custom-webhooks).
The resolver webhook described below does not deliver events to automations.

Check warning on line 23 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L23

Did you really mean 'automations'?

## Prerequisites

- Jira Cloud **site administrator** access, to invite the service account and
register a webhook. The account creating the system webhook needs
**Administer Jira** permission; the service account only needs project access.

Check warning on line 29 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L29

Did you really mean 'Jira'?
- An OpenHands Enterprise **organization admin or owner** account, to
configure the integration inside OpenHands.
- Network access from Jira Cloud to the OpenHands app URL over HTTPS with a
publicly trusted certificate (for webhook delivery), and from OpenHands to
`api.atlassian.com` (for Jira API calls).

Check warning on line 34 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L34

Did you really mean 'Jira'?

## Create a service account

Create a dedicated Atlassian account for OpenHands, for example

Check warning on line 38 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L38

Did you really mean 'Atlassian'?
`openhands-bot@company.com`. OpenHands uses this account to read issues and
post comments, and its replies appear under this account's name.

1. Invite the account to your Jira site and grant it access to every project

Check warning on line 42 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L42

Did you really mean 'Jira'?
where OpenHands should read and comment.
2. Log in as the service account and create an API token at
**id.atlassian.com → Security → API tokens**. Save the token somewhere
Expand All @@ -54,10 +54,10 @@
## Enable the integration in the Admin Console

1. In the OpenHands Enterprise Admin Console, open **Config** and check
**Enable Jira Cloud Integration** under **Jira Cloud Integration**.

Check warning on line 57 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L57

Did you really mean 'Jira'?

Check warning on line 57 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L57

Did you really mean 'Jira'?
2. Save and deploy the new version, and wait for the rollout to finish.

Check warning on line 58 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L58

Did you really mean 'rollout'?

After the deploy, a **Jira** card appears under **Settings → Integrations**

Check warning on line 60 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L60

Did you really mean 'Jira'?
in the OpenHands app.

## Enable the integration with Helm
Expand All @@ -79,27 +79,27 @@
--values values.yaml
```

Wait for the rollout to finish. The **Jira** card then appears under

Check warning on line 82 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L82

Did you really mean 'rollout'?

Check warning on line 82 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L82

Did you really mean 'Jira'?
**Settings → Integrations** in the OpenHands app. Enter the service account
credentials and webhook secret in OpenHands, not in Helm values.

## Configure the workspace in OpenHands

As an organization admin or owner, open **Settings → Integrations → Jira**

Check warning on line 88 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L88

Did you really mean 'Jira'?
in OpenHands and select **Configure**. On a new installation, the
**Link Workspace** screen appears first. Enter the workspace hostname and

Check warning on line 90 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L90

Did you really mean 'hostname'?
select **Connect**. Then complete the administrator form:

- **Workspace**: the full site hostname, for example
`yourcompany.atlassian.net`. Webhook events are matched against this
hostname, so the bare site name is not sufficient.

Check warning on line 95 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L95

Did you really mean 'hostname'?
- **Service account email**: the service account's email address.
- **Service account API token**: the token created above. The credentials are
validated against Jira when you save, so a typo fails immediately.

Check warning on line 98 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L98

Did you really mean 'Jira'?
- **Webhook secret**: choose a strong secret. You will paste the same secret
into Jira in the next step.

Check warning on line 100 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L100

Did you really mean 'Jira'?

After saving, the Jira card shows **Edit** for changes to this connection.

Check warning on line 102 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L102

Did you really mean 'Jira'?

Save, then copy the **events URL** shown below the webhook secret field. It
has the form:
Expand All @@ -108,13 +108,13 @@
https://app.<your-openhands-domain>/integration/jira/events
```

## Register the webhook in Jira

Check warning on line 111 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L111

Did you really mean 'Jira'?

In Jira, open **Settings (gear icon) → System → WebHooks** and create a

Check warning on line 113 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L113

Did you really mean 'Jira'?
webhook:

- **URL**: the events URL copied above.
- **Secret**: the same webhook secret entered in OpenHands. Jira uses it to

Check warning on line 117 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L117

Did you really mean 'Jira'?
sign deliveries, and OpenHands rejects unsigned or mis-signed events.
- **Events**: check **Issue → updated** and **Comment → created**. These are
the only two events OpenHands processes.
Expand All @@ -122,25 +122,25 @@
`project = ENG`).
- Leave the request body included (do not check "Exclude body").

Use a regular Jira account to test the resolver after completing the

Check warning on line 125 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L125

Did you really mean 'Jira'?
[user requirements](#user-requirements). On an issue covered by the webhook,
comment `@openhands` followed by a read-only request. Confirm that OpenHands
posts a conversation link on that issue.

## User requirements

Each user who wants to trigger OpenHands from Jira must satisfy two

Check warning on line 132 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L132

Did you really mean 'Jira'?
conditions:

1. **Matching email**: the user's Atlassian account email must exactly match

Check warning on line 135 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L135

Did you really mean 'Atlassian'?
their OpenHands login email.
2. **Visible email**: in the user's Atlassian account settings

Check warning on line 137 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L137

Did you really mean 'Atlassian'?
(**id.atlassian.com → Profile and visibility → Contact → Email address**),
visibility must be set to **Anyone**. Jira omits the email from webhook

Check warning on line 139 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L139

Did you really mean 'Jira'?
payloads otherwise, and OpenHands cannot match the user without it.

<Warning>
Atlassian can take 15 minutes or more to propagate an email-visibility

Check warning on line 143 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L143

Did you really mean 'Atlassian'?
change into webhook payloads. If OpenHands replies that it could not
determine your email address right after you changed the setting, wait and
try again before assuming the setting is wrong.
Expand All @@ -153,31 +153,40 @@

- Comment `@openhands` followed by instructions on any issue in a project the
webhook covers, or add the `openhands` label to the issue. Both the typed
literal text and the mention selected from Jira's autocomplete picker work.

Check warning on line 156 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L156

Did you really mean 'Jira's'?
- To have OpenHands work in a repository, include the repository URL (for
example `https://gitlab.com/group/project` or
`https://github.com/org/repo`) in the issue description or the comment. The
triggering user must have that Git provider connected in OpenHands, and
exactly one repository should be mentioned. Without a repository, OpenHands
still answers on the issue but works without a workspace.

OpenHands reacts with a comment linking to the conversation, and the service
account posts the result back to the issue when the run completes.
triggering user must have that Git provider connected in OpenHands. Without
a repository, OpenHands still answers on the issue but works without a
workspace.
- To work across several repositories, mention each of them. OpenHands starts
one conversation with all the repositories it can access, up to ten.
Repositories named in the comment come first, then those in the issue
description; the first one becomes the main repository and the others are
cloned beside it.

OpenHands reacts with a comment linking to the conversation and naming the
repositories it started with. The same comment lists any repository from your
comment that it could not access, and any beyond the limit of ten. If none of
the mentioned repositories can be accessed, OpenHands says so and does not
start. The service account posts the result back to the issue when the run
completes.

## Trigger Automations from Jira

Check warning on line 176 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L176

Did you really mean 'Automations'?

Check warning on line 176 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L176

Did you really mean 'Jira'?

Jira-triggered automations use a **second Jira system webhook**. The resolver

Check warning on line 178 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L178

Did you really mean 'Jira'?

Check warning on line 178 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L178

Did you really mean 'automations'?
URL ending in `/integration/jira/events` only handles mentions and labels; it
does not feed the automation service.

First, enable the automation service on your installation. Follow
[Custom Webhooks](/openhands/usage/automations/event-automations#custom-webhooks)
to create an OpenHands API key and register a custom source. For Jira Cloud,

Check warning on line 184 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L184

Did you really mean 'Jira'?
use a distinct source name and these registration fields:

```json
{
"name": "Jira issue events",

Check warning on line 189 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L189

Did you really mean 'Jira'?
"source": "jira-issues",
"event_key_expr": "webhookEvent",
"signature_header": "X-Hub-Signature"
Expand All @@ -200,13 +209,15 @@
propagated yet. Verify the exact setting and retry after 15 minutes.
- **A mention does nothing, with no reply at all**: check that the comment
was not made by the service account (those are ignored), that the user's
Atlassian email matches their OpenHands email, and that the webhook covers

Check warning on line 212 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L212

Did you really mean 'Atlassian'?
the issue's project. Jira Cloud does not show a delivery log for system
webhooks, so check the OpenHands logs (the `openhands-integrations`
workload) or collect a support bundle.
- **Logs show `403 Unidentified workspace`**: the Workspace field in the
OpenHands configuration does not equal the site hostname in the webhook

Check warning on line 217 in enterprise/integrations/jira-cloud.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

enterprise/integrations/jira-cloud.mdx#L217

Did you really mean 'hostname'?
payload. Re-open the configuration and set it to
`yourcompany.atlassian.net`.
- **OpenHands replies that multiple repositories were found**: mention
exactly one repository in the issue and comment text.
- **OpenHands replies "Could not access any of the mentioned
repositories"**: no conversation was started. Check each repository name,
and that the Git account connected to the triggering user's OpenHands
account can open it.
Loading