# Send Jira REST API v3 Commons to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "jira-rest-v3",
    "name": "Jira REST API v3 Commons",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/TheCyberCore/jira-rest-v3",
    "canonicalUrl": "https://clawhub.ai/TheCyberCore/jira-rest-v3",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/jira-rest-v3",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=jira-rest-v3",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "manifest.json",
      "SKILL.md",
      "refs/app-embedding-quickref.md",
      "refs/jira-json-quickref.md",
      "refs/jql-cheatsheet.md",
      "refs/openclaw_env_example.json"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "jira-rest-v3",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-04T13:37:14.331Z",
      "expiresAt": "2026-05-11T13:37:14.331Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=jira-rest-v3",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=jira-rest-v3",
        "contentDisposition": "attachment; filename=\"jira-rest-v3-1.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "jira-rest-v3"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/jira-rest-v3"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/jira-rest-v3",
    "downloadUrl": "https://openagent3.xyz/downloads/jira-rest-v3",
    "agentUrl": "https://openagent3.xyz/skills/jira-rest-v3/agent",
    "manifestUrl": "https://openagent3.xyz/skills/jira-rest-v3/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/jira-rest-v3/agent.md"
  }
}
```
## Documentation

### What this skill is for

Use this skill to perform everyday Jira work from openClaw:

find/triage issues (JQL search)
read/update issues (fields, assignee, status transition)
create issues
manage comments (list/add/update/delete)
log time (worklogs)
work with boards/backlogs/sprints (Jira Software Agile API)

This skill assumes Jira Cloud.

### Required environment variables (openclaw.json -> "env")

All variables MUST use the ATREST_ prefix.

### Jira site + authentication

ATREST_JIRA_BASE_URL

Example: https://your-domain.atlassian.net
Do NOT include a trailing slash.


ATREST_JIRA_AUTH_MODE

basic (recommended for scripts) or bearer


ATREST_JIRA_EMAIL

Required when ATREST_JIRA_AUTH_MODE=basic


ATREST_JIRA_API_TOKEN

Required when ATREST_JIRA_AUTH_MODE=basic


ATREST_JIRA_BEARER_TOKEN

Required when ATREST_JIRA_AUTH_MODE=bearer


ATREST_JIRA_USER_AGENT

Example: openClaw-jira-atrest/1.0

### Defaults (optional but practical)

ATREST_JIRA_DEFAULT_PROJECT_KEY
ATREST_JIRA_DEFAULT_ISSUE_TYPE

Example: Task, Bug, Story


ATREST_JIRA_DEFAULT_BOARD_ID
ATREST_JIRA_DEFAULT_MAX_RESULTS

Example: 50


ATREST_JIRA_DEFAULT_FIELDS

Comma-separated list for search/read, e.g. summary,status,assignee,priority,updated

### Resilience (optional)

ATREST_HTTP_TIMEOUT_MS (e.g. 30000)
ATREST_HTTP_RETRY_MAX (e.g. 3)
ATREST_HTTP_RETRY_BACKOFF_MS (e.g. 1000)

See also: refs/openclaw_env_example.json.

### API base paths (two families)

Jira Cloud Platform REST API v3 (issues, comments, projects, users, worklogs, …)

Base: ${ATREST_JIRA_BASE_URL}/rest/api/3

Jira Software Agile REST API (boards, sprints, backlog, ranking, …)

Base: ${ATREST_JIRA_BASE_URL}/rest/agile/1.0

### If AUTH_MODE = basic

Use HTTP Basic Auth with email + API token.
Either:

Set Authorization: Basic base64(email:apiToken), or
Use the HTTP client’s built-in basic auth feature (username=email, password=api token).

### If AUTH_MODE = bearer

Set Authorization: Bearer ${ATREST_JIRA_BEARER_TOKEN}

Never print secrets, never echo tokens into logs, never store tokens in repo.

### Rich-text fields (ADF)

Jira Cloud v3 uses Atlassian Document Format (ADF) for:

issue description, environment, and textarea custom fields
comment body
worklog comment

When the user provides plain text, wrap it into minimal ADF.
See refs/jira-json-quickref.md#adf-minimal.

### ATREST request contract (openClaw)

When executing a command, perform an HTTP request with:

method: GET|POST|PUT|DELETE
url: ${ATREST_JIRA_BASE_URL} + path
headers:

Accept: application/json
Content-Type: application/json (for JSON bodies)
User-Agent: ${ATREST_JIRA_USER_AGENT} (if set)
Authorization: ... (per auth mode)


query: object (encoded as querystring)
body: object (JSON)

Always:

handle pagination (see each command)
handle 429 rate limits (respect Retry-After if present, then retry with backoff)
handle 401/403 by reporting missing permissions/auth setup
for destructive actions (delete), ask for explicit confirmation unless the user already asked to delete.

### jira.projects.search

GET /rest/api/3/project/search
Query: startAt, maxResults, (optional filters per Jira)
Use for: selecting a project id/key, listing available projects.
Output: id, key, name, projectTypeKey/style if available.

### jira.users.search

GET /rest/api/3/user/search
Query: query (string), optional pagination params supported by Jira
Use for: resolving a person name/email fragment into accountId.

### jira.issues.searchJql (Enhanced search)

GET /rest/api/3/search/jql  (or POST for very long JQL)
Query: jql, nextPageToken, maxResults, fields[], expand, properties[], fieldsByKeys, failFast, reconcileIssues[]
Pagination: use nextPageToken until isLast=true.
Default: use ATREST_JIRA_DEFAULT_MAX_RESULTS and ATREST_JIRA_DEFAULT_FIELDS if provided.
Output: list of issues with key fields.

### jira.issues.get

GET /rest/api/3/issue/{issueIdOrKey}
Query: fields (comma-separated or array, depending on client), expand
Output: key, summary, status, assignee, description (ADF), priority, labels, updated.

### jira.issues.changelog

GET /rest/api/3/issue/{issueIdOrKey}/changelog
Query: startAt, maxResults
Output: recent changes (field, from, to, author, created).

### jira.issues.create

POST /rest/api/3/issue
Body: see refs/jira-json-quickref.md#issue-create
Required fields: project, issuetype, summary
Common optional: description (ADF), priority, labels, assignee (accountId)
Output: created issue key + self link.

### jira.issues.edit

PUT /rest/api/3/issue/{issueIdOrKey}
Query: notifyUsers, returnIssue, overrideScreenSecurity, overrideEditableFlag, expand
Body: fields and/or update (operations)
Rule: transitions are NOT done here (use transitions endpoint).
Body reference: refs/jira-json-quickref.md#issue-edit
Output: 204 (no content) unless returnIssue=true (then return updated issue).

### jira.issues.assign

PUT /rest/api/3/issue/{issueIdOrKey}/assignee
Body: { "accountId": "..." } (or null for unassigned where allowed)
Use for: assigning to a user by accountId.
Output: 204.

### jira.issues.transitions.list

GET /rest/api/3/issue/{issueIdOrKey}/transitions
Query: expand, optional filters supported by Jira
Use for: retrieving available workflow transitions (and ids).
Output: list transitions: id, name, to.status.

### jira.issues.transitions.apply

POST /rest/api/3/issue/{issueIdOrKey}/transitions
Body: { "transition": { "id": "X" }, ... } optionally plus update.comment.add etc.
Body reference: refs/jira-json-quickref.md#issue-transition
Output: 204.

### jira.issues.delete  (destructive)

DELETE /rest/api/3/issue/{issueIdOrKey}
Query: deleteSubtasks (optional)
Require explicit user intent before calling.
Output: 204.

### jira.comments.list

GET /rest/api/3/issue/{issueIdOrKey}/comment
Query: startAt, maxResults, orderBy, expand
Output: comment id, author, created/updated, body (ADF), visibility.

### jira.comments.add

POST /rest/api/3/issue/{issueIdOrKey}/comment
Body: { "body": <ADF>, "visibility": <optional>, "properties": <optional> }
Body reference: refs/jira-json-quickref.md#comment-add
Output: created comment (id, timestamps, body).

### jira.comments.update

PUT /rest/api/3/issue/{issueIdOrKey}/comment/{id}
Body: same shape as add (body/visibility/properties)
Output: updated comment.

### jira.comments.delete  (destructive)

DELETE /rest/api/3/issue/{issueIdOrKey}/comment/{id}
Require explicit user intent before calling.
Output: 204.

### jira.worklogs.list

GET /rest/api/3/issue/{issueIdOrKey}/worklog
Output: worklog entries (id, author, started, timeSpentSeconds, comment ADF).

### jira.worklogs.add

POST /rest/api/3/issue/{issueIdOrKey}/worklog
Body reference: refs/jira-json-quickref.md#worklog-add
Output: created worklog.

### jira.boards.list

GET /rest/agile/1.0/board
Query: startAt, maxResults, filters like type, name, projectKeyOrId, etc.
Output: board id, name, type.

### jira.boards.get

GET /rest/agile/1.0/board/{boardId}
Output: board details (location, type).

### jira.boards.backlog

GET /rest/agile/1.0/board/{boardId}/backlog
Query: startAt, maxResults, jql, fields, expand
Output: backlog issues.

### jira.boards.issues

GET /rest/agile/1.0/board/{boardId}/issue
Query: startAt, maxResults, jql, fields, expand
Output: issues currently on the board (by board column mapping).

### jira.boards.sprints

GET /rest/agile/1.0/board/{boardId}/sprint
Query: startAt, maxResults, state
Output: sprints (id, name, state, dates).

### jira.boards.sprint.issues

GET /rest/agile/1.0/board/{boardId}/sprint/{sprintId}/issue
Query: startAt, maxResults, optional filters
Output: issues in that sprint (board view).

### jira.sprints.create

POST /rest/agile/1.0/sprint
Body reference: refs/jira-json-quickref.md#sprint-create
Output: created sprint.

### jira.sprints.get

GET /rest/agile/1.0/sprint/{sprintId}
Output: sprint details.

### jira.sprints.update

PUT /rest/agile/1.0/sprint/{sprintId}
Body: full sprint object fields (note: missing fields become null!)
Use for: rename, goal, start/close by state changes when allowed.

### jira.sprints.issues

GET /rest/agile/1.0/sprint/{sprintId}/issue
Output: sprint issues.

### jira.sprints.addIssues

POST /rest/agile/1.0/sprint/{sprintId}/issue
Body: { "issues": ["PROJ-1","PROJ-2", ...] }
Output: 204 on success.

### Output conventions (recommended)

When replying to the user after an API call:

For issue lists: show KEY — Summary (Status) [Assignee] updated <date>
For single issue: show key fields + the user-requested detail (description/comments/etc.)
For updates/transitions: confirm what changed + resulting status/assignee

### Quickref — embedding app data into Jira issue text

For patterns and ready-to-copy ADF payload snippets (including an example for “ContentCraft: Mermaid Diagrams for Jira”), see:

refs/app-embedding-quickref.md

### JSON references

refs/jira-json-quickref.md (payload shapes, short parameter notes, ADF helper)
refs/jql-cheatsheet.md (ready-to-use JQL patterns)
refs/openclaw_env_example.json (env snippet)
refs/app-embedding-quickref.md (how to embed app data into Jira text bodies; includes ContentCraft Mermaid example)
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: TheCyberCore
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-04T13:37:14.331Z
- Expires at: 2026-05-11T13:37:14.331Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/jira-rest-v3)
- [Send to Agent page](https://openagent3.xyz/skills/jira-rest-v3/agent)
- [JSON manifest](https://openagent3.xyz/skills/jira-rest-v3/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/jira-rest-v3/agent.md)
- [Download page](https://openagent3.xyz/downloads/jira-rest-v3)