SlackとGitHubのWebhook連携で400エラー(no_text)

created
updated

経緯

SlackとGitHubのWebhook連携すると、エラーが発生するので、解決方法をまとめました。

まずは、再現させます。

Slackの設定

Slack APIへアクセス

Slack API: Applications | Slack

Slack API: Applications|SlackとGitHubのWebhook連携で400エラー(no_text)

アプリケーションを作成

アプリケーションを作成|SlackとGitHubのWebhook連携で400エラー(no_text)

アプリケーション名と対象のワークスペースを選択します。

Incoming Webhooksへアクセス

Incoming Webhooksへアクセス|SlackとGitHubのWebhook連携で400エラー(no_text)

Activate Incoming WebhooksをONにする

Activate Incoming WebhooksをONにする|SlackとGitHubのWebhook連携で400エラー(no_text)

OFFをクリックし、ONにします。

OFFをクリックし、ONにします|SlackとGitHubのWebhook連携で400エラー(no_text)

Add New Webhook to Workspaceをクリックする

Add New Webhook to Workspaceをクリックする|SlackとGitHubのWebhook連携で400エラー(no_text)

POSTするチャンネルを選択し、Allowをクリックする

POSTするチャンネルを選択し、Allowをクリックする|SlackとGitHubのWebhook連携で400エラー(no_text)

Webhook URLをコピーする

Webhook URLをコピーする|SlackとGitHubのWebhook連携で400エラー(no_text)

GitHubの設定

対象リポジトリのSettingsをクリックし、Add webhookをクリックする

対象リポジトリのSettingsをクリックし、Add webhookをクリックする|SlackとGitHubのWebhook連携で400エラー(no_text)

Slackの設定を入力する

Slackの設定を入力する|SlackとGitHubのWebhook連携で400エラー(no_text)

  • Payload URL

コピーしたWebhook URLをペーストします。

  • Content type

application/jsonを選択します。

動くと思ったら動かない 400 エラー

動くと思ったら動かない 400 エラー|SlackとGitHubのWebhook連携で400エラー(no_text)

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

Add to Slack|SlackとGitHubのWebhook連携で400エラー(no_text)

SlackにGitHubをインストールします。

Allowで許可|SlackとGitHubのWebhook連携で400エラー(no_text)

Allowで許可をします。

該当チャンネルでコマンド認証をする

integrations/slack: Bring your code to the conversations you care about with the GitHub and Slack integration

設定は「/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 integrationhttps://github.com/integrations/slack#configuration
# コマンド例
/github subscribe {所有者}/{リポジトリ} {機能}

欲しい機能をまとめたコマンド例

/github subscribe owner/repo issues pulls commits releases reviews comments

コマンドを実行

コマンドを実行|SlackとGitHubのWebhook連携で400エラー(no_text)

コマンドを実行し、Connet GitHub accountをクリックします。

対象のリポジトリを選択し、Install|SlackとGitHubのWebhook連携で400エラー(no_text)

対象のリポジトリを選択し、Installします。

テスト

テスト|SlackとGitHubのWebhook連携で400エラー(no_text)

今回は、Issueにコメントをしてテストしました。

TOP