Skills atlassian-jira-by-altf1be
Atlassian Jira Cloud CRUD skill — manage issues, comments, attachments, workflow transitions, and JQL search via Jira REST API v3 with email + API token auth.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/abdelkrim/atlassian-jira-by-altf1be" ~/.claude/skills/clawdbot-skills-atlassian-jira-by-altf1be && rm -rf "$T"
manifest:
skills/abdelkrim/atlassian-jira-by-altf1be/SKILL.mdsource content
Jira Cloud by @altf1be
Manage Atlassian Jira Cloud issues, comments, attachments, and workflow transitions via the REST API.
Setup
- Get an API token from https://id.atlassian.com/manage-profile/security/api-tokens
- Set environment variables (or create
in.env
):{baseDir}
JIRA_HOST=yourcompany.atlassian.net JIRA_EMAIL=you@example.com JIRA_API_TOKEN=your-api-token JIRA_DEFAULT_PROJECT=PROJ
- Install dependencies:
cd {baseDir} && npm install
Commands
Issues
# List issues (optionally filter by project, status, assignee) node {baseDir}/scripts/jira.mjs list --project PROJ --status "In Progress" --assignee "currentUser()" # Create an issue node {baseDir}/scripts/jira.mjs create --project PROJ --type Task --summary "Fix login bug" --description "Users can't log in" --priority High # Read issue details node {baseDir}/scripts/jira.mjs read --key PROJ-123 # Update issue fields node {baseDir}/scripts/jira.mjs update --key PROJ-123 --summary "New title" --priority Low # Delete issue (requires --confirm) node {baseDir}/scripts/jira.mjs delete --key PROJ-123 --confirm # Search with JQL node {baseDir}/scripts/jira.mjs search --jql "project = PROJ AND status = Open ORDER BY created DESC"
Comments
# List comments on an issue node {baseDir}/scripts/jira.mjs comment-list --key PROJ-123 # Add a comment node {baseDir}/scripts/jira.mjs comment-add --key PROJ-123 --body "This is ready for review" # Update a comment node {baseDir}/scripts/jira.mjs comment-update --key PROJ-123 --comment-id 10001 --body "Updated comment" # Delete a comment (requires --confirm) node {baseDir}/scripts/jira.mjs comment-delete --key PROJ-123 --comment-id 10001 --confirm
Attachments
# List attachments on an issue node {baseDir}/scripts/jira.mjs attachment-list --key PROJ-123 # Upload an attachment node {baseDir}/scripts/jira.mjs attachment-add --key PROJ-123 --file ./screenshot.png # Delete an attachment (requires --confirm) node {baseDir}/scripts/jira.mjs attachment-delete --attachment-id 10001 --confirm
Workflow Transitions
# List available transitions for an issue node {baseDir}/scripts/jira.mjs transitions --key PROJ-123 # Move issue to a new status (by transition ID or name) node {baseDir}/scripts/jira.mjs transition --key PROJ-123 --transition-id 31 node {baseDir}/scripts/jira.mjs transition --key PROJ-123 --transition-name "Done"
Dependencies
— CLI frameworkcommander
— environment variable loadingdotenv- Node.js built-in
(requires Node >= 18)fetch
Security
- Email + API token auth (Basic auth via base64 encoding)
- No secrets or tokens printed to stdout
- All delete operations require explicit
flag--confirm - Path traversal prevention for file uploads
- Built-in rate limiting with exponential backoff retry
- Lazy config validation (only checked when a command runs)
Author
Abdelkrim BOUJRAF — ALT-F1 SRL, Brussels 🇧🇪 X: @altf1be