Skip to main content

We've recently moved some of the REST API documentation. If you can't find what you're looking for, you might try the new Branches, Collaborators, Commits, Deploy Keys, Deployments, GitHub Pages, Releases, Metrics, Webhooks REST API pages.

리포지토리 웹후크

REST API를 사용하여 리포지토리에 대한 웹후크를 만들고 관리합니다.

리포지토리 웹후크 정보

리포지토리 웹후크를 사용하면 리포지토리에서 특정 이벤트가 발생할 때마다 HTTP POST 페이로드를 받을 수 있습니다. REST API를 사용하여 리포지토리, 조직 및 앱 웹후크를 관리할 수 있습니다. 웹후크에 대한 웹후크 배달을 나열하거나 외부 앱 또는 서비스에 통합할 수 있는 웹후크에 대한 개별 배달을 가져와서 다시 배달할 수 있습니다. REST API를 사용하여 웹후크의 구성을 변경할 수도 있습니다. 예를 들어 페이로드 URL, 콘텐츠 형식, SSL 확인 및 비밀을 수정할 수 있습니다. 자세한 내용은 다음을 참조하세요.

조직의 모든 리포지토리에서 이벤트를 수신하도록 단일 웹후크를 설정하려면 조직 웹후크에 대한 REST API 설명서를 참조하세요.

REST API 외에도 GitHub는 리포지토리의 PubSubHubbub 허브 역할을 할 수도 있습니다.

웹후크 받기

GitHub Enterprise Server가 웹후크 페이로드를 보내려면 인터넷에서 서버에 액세스할 수 있어야 합니다. 또한 HTTPS를 통해 암호화된 페이로드를 보낼 수 있도록 SSL을 사용하는 것이 좋습니다.

웹후크 헤더

GitHub Enterprise Server는 이벤트 유형과 페이로드 식별자를 구분하기 위해 여러 HTTP 헤더를 함께 보냅니다. 자세한 내용은 웹후크 헤더를 참조하세요.

PubSubHubbub

GitHub는 모든 리포지토리에 대한 PubSubHubbub 허브 역할을 할 수도 있습니다. PSHB는 토픽이 업데이트될 때 서버가 업데이트를 수신하도록 등록할 수 있는 간단한 게시/구독 프로토콜입니다. 업데이트는 HTTP POST 요청과 함께 콜백 URL로 전송됩니다. GitHub 리포지토리의 푸시에 대한 토픽 URL은 다음과 같은 형식입니다.

https://github.com/{owner}/{repo}/events/{event}

이벤트는 사용 가능한 모든 웹후크 이벤트일 수 있습니다. 자세한 내용은 “웹후크 이벤트 및 페이로드”를 참조하세요.

응답 형식

기본 형식은 기존 사후 수신 후크가 기대하는 POST에서 payload 매개 변수로 전송된 JSON 본문입니다. Accept 헤더 또는 .json 확장으로 원시 JSON 본문을 받도록 지정할 수도 있습니다.

Accept: application/json
https://github.com/{owner}/{repo}/events/push.json

콜백 URL

콜백 URL은 HTTP 프로토콜을 사용할 수 있습니다.

# Send updates to a PostBin bin
https://www.toptal.com/developers/postbin/123

구독

GitHub PubSubHubbub 엔드포인트는 http(s)://HOSTNAME/api/v3/hub입니다. curl이 있는 성공적인 요청은 다음과 같습니다.

curl -u "user" -i \
  http(s)://HOSTNAME/api/v3/hub \
  -F "hub.mode=subscribe" \
  -F "hub.topic=https://github.com/{owner}/{repo}/events/push" \
  -F "hub.callback=https://www.toptal.com/developers/postbin/123"

PubSubHubbub 요청은 여러 번 보낼 수 있습니다. 후크가 이미 있는 경우 요청에 따라 수정됩니다.

매개 변수
이름형식설명
hub.modestring필수. subscribe 또는 unsubscribe입니다.
hub.topicstring필수. 구독할 GitHub 리포지토리의 URI입니다. 경로는 /{owner}/{repo}/events/{event} 형식이어야 합니다.
hub.callbackstring토픽에 대한 업데이트를 받을 URI입니다.
hub.secretstring발신되는 본문 콘텐츠의 해시 서명을 생성하는 공유 비밀 키입니다. 원시 요청 본문을 X-Hub-Signature 또는 X-Hub-Signature-256 헤더의 내용과 비교하여 푸시가 GitHub에서 제공되었는지 확인할 수 있습니다. 자세한 내용은 PubSubHubbub 설명서를 참조하세요.