Install
openclaw skills install jira-task-creatorCreate and manage Jira tasks using natural language input, smart user search, batch CSV import, and detailed task analytics with flexible field support.
openclaw skills install jira-task-creatorA complete Jira task management skill with natural language parsing, smart user search, batch operations, and intelligent analytics.
pip install requests python-dateutil
# Required
export JIRA_BASE_URL="http://your-jira.com"
export JIRA_BEARER_TOKEN="your-token-here"
# Optional
export JIRA_DEFAULT_PROJECT="ERP"
export JIRA_DEFAULT_ASSIGNEE="Cloud"
export JIRA_CACHE_ENABLED="true"
export JIRA_CACHE_TTL="300"
{
"jira": {
"baseUrl": "http://your-jira.com",
"bearerToken": "your-token-here",
"defaultProject": "ERP",
"defaultAssignee": "Cloud",
"timeout": 30
},
"cache": {
"enabled": true,
"ttl": 300,
"maxSize": 1000
},
"logging": {
"level": "INFO",
"saveToFile": true,
"logDirectory": "logs/"
}
}
from jira_task_creator import create_issue
result = create_issue(
summary="Fix login bug",
description="Users cannot login to system",
project_key="ERP",
issue_type_name="Bug",
priority="High"
)
from jira_task_creator import create_issue_natural
result = create_issue_natural(
user_instruction="Complete API development by next Wednesday, high priority",
project="ERP"
)
from jira_task_creator import search_user
user = search_user("贾小丽", "ERP")
print(f"Username: {user['name']}")
print(f"Display name: {user['displayName']}")
from batch_creator import BatchTaskCreator
creator = BatchTaskCreator(base_url, token)
results = creator.create_from_csv("tasks.csv")
from task_analyzer import TaskAnalyzer
tasks = fetch_tasks("assignee = currentUser() AND status != Done")
analysis = TaskAnalyzer.analyze_tasks(tasks)
report = TaskAnalyzer.generate_report(analysis)
print(report)
Creates a Jira issue with specified fields.
Parameters:
summary (str): Task title (required)description (str): Task descriptionproject_key (str): Project key (e.g., "ERP")issue_type_name (str): Issue type (e.g., "Bug", "Story")priority (str): Priority (High, Medium, Low)assignee (str): Assignee usernamedue_date (str): Due date (ISO 8601 format)Returns:
dict: Created issue data or error informationSearches for users assignable to a project.
Parameters:
query (str): Search query (name, open_id, email)project_key (str): Project keyReturns:
dict: User information or None if not foundCreates an issue from natural language instruction.
Parameters:
user_instruction (str): Natural language task descriptionproject (str): Project keyReturns:
dict: Creation resultfrom batch_creator import BatchTaskCreator
creator = BatchTaskCreator(base_url, token)
result = creator.create_from_template("bug_report", {
"title": "Login page error",
"description": "Error 500 when logging in",
"priority": "High"
})
result = creator.create_from_template("feature_request", {
"title": "Add dark mode",
"description": "Support dark mode theme",
"priority": "Medium"
})
401 Unauthorized:
404 Not Found:
422 Unprocessable Entity:
Check connection:
ping your-jira-server.com
Verify token:
import requests
response = requests.get("https://your-jira.com/rest/api/3/myself",
headers={"Authorization": f"Bearer {token}"})
print(response.status_code)
Enable debug logging:
{
"logging": {
"level": "DEBUG"
}
}
MIT License
1.0.0 - Initial release