経緯
SlackとGitHubのWebhook連携すると、エラーが発生するので、解決方法をまとめました。
まずは、再現させます。
Slackの設定
Slack APIへアクセス
Slack API: Applications | Slack
アプリケーションを作成
アプリケーション名と対象のワークスペースを選択します。
Incoming Webhooksへアクセス
Activate Incoming WebhooksをONにする
OFFをクリックし、ONにします。
Add New Webhook to Workspaceをクリックする
POSTするチャンネルを選択し、Allowをクリックする
Webhook URLをコピーする
GitHubの設定
対象リポジトリのSettingsをクリックし、Add webhookをクリックする
Slackの設定を入力する
- Payload URL
コピーしたWebhook URL
をペーストします。
- Content type
application/json
を選択します。
動くと思ったら動かない 400 エラー
Headers
Access-Control-Allow-Origin: *
Content-Type: text/html
Date: Wed, 21 Apr 2021 13:53:22 GMT
Referrer-Policy: no-referrer
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Vary: Accept-Encoding
Via: envoy-www-iad-56t3
X-Backend: main_normal main_bedrock_normal_with_overflow main_canary_with_overflow main_bedrock_canary_with_overflow main_control_with_overflow main_bedrock_control_with_overflow
X-Envoy-Upstream-Service-Time: 10
X-Frame-Options: SAMEORIGIN
X-Server: slack-www-hhvm-main-iad-igf3
X-Slack-Backend: r
X-Slack-Shared-Secret-Outcome: shared-secret
X-Via: envoy-www-iad-56t3, haproxy-edge-iad-f9yt
Body
no_text
結論:GitHub Appをインストール
Slackにインストール
SlackにGitHubをインストールします。
Allowで許可をします。
該当チャンネルでコマンド認証をする
設定は「/github slash」コマンドで行います。
/github subscribe owner/repo [feature] (サブスクライブ オーナー/レポ) /github subscribe owner/repo [feature] /github unsubscribe owner/repo [feature これらはデフォルトで有効になっており、/github unsubscribe owner/repo [feature]コマンドで無効にすることができます。
issues - オープンまたはクローズされた課題 pulls - 新規またはマージされたプルリクエスト、および "Ready for Review "とマークされたプルリクエストのドラフト commits - デフォルトブランチ(通常はmaster)での新しいコミット releases - 公開されたリリース これらはデフォルトでは無効になっていますが、/github subscribe owner/repo [feature]コマンドで有効にすることができます。
reviews - プルリクエストのレビュー comments - 課題やプルリクエストに対する新しいコメント branches - 作成または削除されたブランチ commits:* - 任意のブランチにプッシュされたすべてのコミット +label: "your label" - 課題、プルリクエスト、コメントを、そのラベルに基づいてフィルタリングします。 複数の設定を一度に登録・解除することができます。例えば、プルリクエストのレビューやコメントのアクティビティをオンにする場合。
/github subscribe owner/repo reviews comments
出典:integrations/slack: Bring your code to the conversations you care about with the GitHub and Slack integration(https://github.com/integrations/slack#configuration)
# コマンド例
/github subscribe {所有者}/{リポジトリ} {機能}
欲しい機能をまとめたコマンド例
/github subscribe owner/repo issues pulls commits releases reviews comments
コマンドを実行
コマンドを実行し、Connet GitHub account
をクリックします。
対象のリポジトリを選択し、Installします。
テスト
今回は、Issueにコメントをしてテストしました。