このプロジェクトについて

cb365はMicrosoft 365サービスへのコマンドラインアクセスを提供し、独自のGraph APIアプリケーションを作成したり、UIを手動操作したりする代わりの手段となる。タスクの作成、メール送信、カレンダー管理、Teamsへの投稿、SharePoint、OneDrive、Planner、Loopとの連携などを自動化できる。構造化JSON出力を提供するため、スクリプトやAIエージェントによる利用に適する。 主な機能と対象読者: * DevOpsおよびプラットフォームエンジニア:CIからのタスク作成やビルド結果のTeams投稿など、M365操作のスクリプト化に利用。 * AIエージェント構築者:自律ワークフロー向けに--json出力と安全フラグを設計。 * IT管理者:Graph API操作におけるPowerShellの代替CLI。 * 開発者:一般的なM365タスク向けのGraph SDK定型コードを削減。 cb365はMicrosoft Graph APIをラップし、次のような複雑さを処理する: * 認証:デバイスコード、クライアント資格情報、証明書フローをサポートし、トークンをOSキーチェーンに安全に保存。 * 安全性:44個のハードコードされたルールを組み込み、削除には--force、ブロードキャストには--confirmを要求し、すべての書き込み操作で--dry-runを利用可能。トークンは出力に決して露出しない。 * 出力:--json、--plain(TSV)、人間が読めるテーブル形式を提供し、パイプライン統合向けに設計。 * プロファイル:委任認証とアプリ専用認証を並行管理し、テナント切り替えを容易に。 * 依存関係なし:ランタイム要件のない単一のGoバイナリ。 インストールはgo installまたはビルド済みリリースバイナリで可能。ユーザーはEntra IDアプリを登録し、必要なAPIアクセス許可を構成する必要がある。認証は対話利用向けの委任(デバイスコード)と、無人自動化向けのアプリ専用(クライアントシークレットまたは証明書)をサポートし、クライアントシークレットはセキュリティのため標準入力からのみ受け付ける。 コマンドはさまざまなM365ワークロードで利用可能: * Auth:ログイン、状態、ログアウト、プロファイル管理。 * To Do:タスクリストとタスクの一覧、作成、更新、完了、削除。 * Mail:メッセージの一覧、取得、既読化、移動、完全削除、下書き、送信、検索。 * Calendar:イベントの一覧、取得、作成、更新、削除。 * Contacts:連絡先の一覧、取得、検索、作成、更新。 * Planner:プランの一覧、作成、バケット管理、タスク管理。 * Teams:チャネルの一覧、チャネルとチャットへのメッセージ送信、チャネルメッセージの論理削除。 * SharePoint:サイトの一覧/検索、サイト詳細取得、リストとリスト項目の管理、ファイル管理(一覧、取得、アップロード)。 * OneDrive:ファイルの一覧、取得、アップロード、削除、フォルダー作成。 * Loop:ワークスペースとページの一覧、ページのダウンロード/エクスポート、ページ削除、ファイルアップロード、フォルダー作成。 グローバルフラグには--json、--plain、--profile、--dry-run、--verboseがある。このツールは、ファイルまたは標準入力からの間接値を受け付けることで、ビジネスコンテンツをプロセス引数に残さないことを重視する。安全ルールはハードコードされており、書き込み保護、カレンダー固有ルール(例:タイムゾーン検証、重複検出、参加者数ガード)、メール安全性(例:送信時の--confirm、受信者数ガード)、トークン安全性(安全な保存、出力への非露出)をカバーする。 AIエージェント統合では、--json出力が構造化データを提供する。エージェントはM365コンテンツを信頼できないデータとして扱い、コマンドには明示的な許可リストを、副作用には確認フラグを使用することが推奨される。エラー処理は標準Unix終了コードを使用し、エラーは標準エラー出力に表示される。