Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-03-15. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

ペイロードを受信するようサーバーを設定する

受信するwebhookのペイロードを管理するためのサーバー設定を学んでください。

Webhook でメッセージを配信する準備ができたので、受信ペイロードを処理する基本的な Sinatra サーバーをセットアップします。

注: このプロジェクトの完全なソース コードは、platform-samples リポジトリからダウンロードできます。

サーバーの作成

サーバーが /payloadPOST 要求をリッスンするようにします。これは、GitHub にそこが Webhook の URL だと伝えたからです。 ここでは ngrok を使ってローカル環境を公開しているため、オンラインのどこかに実際のサーバーをセットアップする必要はなく、ローカルでコードを問題なくテストすることができます。

小さなSinatraのアプリケーションをセットアップして、この情報で何かをさせてみましょう。 初期のセットアップは以下のようになります。

require 'sinatra'
require 'json'

post '/payload' do
  push = JSON.parse(request.body.read)
  puts "I got some JSON: #{push.inspect}"
end

(Sinatra のしくみに詳しくない場合は、Sinatra ガイドを読むことをお勧めします。)

このサーバーを起動してください。

Issues を処理するイベントをリッスンするように Webhook をセットアップしたので、先に進んで、テストしているリポジトリに新しい Issue を作成します。 作成したら、ターミナルに戻ります。 以下のような出力があるでしょう。

$ ~/Developer/platform-samples/hooks/ruby/configuring-your-server $ ruby server.rb
> == Sinatra/1.4.4 has taken the stage on 4567 for development with backup from Thin
> >> Thin web server (v1.5.1 codename Straight Razor)
> >> Maximum connections set to 1024
> >> Listening on localhost:4567, CTRL+C to stop
> I got some JSON: {"action"=>"opened", "issue"=>{"url"=>"...

成功です。 webhookを待ち受けるようにサーバーを設定することに成功しました。 サーバーで、この情報を適切な方法で処理できるようになりました。 たとえば、"実際の" Web アプリケーションをセットアップしている場合は、JSON 出力の一部をデータベースにログできます。

楽しく利益を得るために Webhook を操作する方法の詳細については、Webhook のテストのガイドに進んでください。