Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2022-10-12. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの 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 のテストのガイドに進んでく� さい。