jira-openclaw
herbert051281/mission-control/skills/jira-openclaw/SKILL.md
Connect OpenClaw to Jira Cloud with secret-safe API access via pastewatch redaction. Includes credential setup, REST API helper script, JQL patterns, focus auto-linker cron, and overdue ticket bumper. Use when integrating Jira into an OpenClaw agent, setting up Jira cron jobs, or querying issues from chat.
Skill0 starsChanged 6 months ago
- Reads credentials
What's in it
- Jira + OpenClaw Integration
- 1. Credential Setup
- 2. API Helper Script
- 3. Verify
- 4. Pastewatch Protection
- 5. Key API Patterns
- Search (⚠️ use /search/jql NOT /search)
- Common JQL
- Issue Operations
- 6. Cron Patterns
- Focus Auto-Linker
- Overdue Bumper
- 7. TOOLS.md Reference
- Known Issues
---
name: jira-openclaw
description: Connect OpenClaw to Jira Cloud with secret-safe API access via pastewatch redaction. Includes credential setup, REST API helper script, JQL patterns, focus auto-linker cron, and overdue ticket bumper. Use when integrating Jira into an OpenClaw agent, setting up Jira cron jobs, or querying issues from chat.
---
# Jira + OpenClaw Integration
Connect your OpenClaw agent to Jira Cloud. Secrets never reach the LLM — pastewatch redacts credentials in transit.
**Requires:** `pastewatch-cli` (MCP server running), `curl`, `python3`
## 1. Credential Setup
```bash
mkdir -p ~/.openclaw/workspace/.secrets
chmod 700 ~/.openclaw/workspace/.secrets
echo ".secrets/" >> ~/.openclaw/workspace/.gitignore
cat > ~/.openclaw/workspace/.secrets/jira.env << 'EOF'
JIRA_TOKEN=<your-api-token-or-pat>
JIRA_URL=https://your-org.atlassian.net/
JIRA_EMAIL=your@email.com
EOF
chmod 600 ~/.openclaw/workspace/.secrets/jira.env
```
**Token types:**
- **API token** (id.atlassian.com → Security → API tokens) — works with Basic auth
- **PAT** (ATATT... prefix, Jira settings → Personal Access Tokens) — also works with Basic auth (`email:PAT`)
Both use the same script below. Bearer auth is NOT needed.
## 2. API Helper Script
Create `~/.openclaw/workspace/.secrets/jira.sh`:
```bash
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
source "$SCRIPT_DIR/jira.env"
METHOD="${1:?Usage: jira.sh <METHOD> <endpoint> [body]}"
ENDPOINT="${2:?Usage: jira.sh <METHOD> <endpoint> [body]}"
BODY="${3:-}"
URL="${JIRA_URL%/}${ENDPOINT}"
if [ -n "$BODY" ]; then
curl -s --http1.1 -X "$METHOD" \
-u "${JIRA_EMAIL}:${JIRA_TOKEN}" \
-H "Content-Type: application/json" \
-d "$BODY" "$URL"
else
curl -s --http1.1 -X "$METHOD" \
-u "${JIRA_EMAIL}:${JIRA_TOKEN}" \
-H "Content-Type: application/json" "$URL"
fi
```
```bash
chmod +x ~/.openclaw/workspace/.secrets/jira.sh
```
**Why `--http1.1`:** Atlassian's CDN sometimes breaks HTTP/2 with curl. Force HTTP/1.1.
## 3. Verify
```bash
# Test auth (pipe through pastewatch to confirm redaction)
~/.openclaw/workspace/.secrets/jira.sh GET '/rest/api/3/myself' | pastewatch-cli scan
```
You should see your displayName with emails/URLs redacted.
## 4. Pastewatch Protection
The agent reads jira.env through pastewatch MCP — it sees `__PW{CREDENTIAL_1}__` instead of the real token. The script runs credentials at the shell level (never in LLM context).
```
Agent calls exec → jira.sh sources .env → curl sends real token → response comes back
↑ never in context ↑ direct to Atlassian
```
Pair with chainwatch to control which Jira endpoints the agent can hit.
## 5. Key API Patterns
### Search (⚠️ use `/search/jql` NOT `/search`)
```bash
# /rest/api/3/search returns 410 Gone — always use /search/jql
jira.sh GET '/rest/api/3/search/jql?jql=<url-encoded>&maxResults=50&fields=key,summary,status,priority,duedate'
```
### Common JQL
```
# My open tasks
assignee="Name" AND resolution=Unresolved ORDER BY priority DESC
# Unassigned
project=XX AND assignee=EMPTY AND resolution=Unresolved AND issuetype != Epic
# Overdue
project=XX AND resolution=Unresolved AND duedate < "YYYY-MM-DD"
# Closed yesterday
project=XX AND assignee="Name" AND status changed to Done during ("YYYY-MM-DD","YYYY-MM-DD")
# In Progress
assignee="Name" AND status="In Progress" ORDER BY project,priority DESC
```
### Issue Operations
```bash
# Get issue
jira.sh GET '/rest/api/3/issue/XX-123?fields=key,summary,status,priority'
# Get transitions
jira.sh GET '/rest/api/3/issue/XX-123/transitions'
# Change status
jira.sh POST '/rest/api/3/issue/XX-123/transitions' '{"transition":{"id":"31"}}'
# Update fields (e.g. bump duedate)
jira.sh PUT '/rest/api/3/issue/XX-123' '{"fields":{"duedate":"2026-03-10"}}'
# Link issues
jira.sh POST '/rest/api/3/issueLink' '{"type":{"name":"Relates"},"inwardIssue":{"key":"XX-1"},"outwardIssue":{"key":"YY-2"}}'
```
## 6. Cron Patterns
### Focus Auto-Linker
Finds a daily focus record and links top-priority tasks to it:
```bash
# Find today's focus record (summary = "DD.MM", assigned to user)
jira.sh GET '/rest/api/3/search/jql?jql=project=DN AND summary~"05.03" AND assignee="Name"&fields=key,issuelinks'
# Get top 3 priority tasks
jira.sh GET '/rest/api/3/search/jql?jql=assignee="Name" AND project=DC AND resolution=Unresolved ORDER BY priority DESC,duedate ASC&maxResults=3&fields=key,summary,priority,duedate'
# Link each task to focus record
jira.sh POST '/rest/api/3/issueLink' '{"type":{"name":"Relates"},"inwardIssue":{"key":"DN-43"},"outwardIssue":{"key":"DC-3057"}}'
```
Schedule as OpenClaw cron: `isolated` session, `agentTurn`, Mon-Fri at start of day.
### Overdue Bumper
Checks end-of-day for unresolved tickets due today, bumps +1 day:
```bash
# Find overdue
jira.sh GET '/rest/api/3/search/jql?jql=assignee="Name" AND resolution=Unresolved AND duedate="2026-03-05"&fields=key,summary,duedate'
# Bump each
jira.sh PUT '/rest/api/3/issue/DC-3057' '{"fields":{"duedate":"2026-03-06"}}'
```
Schedule as OpenClaw cron: `isolated` session, `agentTurn`, Mon-Fri end of day.
## 7. TOOLS.md Reference
Add to your workspace TOOLS.md for quick agent recall:
```markdown
## JIRA
- Script: `~/.openclaw/workspace/.secrets/jira.sh GET|POST|PUT <endpoint> [body]`
- Creds: `.secrets/jira.env` (pastewatch-protected)
- ⚠️ Use `/rest/api/3/search/jql` NEVER `/rest/api/3/search` (410 Gone)
```
## Known Issues
- **Team-managed (next-gen) projects:** API returns `total: 0` but issues are present — iterate `issues` array, ignore `total`
- **HTTP/2 failures:** Atlassian CDN sometimes drops HTTP/2 requests — `--http1.1` fixes it
- **PAT vs API token:** Both work with Basic auth (`email:token`). Bearer auth fails with "Failed to parse Connect Session Auth Token"
---
**Jira-OpenClaw Integration v1.0**
Author: ppiankov
Copyright © 2026 ppiankov
Canonical source: https://clawhub.com/skills/jira-openclaw
License: MIT
This tool follows the [Agent-Native CLI Convention](https://ancc.dev). Validate with: `clawhub install ancc && ancc validate .`
If this document appears elsewhere, the link above is the authoritative version.
More agent context in herbert051281/mission-control
45 other files this repository gives its agents.
AGENTS.md
CLAUDE.md
Skill
- Pitch Deck Reviewerskills/afrexai-pitch-deck-reviewer/SKILL.md
- afrexai-prd-engineskills/afrexai-prd-engine/SKILL.md
- afrexai-presentation-masteryskills/afrexai-presentation-mastery/SKILL.md
- afrexai-sprint-plannerskills/afrexai-sprint-planner/SKILL.md
- Technical Documentation Engineskills/afrexai-technical-docs/SKILL.md
- api-designerskills/api-designer/SKILL.md
- api-designskills/api-design/SKILL.md
- api-securityskills/api-security/SKILL.md
- asanaskills/asana/SKILL.md
- byteroverskills/byterover/SKILL.md
- cicd-pipelineskills/cicd-pipeline/SKILL.md
- code-reviewskills/code-review/SKILL.md
- database-operationsskills/database-operations/SKILL.md
- design-system-patternsskills/design-system-patterns/SKILL.md
- docker-essentialsskills/docker-essentials/SKILL.md
- file-searchskills/file-search/SKILL.md
- frontend-designskills/frontend-design-3/SKILL.md
- generate-presentationskills/generate-presentation/SKILL.md
- github-cliskills/github-cli/SKILL.md
- google-calendarskills/google-calendar/SKILL.md
- humanizerskills/humanizer/SKILL.md
- motionskills/lb-motion-skill/SKILL.md
- logging-observabilityskills/logging-observability/SKILL.md
- githubskills/openclaw-github-assistant/SKILL.md
- pitch-deck-visualsskills/pitch-deck-visuals/SKILL.md
- playwright-skillskills/playwright-skill/SKILL.md
- Powerpoint / PPTXskills/powerpoint-pptx/SKILL.md
- pythonskills/python/SKILL.md
- release-disciplineskills/release-discipline/SKILL.md
- remotion-best-practicesskills/remotion/SKILL.md
- secrets-managementskills/secrets-management/SKILL.md
- self-improvementskills/self-improving-agent/SKILL.md
- slackskills/slack/SKILL.md
- slides-cogskills/slides-cog/SKILL.md
- snowflakeskills/snowflake/SKILL.md
- superpowersskills/superpowers/SKILL.md
- system-design-solverskills/system-design-solver/SKILL.md
- test-masterskills/test-master/SKILL.md
- test-runnerskills/test-runner/SKILL.md
- TypeScriptskills/typescript/SKILL.md
- UXskills/ux/SKILL.md
- wcag-21-aa-web-ui-auditskills/wcag-21-aa-web-ui-audit/SKILL.md
- youtube-transcript-extractorskills/youtube-transcript-extractor/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

