Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Manage Jira issues on self-hosted or enterprise Jira instances using Personal Access Tokens in SSO/SAML environments where Basic Auth fails.
Manage Jira issues on self-hosted or enterprise Jira instances using Personal Access Tokens in SSO/SAML environments where Basic Auth fails.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Manage Jira issues on self-hosted/enterprise Jira instances using Personal Access Tokens (PAT). This skill is designed for environments where Basic Auth doesn't work due to SSO/SAML authentication.
Use this skill when working with: Self-hosted Jira instances (e.g., Red Hat, enterprise deployments) Jira instances with SSO/SAML authentication Environments where jira-cli or Basic Auth fails Note: For Atlassian Cloud with email + API token auth, use the clawdbot-jira-skill instead.
Personal Access Token (PAT): Create one in Jira: Go to your Jira profile โ Personal Access Tokens Create a new token with appropriate permissions Store it in environment variable JIRA_PAT Jira Base URL: Your Jira instance URL in JIRA_URL
export JIRA_PAT="your-personal-access-token" export JIRA_URL="https://issues.example.com"
This skill uses curl and jq for all operations.
Fetch full details of a Jira issue: curl -s -H "Authorization: Bearer $JIRA_PAT" \ "$JIRA_URL/rest/api/2/issue/PROJECT-123" | jq Get specific fields only: curl -s -H "Authorization: Bearer $JIRA_PAT" \ "$JIRA_URL/rest/api/2/issue/PROJECT-123?fields=summary,status,description" | jq
# Find child issues of an epic curl -s -H "Authorization: Bearer $JIRA_PAT" \ "$JIRA_URL/rest/api/2/search?jql=parent=EPIC-123" | jq # Complex queries (URL-encoded) curl -s -H "Authorization: Bearer $JIRA_PAT" \ "$JIRA_URL/rest/api/2/search?jql=project%3DPROJ%20AND%20status%3DOpen" | jq Common JQL patterns: parent=EPIC-123 - Child issues of an epic project=PROJ AND status=Open - Open issues in project assignee=currentUser() - Your assigned issues labels=security - Issues with specific label updated >= -7d - Recently updated
Before changing status, query available transitions: curl -s -H "Authorization: Bearer $JIRA_PAT" \ "$JIRA_URL/rest/api/2/issue/PROJECT-123/transitions" | jq '.transitions[] | {id, name}'
Close an issue with a comment: curl -s -X POST \ -H "Authorization: Bearer $JIRA_PAT" \ -H "Content-Type: application/json" \ -d '{ "transition": {"id": "61"}, "update": { "comment": [{"add": {"body": "Closed via API"}}] } }' \ "$JIRA_URL/rest/api/2/issue/PROJECT-123/transitions"
curl -s -X POST \ -H "Authorization: Bearer $JIRA_PAT" \ -H "Content-Type: application/json" \ -d '{"body": "Comment added via API."}' \ "$JIRA_URL/rest/api/2/issue/PROJECT-123/comment"
curl -s -X PUT \ -H "Authorization: Bearer $JIRA_PAT" \ -H "Content-Type: application/json" \ -d '{ "fields": { "summary": "Updated summary", "labels": ["api", "automated"] } }' \ "$JIRA_URL/rest/api/2/issue/PROJECT-123"
curl -s -X POST \ -H "Authorization: Bearer $JIRA_PAT" \ -H "Content-Type: application/json" \ -d '{ "fields": { "project": {"key": "PROJ"}, "summary": "New issue via API", "description": "Issue description", "issuetype": {"name": "Task"}, "parent": {"key": "EPIC-123"} } }' \ "$JIRA_URL/rest/api/2/issue"
# Summary and status jq '{key: .key, summary: .fields.summary, status: .fields.status.name}' # List search results jq '.issues[] | {key: .key, summary: .fields.summary, status: .fields.status.name}' # Issue links jq '.fields.issuelinks[] | {type: .type.name, key: (.inwardIssue // .outwardIssue).key}'
ErrorCauseSolution401 UnauthorizedInvalid/expired PATRegenerate token, check Bearer format404 Not FoundIssue doesn't exist or no accessVerify issue key and permissions400 Bad Request on transitionInvalid transition IDQuery available transitions first
This skill uses Bearer token authentication (Authorization: Bearer <PAT>), which works with self-hosted Jira instances using SSO/SAML. For Atlassian Cloud with email + API token, use skills that implement Basic Auth instead.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.