← 返回
未分类 Key 中文

jira-ticket

Create Jira tickets with web-researched content. Use when asked to create, file, or open a Jira issue/ticket/story/bug/task, especially when the ticket conte...
利用网络调研内容创建 Jira 工单。适用于创建、提交或打开 Jira 问题、工单、故事、Bug 或任务,尤其当工单内容需要进一步调研时。
cehd5170 cehd5170 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 431
下载
💾 2
安装
1
版本
#latest

概述

Jira Ticket Creator with Web Research

Create Jira tickets whose content is enriched by web search. Follow these phases in order.

Setup

Three environment variables are required:

  • JIRA_BASE_URL — your Atlassian instance (e.g. https://yourteam.atlassian.net)
  • JIRA_EMAIL — the email tied to your Atlassian account
  • JIRA_API_TOKEN — an API token from https://id.atlassian.com/manage-profile/security/api-tokens

All Jira API calls use Basic auth via curl -u and force HTTP/1.1:

curl --http1.1 -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" -H "Content-Type: application/json" "$JIRA_BASE_URL/rest/api/3/..."

Phase 1 — Parse Arguments

Parse the user's request to extract:

FieldRequiredDescription
------------------------------
projectyesJira project key (e.g. ENG, OPS)
issuetypenoTask, Bug, Story, Epic (default: Task)
summaryyesShort title for the ticket
search_querynoTopic to web-search for enriching the description
prioritynoHighest, High, Medium, Low, Lowest (default: Medium)
assigneenoAtlassian account email or ID
labelsnoComma-separated labels
componentsnoComma-separated component names

If the user does not provide a project key, ask for it before proceeding.


Phase 2 — Web Research (if applicable)

If the user asked for research, or if the ticket would benefit from context (e.g. a bug report referencing an external API, a story about integrating a third-party service):

  1. Use the web_search tool to search for the relevant topic.
  2. Use the xurl tool or curl to fetch key pages for details.
  3. Extract the most relevant information: error descriptions, API docs, best practices, version notes, or solution approaches.

Compile findings into a structured summary:

### Research Summary
- **Source**: [URL]
- **Key findings**: ...
- **Relevant details**: ...

If no research is needed, skip to Phase 3.


Phase 3 — Compose Ticket Content

Build the ticket description in Atlassian Document Format (ADF). Combine:

  • The user's original request/context
  • Research findings from Phase 2 (if any)
  • Acceptance criteria (when creating Stories)
  • Steps to reproduce (when creating Bugs)

Keep the description concise and actionable.

ADF Structure

Jira API v3 uses ADF for the description field. Minimal example:

{
  "type": "doc",
  "version": 1,
  "content": [
    {
      "type": "paragraph",
      "content": [{ "type": "text", "text": "Description text here." }]
    }
  ]
}

For richer formatting (headings, bullet lists, links):

{
  "type": "doc",
  "version": 1,
  "content": [
    {
      "type": "heading",
      "attrs": { "level": 3 },
      "content": [{ "type": "text", "text": "Summary" }]
    },
    {
      "type": "bulletList",
      "content": [
        {
          "type": "listItem",
          "content": [
            {
              "type": "paragraph",
              "content": [{ "type": "text", "text": "Item one" }]
            }
          ]
        }
      ]
    },
    {
      "type": "paragraph",
      "content": [
        { "type": "text", "text": "Source: " },
        {
          "type": "text",
          "text": "link text",
          "marks": [{ "type": "link", "attrs": { "href": "https://example.com" } }]
        }
      ]
    }
  ]
}

Phase 4 — Validate Project and Fields

Before creating the ticket, verify the project exists and discover available fields:

# Verify project
curl --http1.1 -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" -H "Content-Type: application/json" \
  "$JIRA_BASE_URL/rest/api/3/project/$PROJECT_KEY" | jq '{key, name, id}'

# List available issue types for the project
curl --http1.1 -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" -H "Content-Type: application/json" \
  "$JIRA_BASE_URL/rest/api/3/project/$PROJECT_KEY/statuses" | jq '.[].name'

If the project or issue type is invalid, report the error and ask the user to correct it.


Phase 5 — Create the Ticket

curl --http1.1 -s -X POST \
  -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
  -H "Content-Type: application/json" \
  "$JIRA_BASE_URL/rest/api/3/issue" \
  -d '{
    "fields": {
      "project": { "key": "PROJECT_KEY" },
      "summary": "Ticket summary here",
      "issuetype": { "name": "Task" },
      "priority": { "name": "Medium" },
      "description": { ADF_OBJECT },
      "labels": ["label1", "label2"]
    }
  }'

Extract the response:

# Parse response for issue key and URL
ISSUE_KEY=$(echo "$RESPONSE" | jq -r '.key')
ISSUE_URL="$JIRA_BASE_URL/browse/$ISSUE_KEY"

If the API returns an error, display the error message and suggest corrections.


Phase 6 — Report

Present the result to the user:

  • Issue key: e.g. ENG-1234
  • URL: direct link to the ticket
  • Summary: the title that was set
  • Research included: yes/no, with sources listed

Notes

  • The Jira REST API v3 requires ADF for descriptions — plain text or markdown will be rejected.
  • Rate limits: Jira Cloud allows ~100 requests per minute per user.
  • The jira.yaml network policy preset in NemoClaw already allows *.atlassian.net, auth.atlassian.com, and api.atlassian.com on port 443.
  • To use this skill inside NemoClaw's sandbox, enable the Jira preset in your sandbox policy.

Examples

# Create a simple task
/jira-ticket ENG "Update API rate limiting docs"

# Create a bug with web research
/jira-ticket ENG --type Bug --search "Node.js fetch timeout ECONNRESET" "Fix intermittent ECONNRESET in payment service"

# Create a story with priority and labels
/jira-ticket PLATFORM --type Story --priority High --labels "q2,backend" "Add OAuth2 PKCE flow for mobile clients"

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-30 23:48 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

business-ops

Discord

steipete
当需要通过discord工具控制Discord时使用:发送消息、添加反应、发布或上传表情包、上传表情、创建投票、管理帖子/置顶/搜索、获取权限或成员/角色/频道信息,或在Discord私信或频道中处理管理操作。
★ 78 📥 37,903
business-ops

Stripe

byungkyu
Stripe API 集成,支持托管 OAuth,实现对客户、订阅、发票、产品、价格和支付的可写金融集成。
★ 27 📥 25,928
business-ops

Trello

steipete
使用 Trello REST API 管理看板、列表和卡片
★ 162 📥 41,166