atlassian-cli はコミュニティによる独立したオープンソースプロジェクトです。Atlassian と提携・関連しておらず、Atlassian による承認、推奨、後援のいずれも受けておらず、Atlassian が提供する公式 CLI(acli)でもありません。製品名は互換性を示す目的でのみ使用しています。

課題: 4 つの製品に、CLI はゼロ

Atlassian Cloud のスタックを運用しているなら、この状況には覚えがあるはずです。課題は Jira、ドキュメントは Confluence、コードは Bitbucket、サービスリクエストは JSM。製品ごとに Web UI も API も癖も違います。放置された 200 件の課題をクローズする、Confluence のスペースをエクスポートする、Bitbucket のパイプラインを起動するといった自動化が必要になると、その場限りの curl スクリプトを書くか、パズルの一部しかカバーしない製品専用の CLI を探すことになります。

結果として、設定ファイルも認証方式も出力形式も異なるツールの寄せ集めができあがります。CI/CD パイプラインには 4 種類の認証設定が並び、ランブックは 3 つの異なるバイナリを参照し、新しいメンバーはそのすべてをインストールして覚えなければなりません。

atlassian-cli は、Jira、Confluence、Bitbucket、JSM をひとつのコマンドラインインターフェースの背後にまとめることで、この問題を解決します。バイナリはひとつ、設定もひとつ、認証情報は Atlassian のインスタンスごとにひと組だけです。

atlassian-cli とは

atlassian-cli は、Rust で書かれた MIT ライセンスのオープンソース CLI です。ランタイム依存のない単一のネイティブバイナリとして配布されます。JVM も Node も Python インタープリターも不要です。標準で 4 つの Atlassian Cloud 製品に対応しています。

すべてのコマンドが複数の出力形式(table、JSON、CSV、YAML、quiet)、プロファイルによる複数インスタンスの認証、破壊的な操作のためのドライランモードに対応しています。対話的なターミナル操作にも、ヘッドレスな CI/CD 自動化にも使えるように設計されています。

インストール

インストール方法は 3 通りあります。自分のツールチェーンに合うものを選んでください。

Homebrew(macOS と Linux)

# Add the tap and install
brew tap omar16100/atlassian-cli
brew install atlassian-cli

# Verify
atlassian-cli --version

Cargo(Rust ツールチェーン)

cargo install atlassian-cli

ビルド済みバイナリ

GitHub の Releases ページから、自分のプラットフォーム向けの最新リリースをダウンロードします。Linux(x86_64、aarch64)、macOS(Intel、Apple Silicon)、Windows 向けのバイナリが用意されています。

設定: プロファイルと認証

atlassian-cli は ~/.atlassian-cli/config.yaml に保存されるプロファイルの仕組みを使います。各プロファイルは Atlassian Cloud のインスタンスに対応し、ベース URL、メールアドレス、暗号化された API トークンを保持します。プロファイルは必要な数だけ作れます。本番用、ステージング用、顧客のインスタンス用といった具合です。

Jira / Confluence のプロファイルを追加する

# Interactive login (prompts for token)
atlassian-cli auth login \
  --profile work \
  --base-url https://your-domain.atlassian.net \
  --email you@company.com \
  --default

Bitbucket のプロファイルを追加する

Bitbucket は Jira / Confluence とは別に、スコープを絞った API トークンを使います。CLI は環境変数を優先順に確認します。ATLASSIAN_CLI_BITBUCKET_TOKEN_{PROFILE}ATLASSIAN_BITBUCKET_TOKENBITBUCKET_TOKEN の順で、いずれもなければ通常のプロファイルのトークンにフォールバックします。

# Set up a Bitbucket Bearer token profile
atlassian-cli auth login \
  --profile bb-ci \
  --bitbucket --bearer \
  --workspace myteam

# Verify connection
atlassian-cli auth test --bitbucket --profile bb-ci

# List all configured profiles
atlassian-cli auth list

認証情報は AES-256-GCM で暗号化されます。キーチェーンへの依存はなく、平文のトークンがディスクに残ることもありません。

製品ごとの使い方

Jira: 課題、一括操作、自動化

Jira のサブコマンドは、課題のライフサイクル全体とプロジェクト管理をカバーします。よく使うコマンドは次のとおりです。

# Search issues with JQL
atlassian-cli jira issue search \
  --jql "project = DEV AND status = 'In Progress'" \
  --limit 20

# Create an issue
atlassian-cli jira issue create \
  --project DEV \
  --issue-type Task \
  --summary "Automate deployment pipeline"

