Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.

이 버전의 GitHub Enterprise는 다음 날짜에 중단되었습니다. 2023-03-15. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 성능 향상, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

페이로드를 받도록 서버 구성

들어오는 웹후크 페이로드를 관리하도록 서버를 설정하는 방법을 알아봅니다.

이제 웹후크가 메시지를 배달할 준비가 되었으므로 들어오는 페이로드를 처리하도록 기본 Sinatra 서버를 설정합니다.

참고: 플랫폼 샘플 리포지토리에서 이 프로젝트에 대한 전체 소스 코드를 다운로드할 수 있습니다.

서버 작성

GitHub에 웹후크 URL이었다고 명시한 위치이기 때문에 /payload 시 서버에서 POST 요청을 수신 대기하기를 원합니다. 를 사용하여 ngrok 로컬 환경을 노출하기 때문에 온라인 어딘가에 실제 서버를 설정할 필요가 없으며 코드를 로컬로 테스트할 수 있습니다.

이러한 정보로 작업을 수행하도록 작은 Sinatra 앱을 설정해 보겠습니다. 최초 설정은 다음과 같습니다.

require 'sinatra'
require 'json'

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

(Sinatra의 작동 방식에 익숙하지 않은 경우 가이드를 읽는 것이 좋습니다.)

이 서버를 시작합니다.

Issues를 처리하는 이벤트를 수신하도록 웹후크를 설정했으므로 계속 진행하여 테스트 중인 리포지토리에 새 이슈를 만듭니다. 이슈를 만든 후 터미널로 다시 전환합니다. 출력 내용은 다음과 비슷해야 합니다.

$ ~/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"=>"...

성공했습니다. 웹후크를 수신 대기하도록 서버를 구성했습니다. 이제 서버에서 이 정보를 원하는 방식으로 처리할 수 있습니다. 예를 들어 “실제” 웹 애플리케이션을 설정한 경우 데이터베이스에 JSON 출력의 일부를 기록하려고 할 수 있습니다.

재미와 유익을 위해 웹후크를 사용하는 방법에 대한 자세한 내용은 웹후크 테스트 가이드를 참조하세요.