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

JSM を CLI から自動化する理由

Jira Service Management(JSM)は IT サービスデスクの中核ですが、Web UI はクリック操作を前提に作られており、自動化には向いていません。インシデント対応、顧客のオンボーディング、SLA 遵守状況の追跡を担当しているなら、その手間はご存じのはずです。リクエストをトリアージするためにポータルを何度もクリックし、顧客を手作業でサービスデスクに追加し、キューの滞留件数を確認するためにダッシュボードを行き来することになります。

JSM CLI はこの手間を解消します。atlassian-cli を使えば、すべての JSM 操作がスクリプト可能なコマンドになります。変わるのは次の点です。

はじめに

インストール

atlassian-cli はランタイム依存のない単一の Rust バイナリです。Homebrew か Cargo でインストールするか、GitHub Releases からビルド済みバイナリをダウンロードしてください。

# Homebrew (macOS / Linux)
brew tap omar16100/atlassian-cli
brew install atlassian-cli

# Cargo (Rust toolchain)
cargo install atlassian-cli

# Verify
atlassian-cli --version

認証

JSM は Jira や Confluence と同じ Atlassian Cloud の API トークンを使います。すでにプロファイルを設定していれば、追加の設定なしでそのまま JSM に使えます。これから始める場合は、id.atlassian.com でトークンを作成し、プロファイルを設定してください。

# Add a profile with your Atlassian credentials
atlassian-cli auth login \
  --profile work \
  --base-url https://your-domain.atlassian.net \
  --email you@company.com \
  --token $ATLASSIAN_API_TOKEN \
  --default

# Verify authentication
atlassian-cli auth test --profile work

認証情報は ~/.atlassian-cli/config.yamlAES-256-GCM 暗号化で保存されます。プロファイルに対応しているため、複数の Atlassian インスタンス(開発、ステージング、本番)を管理し、--profile で切り替えられます。

サービスデスクの操作

jsm service-desk サブコマンドで、サービスデスクの一覧表示と詳細確認ができます。リクエストの絞り込みや顧客の管理にはデスクの ID が必要なため、通常はこれを最初に実行します。

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

# Get details for a specific service desk (by ID)
atlassian-cli jsm service-desk get 1

# List organizations attached to a service desk
atlassian-cli jsm service-desk organizations 1

# List customers of a service desk
atlassian-cli jsm service-desk customers 1 --limit 25

servicedesk get コマンドは、デスク名、プロジェクトキー、プロジェクト ID、ポータルの URL を返します。--format json を指定すると、出力を jq や後続のスクリプトにパイプできます。

リクエスト管理

リクエストは JSM の中核です。jsm request サブコマンドは、一覧、作成、参照、遷移、コメントというライフサイクル全体をカバーします。

リクエストの一覧と参照

# List recent requests across all service desks
atlassian-cli jsm request list --limit 10

# Filter by service desk
atlassian-cli jsm request list --servicedesk-id 1 --limit 20

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

# View status history
atlassian-cli jsm request status SD-123

リクエストの作成

# Create a new service request
atlassian-cli jsm request create \
  --servicedesk-id 1 \
  --request-type-id 10 \
  --summary "VPN access not working after password reset" \
  --description "User reports VPN disconnects immediately after auth."

遷移とコメント

# List available transitions for a request
atlassian-cli jsm request transitions SD-123

# Transition the request (use the transition ID from above)
atlassian-cli jsm request transition SD-123 --transition "21"

# Add a public comment
atlassian-cli jsm request add-comment SD-123 \
  --body "Investigating. Will update within 30 minutes." \
  --public

# Add an internal note (not visible to customers)
atlassian-cli jsm request add-comment SD-123 \
  --body "Checked VPN logs -- auth timeout on RADIUS server."

# List comments on a request
atlassian-cli jsm request comments SD-123

リクエスト管理は参加者と通知にも対応しています。jsm request add-participant でウォッチャーを追加し、jsm request subscribe で更新の通知購読を設定できます。

顧客管理

jsm customerjsm service-desk のサブコマンドは、ポータルユーザーの作成、サービスデスクへの追加、組織の管理といった顧客のライフサイクルを扱います。

# Create a new customer
atlassian-cli jsm customer create \
  --email "jane.doe@acme.com" \
  --display-name "Jane Doe"

# Add customer to a service desk
atlassian-cli jsm service-desk add-customer 1 \
  --account-id 5b10a2844c20165700ede21g

# Remove customer from a service desk
atlassian-cli jsm service-desk remove-customer 1 \
  --account-id 5b10a2844c20165700ede21g

# List organizations
atlassian-cli jsm organization list --limit 10

# Create an organization
atlassian-cli jsm organization create --name "Acme Corp"

# Add user to an organization
atlassian-cli jsm organization add-user 5 \
  --account-id 5b10a2844c20165700ede21g

# Add organization to a service desk
atlassian-cli jsm service-desk add-organization 1 --org-id 5