# Bulk transition with dry-run safety
atlassian-cli jira bulk transition \
  --jql "project = DEV AND status = Open" \
  --transition "In Progress" \
  --dry-run

--dry-run フラグを付けると、変更を加えずに影響を受ける課題をプレビューできます。実行するときはこのフラグを外します。詳しい手順は Jira 一括遷移のランブックをご覧ください。

Confluence: 検索、エクスポート、バックアップ

Confluence のサブコマンドでは、ページ、スペース、添付ファイルを管理できます。CQL による検索は Confluence の Web 検索と同等の機能を、構造化された出力で提供します。

# Search pages by CQL
atlassian-cli confluence search cql \
  --cql "space = DOCS and type = page" \
  --limit 10

# Bulk export an entire space to JSON
atlassian-cli confluence bulk export \
  --cql "space = DOCS" \
  --output backup.json \
  --format json

# Download an attachment
atlassian-cli confluence attachment download \
  --id 11111 \
  --output ./diagram.png

Confluence のバックアップを自動化するには、Confluence バックアップのランブックをご覧ください。

Bitbucket: PR、パイプライン、ブランチ

Bitbucket のサブコマンドbb というエイリアスでも呼び出せます)は、リポジトリ管理、プルリクエスト、パイプライン、ブランチ保護をカバーします。

# List open pull requests
atlassian-cli bitbucket --workspace myteam pr list api-service \
  --state OPEN --limit 5

# Trigger a pipeline on main
atlassian-cli bitbucket --workspace myteam pipeline trigger api-service \
  --ref-name main

# Bulk delete merged branches (dry-run first)
atlassian-cli bitbucket --workspace myteam bulk delete-branches api-service \
  --exclude feature/keep \
  --dry-run

Bitbucket ブランチ整理のランブックでは、古いブランチの削除を定期的に自動化する方法を解説しています。

JSM: サービスデスクの運用

JSM のサブコマンドは、サービスデスクの一覧表示、リクエスト管理、顧客関連の操作を扱います。

# List service desks
atlassian-cli jsm service-desk list --limit 10

# Get a specific request
atlassian-cli jsm request get SD-123

実際のワークフロー

スプリントの整理

スプリントの終わりに、放置された課題をクローズしてサマリーをエクスポートします。1 つのスクリプト、2 つのコマンドで済みます。

# Close all "Won't Do" tickets in the current sprint
atlassian-cli jira bulk transition \
  --jql "project = DEV AND sprint in openSprints() AND status = 'Won\\'t Do'" \
  --transition "Done" \
  --profile prod

# Export sprint issues to CSV for retro
atlassian-cli jira bulk export \
  --jql "project = DEV AND sprint in openSprints()" \
  --output sprint-report.csv \
  --format csv

ドキュメントの同期

Confluence のスペースと添付ファイルを毎晩バックアップします。cron や GitHub Actions のスケジュール実行と組み合わせて使います。

# Export full space to JSON
atlassian-cli confluence bulk export \
  --cql "space = DOCS" \
  --output /backups/confluence-$(date +%Y%m%d).json \
  --format json

# Check space stats
atlassian-cli confluence analytics space-stats DOCS

リリースの自動化

Bitbucket でリリース用の PR をマージしたら、デプロイのパイプラインを起動し、関連する Jira の課題をすべて「Released」に遷移させます。

# Merge the release PR
atlassian-cli bb --workspace myteam pr merge api-service 42 \
  --strategy merge_commit

# Trigger deployment pipeline
atlassian-cli bb --workspace myteam pipeline trigger api-service \
  --ref-name main

# Transition Jira issues to Released
atlassian-cli jira bulk transition \
  --jql "project = DEV AND fixVersion = '2.1.0'" \
  --transition "Released"

個別のツールではなく atlassian-cli を選ぶ理由

Atlassian の個別製品向けにも、優れた単体の CLI があります。ankitpokhrel 氏の jira-cli は Jira だけを扱うワークフローには非常に優秀です。ただし、複数の Atlassian 製品を日常的に横断して使うなら、統一されたアプローチの利点はすぐに効いてきます。

はじめに

試してみますか。atlassian-cli は 1 分以内にインストールできます。

brew install omar16100/atlassian-cli/atlassian-cli

そのあとは、製品ごとのガイドをご覧ください。

本番運用向けの自動化レシピは、ランブックにまとめています。

atlassian-cli をインストール

Atlassian Cloud のスタック全体をひとつの CLI で。MIT ライセンスのオープンソースです。

はじめる