ClawSkills logoClawSkills

JIra and Confluence

CLI tool for interacting with Atlassian Jira and Confluence

Introduction

# Jira-AI Skill

The jira-ai skill provides comprehensive command-line access to Atlassian Jira and Confluence platforms, allowing agents to manage issues, projects, users, and documentation efficiently.

## Installation

To install jira-ai, run: ```bash npm install -g jira-ai ```

## Authentication Setup

Before using jira-ai, you need to configure your Jira credentials:

1. Create a `.env` file with the following values: ``` JIRA_HOST=your-domain.atlassian.net [email protected] JIRA_API_TOKEN=your-api-token ```

2. Authenticate using the .env file: ```bash jira-ai auth --from-file path/to/.env ```

## Configuration

You can manage settings using the settings command:

```bash jira-ai settings --help ```

Apply settings from a YAML file: ```bash jira-ai settings --apply my-settings.yaml ```

Validate settings: ```bash jira-ai settings --validate my-settings.yaml ```

## Commands Overview

### Top-Level Commands

| Command | Description | | :--- | :--- | | `jira-ai auth` | Set up Jira authentication credentials | | `jira-ai settings` | View, validate, or apply configuration settings | | `jira-ai about` | Show information about the tool | | `jira-ai help` | Display help for commands |

### Issue Management (`issue`)

| Command | Description | | :--- | :--- | | `jira-ai issue get <issue-id>` | Retrieve comprehensive issue data | | `jira-ai issue create` | Create a new Jira issue | | `jira-ai issue search <jql-query>` | Execute a JQL search query | | `jira-ai issue transition <issue-id> <to-status>` | Change the status of a Jira issue | | `jira-ai issue update <issue-id>` | Update a Jira issue's description | | `jira-ai issue comment <issue-id>` | Add a new comment to a Jira issue | | `jira-ai issue stats <issue-ids>` | Calculate time-based metrics for issues | | `jira-ai issue assign <issue-id> <account-id>` | Assign or reassign a Jira issue | | `jira-ai issue label add <issue-id> <labels>` | Add labels to a Jira issue | | `jira-ai issue label remove <issue-id> <labels>` | Remove labels from a Jira issue |

### Project Management (`project`)

| Command | Description | | :--- | :--- | | `jira-ai project list` | List all accessible Jira projects | | `jira-ai project statuses <project-key>` | Fetch workflow statuses for a project | | `jira-ai project types <project-key>` | List issue types available for a project |

### User Management (`user`)

| Command | Description | | :--- | :--- | | `jira-ai user me` | Show profile details for authenticated user | | `jira-ai user search [project-key]` | Search and list users | | `jira-ai user worklog <person> <timeframe>` | Retrieve worklogs for a user |

### Organization Management (`org`)

| Command | Description | | :--- | :--- | | `jira-ai org list` | List all saved Jira organization profiles | | `jira-ai org use <alias>` | Switch the active Jira organization profile | | `jira-ai org add <alias>` | Add a new Jira organization profile | | `jira-ai org remove <alias>` | Delete credentials for an organization |

### Confluence Commands (`confl`)

| Command | Description | | :--- | :--- | | `jira-ai confl get <url>` | Download Confluence page content | | `jira-ai confl spaces` | List all allowed Confluence spaces | | `jira-ai confl pages <space-key>` | Display pages within a space | | `jira-ai confl create <space> <title> [parent-page]` | Create a new Confluence page | | `jira-ai confl comment <url>` | Add a comment to a Confluence page | | `jira-ai confl update <url>` | Update a Confluence page |

## Usage Examples

### Search for issues assigned to the current user ```bash jira-ai issue search "assignee = currentUser()" ```

### Get details of a specific issue ```bash jira-ai issue get PROJ-123 ```

### Create a new issue ```bash jira-ai issue create --project "PROJ" --summary "New task" --issuetype "Story" ```

### Transition an issue to a new status ```bash jira-ai issue transition PROJ-123 "In Progress" ```

### Add a comment to an issue ```bash jira-ai issue comment PROJ-123 --file comment.md ```

### List all projects ```bash jira-ai project list ```

### Get worklogs for a user ```bash jira-ai user worklog [email protected] 2w ```

## Configuration Options

The jira-ai tool supports extensive configuration through settings files. You can define:

- Allowed Jira projects - Allowed commands - Allowed Confluence spaces - Default behaviors for various operations

Example settings structure: ```yaml defaults: allowed-jira-projects: - all # Allow all projects allowed-commands: - all # Allow all commands allowed-confluence-spaces: - all # Allow all Confluence spaces

organizations: work: allowed-jira-projects: - PROJ # Allow specific project - key: PM # Project-specific config commands: - issue.get # Only allow reading issues filters: participated: was_assignee: true allowed-commands: - issue # All issue commands - project.list # Only project list - user.me # Only user me allowed-confluence-spaces: - DOCS ```

## Benefits

- **Efficient API Usage**: Minimizes the number of API calls needed to perform common operations - **Batch Operations**: Process multiple items at once to reduce API usage - **Smart Filtering**: Use JQL to retrieve only the specific data needed - **Local Processing**: Handle operations locally before sending targeted requests to Jira - **Configuration-Based Access Control**: Define allowed commands and projects to prevent unauthorized operations - **Specific Command Targeting**: Get only the information needed, reducing payload sizes and API usage

## Security Considerations

- Store API tokens securely in environment files - Use configuration-based access controls to limit operations - Regularly rotate API tokens - Limit permissions to the minimum required for operations

More Products