Use Slack and Bitbucket Data Center together
On this page:
How do I install the Bitbucket Data Center for Slack app in Bitbucket?
To install the Bitbucket Data Center for Slack app:
管理者として Bitbucket インスタンスにログインします。
管理メニューをクリックして [アドオン] を選択します。[アドオンの管理] 画面が読み込まれます。
ページ左側から [新しいアプリの検索] または [新しいアドオンの検索] をクリックします。
Locate Bitbucket Data Center for Slack (Official) via search. Results include app versions compatible with your Bitbucket instance.
[インストール] をクリックして、アプリをダウンロードしてインストールします。
設定が完了しました! [インストールしたので準備する] ダイアログで [閉じる] をクリックします。
To find older Bitbucket for Slack (Official) versions compatible with your instance, you can look through our version history page.
How do I configure and connect the Bitbucket Data Center for Slack app to my Bitbucket site?
Slack を使用するには、Bitbucket インスタンスに安全な接続 (HTTPS) によってインターネット経由でアクセスできる必要があります。したがって、セキュリティで保護されたポートを開いて、サーバーに有効な証明書があることを確認する必要があります。
このオプションでない場合でも、Bitbucket から Slack への通知を提供するカスタム Slack アプリを作成して、Slack との制限付きの接続を設定できます。アプリの作成方法については、以下のページをご覧ください。
Bitbucket 管理者の場合
In the Bitbucket Data Center administration, you'll now have a Slack Integration navigation item under Add-ons.
[Slack 統合] に移動して [Connect Slack Team] を選択します。
[Slack に移動] をクリックします。
Slack アプリの緑色の [インストール] ボタンをクリックして、Slack の OAuth プロセスを完了します。
Slack での OAuth プロセスを完了すると、連携用の設定ページが新しく表示されます。
下部にスクロールして、入力が必要な 2 つのフィールドを確認します。
Add your Bitbucket base URL.
Web アドレスの末尾に /
を含めないでください。Web アドレスが HTTPS プロトコルで保護されて、インターネットからアクセス可能であることを確認してください。
3. 2. のボックスのコンテンツを Bitbucket セットアップにコピーします。
4. In Bitbucket, paste the Slack credentials into the Bitbucket configuration and then click Save.
5. Slack ウィンドウで [送信] をクリックします。
Once the connection has been set up, you'll receive a success notification from Bitbucket in a direct message with Slackbot.
どのように Slack に通知を投稿するためのリポジトリを構成しますか?
Bitbucket 管理者の場合
In the Bitbucket administration, you'll now have a Slack Integration navigation item under Add-ons.
Slack 情報 (非公開または公開) にアクセスするには、以下の手順を実行して Slack アカウントを確認する必要があります。
確認リンクをクリックすると、Slack の認証フローが表示されます。
アプリケーションがチャンネルにアクセスすることを許可します。
Bitbucket リポジトリを別の Slack チャンネルに接続します。
これで、チャンネル ピッカーや、アクセス権がある公開チャンネルと非公開チャンネルで「Slack に [Your Name]
としてアクセスしています」と表示されるようになります。
4. リポジトリとチャンネルを選択して、[追加] をクリックします。
これで、設定テーブルに Slack への新しい接続が表示されるようになります。また、Slack では、Bitbucket 通知がセットアップされた旨を示す通知がチャンネルに送信されます。
From the configuration section, you can filter exactly what notifications you want to be sent to that channel by subscribing or unsubscribing to pull requests, repositories, commits, and commit events.
リポジトリ管理者の場合
リポジトリ管理者は、自身の Slack 通知をセットアップして設定できます。
In the Bitbucket repository settings, you’ll have a Slack integration navigation item under Workflow.
Slack 情報 (非公開または公開) にアクセスするには、以下の手順を実行して Slack アカウントを確認する必要があります。
確認リンクをクリックすると、Slack の認証フローが表示されます。
アプリケーションがチャンネルにアクセスすることを許可します。
Bitbucket リポジトリを別の Slack チャンネルに接続します。
これで、チャンネル ピッカーや、アクセス権がある公開チャンネルと非公開チャンネルで「Slack に [Your Name]
としてアクセスしています」と表示されるようになります。
リポジトリ管理者はこのページから、対象のリポジトリで現在接続されている Slack チャンネルを確認したり、新しい接続をセットアップしたりできます。
プライベート チャンネルへの接続方法
管理ページでアカウントを確認したら、「Slack に [Your Name]
としてアクセスしています」というメッセージが表示されて、チャンネル ピッカーから公開チャンネルと非公開チャンネルを選択できるようになるはずです。
どのように個人通知を設定しますか?
統合によって、bot からのダイレクト メッセージを介して Slack で特定の個人通知を受信できます。
- Bitbucket ユーザー プロファイル ページに移動します。
- [アカウントの管理] > [Slack 通知] の順にクリックします。
- 次のページで、通知を受信するタイミングと希望する Slack ワークスペースに関するオプションを選択します。
How do I connect Bitbucket Data Center to a direct message or multi-party direct message?
It's not possible to set up Bitbucket notifications into Slack's direct messages or multi-party direct messages.
Alternatively we suggest setting up a private channel and configuring notifications to route there.
どのように複数の Slack ワークスペースへ接続しますか?
The Bitbucket Data Center for Slack app supports the ability to connect to multiple Slack Workspaces, such as in a Slack Enterprise Grid.
Bitbucket のグローバル管理 Slack ページの上部で、[ワークスペース セレクター] メニューを選択します。
[新しいチームに接続] を選択します。
Follow the steps below to connect your new workspace to this Bitbucket instance.
I use multiple Bitbucket instances or my instances are behind a firewall. How do I connect them to Slack?
The process for setting up additional Bitbucket instances with Slack takes some manual configuration to set up. Please ensure that you follow the below steps perfectly to ensure proper connectivity between your Bitbucket instance and Slack. You can repeat this process multiple times for each additional Bitbucket instance you have.
ステップ 1: アプリを作成
始めるには、まず https://api.slack.com/apps?new_classic_app=1 をご確認ください。Slack では、現時点でこのアプリと互換性のない新しい権限モデルがリリースされているため、クラシック スコープでアプリを作成するようにしてください。
ステップ 2: インタラクティブ コンポーネントを有効化
Bitbucket インスタンスがファイアウォールで保護されている場合は Slack はアクセスできないので、このセクションをスキップできます。
アプリの設定で、[機能] > [インタラクティブ コンポーネント] の順に移動します。
トグル ボタンをクリックしてインタラクティブ機能をオンにします。
Set the Request URL with
https://{{url}}/rest/slack/latest/action
, replacing{{url}}
with your Bitbucket instance base URL (eg. bitbucket-demo.company.com).変更を保存します。
ステップ 3: スラッシュ コマンドを作成
Bitbucket インスタンスがファイアウォールで保護されている場合は Slack はアクセスできないので、このセクションをスキップできます。
スラッシュ コマンドを使用すると、ユーザーは Slack のメッセージ ボックスからアプリとのインタラクションを直接トリガーできます。
アプリの設定で [スラッシュ コマンド] に移動します。
[新しいコマンドを作成] をクリックします。
Copy the details of this command over, replacing {{url}} with your Bitbucket URL:
Command name:/bitbucket_server
Request URL:https://{{url}}/rest/slack/latest/command
Usage hint:account, help
コマンド名が、ワークスペース内の別の Slack アプリで使用されていないことを確認します。
保存すると、新しいスラッシュ コマンドが一覧に表示されます。
ステップ 4: OAuth と権限をセットアップ
すべての必要なスコープと権限をセットアップするには、次の手順を実行します。
[機能] > [OAuth と権限] の順に移動します。
[新しいリダイレクト URL を追加] をクリックします。
Set this to
https://{{url}}/rest/slack/latest/oauth
, replacing{{url}}
with your Bitbucket URL.[URL を保存] をクリックします。
次に、[スコープ] セクションにスクロールして、次のスコープを追加します。
|
|
|
---|---|---|
|
|
|
|
|
|
6. Double-check that you've added all scopes, and click Save.
bot はこれらのスコープがすべて設定されている場合にのみ、適切に動作します。bot の動作であとから問題があった場合は、すべての必要な権限が設定されているかどうかをここで確認します。
ステップ 5: bot ユーザーを追加
機能 ナビゲーション バーで、[Bot ユーザー] > [Bot ユーザーを追加] の順にクリックします。
表示名とデフォルトのユーザー名には任意の値を設定します (例: 本番環境の Bitbucket)。
[Bot ユーザーを追加] をクリックします。
ステップ 6: イベント サブスクリプションをサブスクライブ
Bitbucket インスタンスがファイアウォールで保護されている場合は Slack はアクセスできないので、このセクションをスキップできます。
ナビゲーション バーで [イベント サブスクリプション] に移動します。
イベントを有効化トグル ボタンをクリックします。
リクエスト URL
https://{{url}}/rest/slack/latest/event.
を追加します。[変更] をクリックします。
Please make sure that it says Verified to ensure your connection between Slack and your Bitbucket instance.
これで、[ワークスペース イベント] で次のイベントをサブスクライブできます。
|
|
|
|
|
|
|
|
|
[Bot イベント] にスクロールすると、次のイベントを追加できます。
|
|
|
|
|
|
すべてのイベントが追加されていることを確認してください。bot の動作であとから問題があった場合は、すべての必要なイベントが追加されているかどうかをここで確認します。
4. Scroll down to App Unfurl Domains and add your Bitbucket domain.
5. [変更を保存] をクリックして、このセクションを終了します。
ステップ 7: アプリをインストール
これで、アプリを Slack ワークスペースにインストールできます。
ナビゲーション バーで、[設定] > [アプリをインストール] の順に移動します。
[アプリをワークスペースにインストール] をクリックします。
3. Bitbucket 設定画面の [ワークスペース セレクター] メニューから、[新しいチームに接続] を選択します。
4. [詳細設定] 接続タイプを選択します。
この画面で、Slack アプリのそれぞれの設定をコピーする必要があります。
Once completed, you'll be able to start using your Bitbucket integration.
Bitbucket インスタンスを複数のワークスペースに接続するために作成した Slack アプリを配布できますか?
上記の手順に従ってカスタム アプリを作成した場合は可能です。
まず、インスタンスには、アプリの認証情報を使用するワークスペースとの接続が 1 つ以上必要です。これが必要なのは、統合がアプリのクライアントとシークレットを認識するためです。
次に、Slack でインストール URL を見つけます。
- アプリを Slack API ページで探します。
- [設定] から [配布を管理] に移動します。
- 他のワークスペースで配布を有効化します。そのためには、Slack の要件を満たす必要があります。
- 共有可能な URL をコピーします。
- ブラウザで共有可能な URL に移動します。それによって、インストール フローがトリガーされます。
- ターゲット ワークスペースを選択して続行します。
- この時点で、アプリと統合が正しくセットアップされている場合は、Bitbucket の統合設定ページにリダイレクトされて新しい接続はすでにセットアップされているはずです。
Which Slash commands does the Bitbucket integration support?
There are the slash commands you can use while interacting with the integration:
スラッシュ コマンド | 操作 |
---|---|
/bitbucket_server help | スラッシュ コマンドのヘルプ情報を表示します。 |
/bitbucket_server account | Bitbucket アカウントを Slack アカウントに接続している場合は、Bitbucket アカウントが表示されます。Slack で課題にアクセスしたり Bitbucket でチャンネルを設定したりする場合は、アカウントを接続する必要があります。 |
どのように統合を微調整できますか?
次の表に示すように、統合の特定の部分を調整できるさまざまなシステム プロパティを使用できます。
システム プロパティ名 | 説明 | プラグインのデフォルト値 |
---|---|---|
slack.client.max.channel.bulk.load | 管理ページで使用される、一度に取得される Slack チャンネルの最大数。どのように Slack のレートが統合を制限するかに影響します。 | 50 |
slack.client.list.all.conversations | 有効にすると、設定ページのチャンネル セレクターのドロップダウンに、ユーザー チャンネルではなく選択したワークスペースのすべての Slack チャンネルが表示されます。 これを大規模なワークスペースでは使用しないようにしてください、小規模なワークスペースには便利です。 | false |
slack.client.pagination.limit |
この値を大きくしすぎるとブラウザが何度もエントリをレンダリングしようとするため、動作が遅くなるかクラッシュします。 | 2 |
slack.client.retry.on.connection.failure | 接続の確立に失敗した場合に再試行する OkHttp3 ブール型フラグ。製品ドキュメント。 | true |
slack.client.connect.timeout | 新しい接続を確立する際の OkHttp3 タイムアウト (ミリ秒)。製品ドキュメント。 | 3000 |
slack.client.read.timeout | データの接続を待機している間の OkHttp 3 タイムアウト (ミリ秒)。製品ドキュメント。 | 10000 |
slack.client.retry.count | Slack クライアントに 5xx レスポンスが返された場合に再試行する回数。バックオフ遅延 (秒) はそれぞれ、1、3、5、8、13、30 秒です。 | 3 |
slack.client.rate.limit.retry.count | Slack から 429 HTTP レスポンスが返された場合に、Slack クライアントが再試行する回数。製品ドキュメント。デフォルトで、Slack は Retry-After ヘッダーを、クライアントが次の試行を遅らせるために使用する時間間隔で返します。 | 3 |
slack.client.thread.pool.size | Slack 通知を処理するスレッドの数と、Slack からの受信リクエストの処理能力など、統合のその他の非同期操作にも影響します。 | 5 |
slack.client.queue.size | 統合によって消費されるメモリを制限します。たとえば、イベントの大きなスパイクによって一度に多数の通知がトリガーされてキューの最大サイズに達すると、新しい通知をスケジュールする試行は失敗してそれらの通知が削除されます。 デフォルト値が 1000 の場合は、処理するキューに変更を加えることなく、基本的に同様に発生する 1001 以上のイベントが必要となることにご注意ください。そのコンテキストで Slack 通知が有効になっている場合は、大規模な一括編集を行うとその制限に達する可能性があります。 | 1000 |
slack.client.cache.expire.seconds | Slack リクエストからキャッシュされた値 (チャンネルやユーザー名など) が失効するまでの時間 (秒)。値は Slack トークンに従ってキャッシュされるため、すべての値はそれぞれの Slack ユーザーに制限されます。 | 900 (15 分) |
slack.notification.max.watchers | イベント時に通知するプル リクエスト ウォッチャーの最大数です。レート制限に影響する可能性があります。 | 30 |
slack.addon.unfurl.file.max.lines | Slack で展開される最大行数です。 | 5 |
クラスタ環境の場合は、システム プロパティの一部とこれらのプロパティが表す上限がノードに個別に影響します。そのため、キュー サイズなどの制限は、クラスタで使用可能なノードの数に応じて拡張されます。
どのように統合をトラブルシューティングできますか?
デバッグ ロギング
次のパッケージを使用して、設定から DEBUG
レベル ログを有効にできます。
com.atlassian.plugins.slack
com.atlassian.bitbucket.plugins.slack
Slack からの接続
インスタンスと Slack の間の接続に問題がある場合は、以下を再確認してください。
- Slack は、HTTPS でセキュリティ保護された URL を介してインスタンスに到達できる。
- Slack アプリの設定で、末尾にスラッシュを付けずにベース URL を適切に保存している。
<baseUrl>/rest/slack/latest/*
パスがファイアウォールでホワイトリストに登録されて、セキュリティ フィルターが適用されていることを確認する。- Slack からの受信リクエストでは異なる認証メカニズムが使用されるため、これらのパスによって「匿名」リクエストが許可されることを確認する。
- インスタンスを公開できない場合でも、このページ説明に従ってカスタム アプリを作成することで、通知専用モードで統合を利用できる。
検証イベント エンドポイントにリクエストを実行することで、統合が利用可能かどうかを確認できます。bash ターミナルでは、次のコマンドで実行できます。
curl -X POST \
https://<bitbucket-base-url>/rest/slack/latest/event \
-H 'Content-Type: application/json' \
-H "X-Slack-Request-Timestamp: $(date +%s)" \
-H 'X-Slack-Signature: any-value' \
-d '{"challenge": "boo","type": "url_verification"}'
Slack でのインスタンス URL の送信失敗
インスタンスの URL を送信する際に、アプリがワークスペースから削除された直後に「Oops」エラーが発生することがあります。これは、Slack がアンインストールを完了する前にインスタンスに到達しようとするためです。
この問題は、15 分以内に自動的に修正されるか Slack によってプロセスが終了します。
これはアトラシアンのサポート対象ですか?
はい、もちろんです。この統合機能は、アトラシアンがビルドして保守しています。サポートが必要な場合は、support.atlassian.com にアクセスしてください。