confluence-cli は何をしますか?
開発者とAIエージェント向けのConfluence CLI — 構造化JSON出力、jqフィルタリング、バッチ操作、ワークフロー自動化。JiraのOpenAPI仕様から構築。
インストール
npm install -g @sofq/confluence-cli
# または
npx @sofq/confluence-cli
クイックスタート
# 環境変数を設定
export CONFLUENCE_BASE_URL=https://your-domain.atlassian.net
export [email protected]
export CONFLUENCE_API_TOKEN=your-api-token
# ページを取得
confluence get-page --pageId 12345
# スペース内のページを検索(jqでフィルタリング)
confluence search --cql "space=DEV" | jq '.results[] | {id, title, version}'
機能
- 構造化JSON出力: すべてのコマンドは解析可能なJSONを返します。
- jqフィルタリング: パイプで接続して特定のフィールドを抽出します。
- バッチ操作: 複数のページを一度に操作します。
- ワークフロー自動化: CI/CDパイプラインに統合します。
- AIエージェント対応: AIエージェントがConfluenceのコンテンツを読み取り/書き込みできるように設計されています。
コマンド
ページ操作
| コマンド | 説明 |
|---|---|
get-page | IDでページを取得 |
create-page | 新しいページを作成 |
update-page | 既存のページを更新 |
delete-page | ページを削除 |
get-page-children | ページの子ページを取得 |
検索
| コマンド | 説明 |
|---|---|
search | CQLを使用してページを検索 |
get-space | スペースの詳細を取得 |
get-space-content | スペース内のすべてのコンテンツを取得 |
ラベル
| コマンド | 説明 |
|---|---|
add-label | ページにラベルを追加 |
remove-label | ページからラベルを削除 |
get-labels | ページのラベルを取得 |
設定
CLIは環境変数または設定ファイルで設定できます。
環境変数
export CONFLUENCE_BASE_URL=https://your-domain.atlassian.net
export [email protected]
export CONFLUENCE_API_TOKEN=your-api-token
設定ファイル
リポジトリのルートにconfluence.jsonを作成します:
{
"baseUrl": "https://your-domain.atlassian.net",
"username": "[email protected]",
"apiToken": "your-api-token"
}
例
AIエージェントのワークフロー
# 最新のドキュメントを取得
confluence search --cql "type=page and space=DEV order by lastmodified desc" --limit 10 | jq '.results[] | {id, title, version, lastModified}'
# 新しいドキュメントを作成
confluence create-page --spaceKey DEV --title "API統合ガイド" --content "# API統合ガイド\n\nこれは自動生成されたドキュメントです。"
# ドキュメントのラベルを更新
confluence add-label --pageId 12345 --label "automation"
CI/CDパイプライン(GitHub Actions)
- name: Confluenceドキュメントの更新
run: |
npx @sofq/confluence-cli update-page \
--pageId 12345 \
--title "リリースノート v${{ github.event.release.tag_name }}" \
--content "$(cat release-notes.md)"
env:
CONFLUENCE_BASE_URL: ${{ secrets.CONFLUENCE_BASE_URL }}
CONFLUENCE_USERNAME: ${{ secrets.CONFLUENCE_USERNAME }}
CONFLUENCE_API_TOKEN: ${{ secrets.CONFLUENCE_API_TOKEN }}
認証
CLIは以下の認証方法をサポートしています:
- APIトークン: Atlassianアカウントから生成(推奨)
- Basic認証: ユーザー名とパスワード(非推奨、後方互換性のため)
- OAuth: サーバー間OAuth(Atlassian Cloudの場合)