79 lines
3.1 KiB
Markdown
79 lines
3.1 KiB
Markdown
---
|
|
name: atlassian
|
|
description: Interact with Atlassian Cloud Jira and Confluence through a portable task-oriented CLI for search, issue/page edits, comments, transitions, and bounded raw requests.
|
|
---
|
|
|
|
# Atlassian (Claude Code)
|
|
|
|
Portable Atlassian workflows for Claude Code using a shared TypeScript CLI.
|
|
|
|
## Requirements
|
|
|
|
- Node.js 20+
|
|
- `pnpm`
|
|
- Atlassian Cloud account access
|
|
- `ATLASSIAN_BASE_URL`
|
|
- `ATLASSIAN_EMAIL`
|
|
- `ATLASSIAN_API_TOKEN`
|
|
|
|
The `ATLASSIAN_*` values may come from the shell environment or a `.env` file in `~/.claude/skills/atlassian/scripts`.
|
|
|
|
## First-Time Setup
|
|
|
|
```bash
|
|
mkdir -p ~/.claude/skills/atlassian
|
|
cp -R skills/atlassian/claude-code/* ~/.claude/skills/atlassian/
|
|
cd ~/.claude/skills/atlassian/scripts
|
|
pnpm install
|
|
```
|
|
|
|
## Prerequisite Check (MANDATORY)
|
|
|
|
```bash
|
|
cd ~/.claude/skills/atlassian/scripts
|
|
node -e "require.resolve('commander');require.resolve('dotenv');console.log('OK: runtime dependencies installed')"
|
|
node -e 'require("dotenv").config({ path: ".env" }); const required = ["ATLASSIAN_BASE_URL", "ATLASSIAN_EMAIL", "ATLASSIAN_API_TOKEN"]; const missing = required.filter((key) => !(process.env[key] || "").trim()); if (missing.length) { console.error("Missing required Atlassian config: " + missing.join(", ")); process.exit(1); } console.log("OK: Atlassian config present")'
|
|
pnpm atlassian health
|
|
```
|
|
|
|
If any check fails, stop and return:
|
|
|
|
`Missing dependency/config: atlassian requires installed CLI dependencies and valid Atlassian Cloud credentials. Configure ATLASSIAN_* in the shell environment or scripts/.env, then retry.`
|
|
|
|
## Supported Commands
|
|
|
|
- `pnpm atlassian health`
|
|
- `pnpm atlassian jira-search --jql "..."`
|
|
- `pnpm atlassian jira-get --issue ABC-123`
|
|
- `pnpm atlassian jira-create ... [--dry-run]`
|
|
- `pnpm atlassian jira-update ... [--dry-run]`
|
|
- `pnpm atlassian jira-comment ... [--dry-run]`
|
|
- `pnpm atlassian jira-transitions --issue ABC-123`
|
|
- `pnpm atlassian jira-transition ... [--dry-run]`
|
|
- `pnpm atlassian conf-search --query "..."`
|
|
- `pnpm atlassian conf-get --page 12345`
|
|
- `pnpm atlassian conf-create ... [--dry-run]`
|
|
- `pnpm atlassian conf-update ... [--dry-run]`
|
|
- `pnpm atlassian conf-comment ... [--dry-run]`
|
|
- `pnpm atlassian conf-children --page 12345`
|
|
- `pnpm atlassian raw --product jira|confluence --method GET|POST|PUT --path ...`
|
|
|
|
## Usage Examples
|
|
|
|
- `pnpm atlassian jira-search --jql "project = ENG ORDER BY updated DESC" --max-results 10`
|
|
- `pnpm atlassian conf-comment --page 12345 --body-file comment.storage.html --dry-run`
|
|
- `pnpm atlassian raw --product jira --method GET --path "/rest/api/3/issue/ENG-123"`
|
|
|
|
## Safety Rules
|
|
|
|
- Default output is JSON; only switch to text output when the user needs a human-readable summary.
|
|
- Use `--dry-run` before any write unless the user clearly asked for the mutation.
|
|
- Treat `raw` as an escape hatch, not the default API surface.
|
|
- `--body-file` must stay inside the current workspace.
|
|
- Confluence write bodies should be storage-format inputs in v1.
|
|
|
|
## Notes
|
|
|
|
- Atlassian Cloud is the primary supported platform in v1.
|
|
- The portable CLI exists so the same skill works consistently across multiple agent environments.
|