Update existing Jira issues in the DW project on Jira Cloud using curl and the REST API. Modify summary, description, status, assignee, priority, and other fields.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dwf-jira-admin-plugin:jira-updateThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Update existing Jira issues in the DW project using `curl` against the Jira REST API.
Update existing Jira issues in the DW project using curl against the Jira REST API.
DW-.Required environment variables (check before first use):
test -n "$JIRA_USER" && test -n "$JIRA_API_TOKEN" && echo "OK" || echo "MISSING: set JIRA_USER (email) and JIRA_API_TOKEN (API token from https://id.atlassian.com/manage-profile/security/api-tokens)"
If variables are missing, tell the user exactly what to set and stop.
| Setting | Value |
|---|---|
| Base URL | https://redhat.atlassian.net |
| Project | DW |
curl -s -u "$JIRA_USER:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
-X PUT \
-d '{
"fields": {
"summary": "Updated summary text"
}
}' \
"https://redhat.atlassian.net/rest/api/3/issue/DW-123"
A successful update returns HTTP 204 (no content). To confirm, fetch the issue after:
curl -s -u "$JIRA_USER:$JIRA_API_TOKEN" \
"https://redhat.atlassian.net/rest/api/3/issue/DW-123?fields=summary,status,assignee,priority" | python3 -m json.tool
Descriptions use Atlassian Document Format (ADF):
curl -s -u "$JIRA_USER:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
-X PUT \
-d '{
"fields": {
"description": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{"type": "text", "text": "New description text"}
]
}
]
}
}
}' \
"https://redhat.atlassian.net/rest/api/3/issue/DW-123"
curl -s -u "$JIRA_USER:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
-X PUT \
-d '{"fields": {"assignee": {"id": "ACCOUNT_ID"}}}' \
"https://redhat.atlassian.net/rest/api/3/issue/DW-123"
Look up account ID:
curl -s -u "$JIRA_USER:$JIRA_API_TOKEN" \
"https://redhat.atlassian.net/rest/api/3/user/[email protected]" | python3 -m json.tool
Status changes require a transition, not a field update.
Step 1 — Get available transitions:
curl -s -u "$JIRA_USER:$JIRA_API_TOKEN" \
"https://redhat.atlassian.net/rest/api/3/issue/DW-123/transitions" | python3 -m json.tool
Step 2 — Apply transition (use the id from step 1):
curl -s -u "$JIRA_USER:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{"transition": {"id": "31"}}' \
"https://redhat.atlassian.net/rest/api/3/issue/DW-123/transitions"
curl -s -u "$JIRA_USER:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"body": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{"type": "text", "text": "Comment text here"}
]
}
]
}
}' \
"https://redhat.atlassian.net/rest/api/3/issue/DW-123/comment" | python3 -m json.tool
Report: Updated DW-123 with a brief summary of what changed.
| Field | JSON Key | Value Format |
|---|---|---|
| Summary | summary | String |
| Description | description | ADF document (see above) |
| Priority | priority | {"name": "High"} |
| Assignee | assignee | {"id": "account-id"} |
| Labels | labels | ["label1", "label2"] |
| Components | components | [{"id": "component-id"}] |
npx claudepluginhub a7vicky/devops-claude-plugins --plugin dwf-jira-admin-pluginGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.