Jira integration
In short
Search, create and update issues, comments and transitions. Connect it on the Integrations page; your app then calls Jira through Sapilon without ever holding an Atlassian credential.
Lets your app search issues with JQL, create and update issues, add comments and move issues through their workflow on a Jira Cloud site, with an Atlassian API token.
The app acts as the account the token belongs to and sees only what that account can see.
Connecting
On the Integrations page choose Connect on Jira and fill in:
- Site name — The part before .atlassian.net in your Jira address.
- Account email — The email of the Atlassian account the token belongs to. Use a shared service account for anything long-lived.
- API token — id.atlassian.com/manage-profile/security/api-tokens → Create API token.
Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.
- Jira Cloud only; Jira Data Center is not supported.
What your app can do
Only these requests are available; anything else is refused.
GET /myselfGET /project/searchGET|POST /search/jqlPOST /issueGET|PUT /issue/*GET|POST /issue/*/commentGET|POST /issue/*/transitions
How the agent uses it
Use integrations.request('jira', …); paths are relative to https://<site>.atlassian.net/rest/api/3.
GET /myself— the connected account.GET /project/search— projects. Example:{ method: 'GET', path: '/project/search' }.GET|POST /search/jql— search with JQL. Example:{ method: 'POST', path: '/search/jql', body: { jql: 'project = OPS AND status != Done', fields: ['summary', 'status', 'assignee'], maxResults: 50 } }; page withnextPageToken.POST /issue— create. Example:{ method: 'POST', path: '/issue', body: { fields: { project: { key: 'OPS' }, issuetype: { name: 'Task' }, summary: 'Renew certificate' } } }.GET|PUT /issue/{key}— read or update fields. Example:{ method: 'PUT', path: '/issue/OPS-12', body: { fields: { summary: 'Renew TLS certificate' } } }.GET|POST /issue/{key}/comment— Comment bodies are Atlassian Document Format:body: { body: { type: 'doc', version: 1, content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Done' }] }] } }.GET|POST /issue/{key}/transitions— list the available transitions, then move:body: { transition: { id: '31' } }.
Deleting is not allowed.
More from Atlassian: https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/