これにより、顧客オンボーディングを完全にスクリプト化できます。顧客を作成し、組織に割り当て、適切なサービスデスクへのアクセス権を付与する。これらを1つのシェルスクリプトで実行できます。

キューと SLA の追跡

キューと SLA は ITSM 運用に欠かせません。CLI はその両方に直接アクセスできます。

キュー

# List queues for a service desk
atlassian-cli jsm queue list 1

# Get queue details
atlassian-cli jsm queue get 1 10

# List issues in a specific queue
atlassian-cli jsm queue issues 1 10 --limit 25

SLA の追跡

# List SLAs for a request
atlassian-cli jsm sla list SD-123

# Get specific SLA details
atlassian-cli jsm sla get SD-123 --sla-id "time-to-first-response"

SLA の出力は監視システムやアラートツールにパイプできます。たとえば SLA の状態を JSON で取得して Slack の Webhook に渡せば、SLA 違反が近づいたときにオンコール担当者へ通知できます。

リクエストタイプとナレッジベース

リクエストタイプ

リクエストタイプは、顧客が起票できるリクエストの種類を定義します。CLI を使うと、利用できるタイプ、そのフィールド、グループを確認できます。

# List all request types
atlassian-cli jsm request-type list

# List request types for a specific service desk
atlassian-cli jsm request-type list --servicedesk-id 1

# Get request type details
atlassian-cli jsm request-type get 1 10

# List fields required for a request type
atlassian-cli jsm request-type fields 1 10

# List request type groups
atlassian-cli jsm request-type groups 1

ナレッジベース

サービスデスクに紐づくナレッジベース記事を検索できます。セルフサービスのボットを作ったり、ナレッジベースの内容をインシデント対応のランブックに組み込んだりするときに便利です。

# Search knowledge base articles
atlassian-cli jsm kb search --query "VPN troubleshooting"

# Search within a specific service desk
atlassian-cli jsm kb search \
  --query "password reset" \
  --servicedesk-id 1 \
  --limit 5

実際のワークフロー

インシデント対応の自動化

監視アラートが発報したら、JSM のリクエストを自動で作成し、「In Progress」に遷移させ、診断情報を内部コメントとして追加する。これらを1つのスクリプトで実行できます。

#!/bin/bash
# incident-response.sh, triggered by PagerDuty/Opsgenie webhook

# Create the incident request
ISSUE_KEY=$(atlassian-cli jsm request create \
  --servicedesk-id 1 \
  --request-type-id 12 \
  --summary "$ALERT_SUMMARY" \
  --description "$ALERT_DESCRIPTION" \
  --format json | jq -r '.issue_key')

# Attach diagnostic info as internal note
atlassian-cli jsm request add-comment "$ISSUE_KEY" \
  --body "Auto-generated. Source: $ALERT_SOURCE. Runbook: $RUNBOOK_URL"

echo "Created incident: $ISSUE_KEY"

顧客オンボーディングスクリプト

オンボーディングの流れ全体を自動化します。顧客を作成し、組織に追加し、サービスデスクへのアクセス権を付与します。

#!/bin/bash
# onboard-customer.sh

# Create the customer
atlassian-cli jsm customer create \
  --email "$CUSTOMER_EMAIL" \
  --display-name "$CUSTOMER_NAME"

# Add to organization
atlassian-cli jsm organization add-user 5 \
  --account-id "$ACCOUNT_ID"

# Grant access to IT Help Desk and HR Service Desk
atlassian-cli jsm service-desk add-customer 1 \
  --account-id "$ACCOUNT_ID"
atlassian-cli jsm service-desk add-customer 2 \
  --account-id "$ACCOUNT_ID"

echo "Onboarded: $CUSTOMER_NAME ($CUSTOMER_EMAIL)"

よくある質問

Jira Service Management をコマンドラインから自動化できますか?

はい。atlassian-cli は、サービスデスク、リクエスト、顧客、キュー、SLA、承認、組織、リクエストタイプ、ナレッジベース記事に対応した JSM CLI を提供します。Jira や Confluence と同じ Atlassian API トークンを使うため、すでにプロファイルを設定していれば JSM もそのまま利用できます。

JSM CLI は SLA の追跡とキュー管理に対応していますか?

はい。CLI には、任意のリクエストの SLA 指標を確認する jsm sla listjsm sla get、サービスデスクのキューとその内容を照会する jsm queue listjsm queue issues が含まれます。出力は JSON、CSV、テーブル形式に整形でき、監視スクリプトやダッシュボードに組み込めます。

atlassian-cli は JSM の自動化に無料で使えますか?

はい。atlassian-cli は MIT ライセンスの無料のオープンソースです。Jira、Confluence、Bitbucket、JSM を単一の Rust バイナリでカバーします。Homebrew(brew install omar16100/atlassian-cli/atlassian-cli)、Cargo(cargo install atlassian-cli)でインストールするか、GitHub Releases からビルド済みバイナリをダウンロードしてください。

関連リソース