Skip to main content

웹후크 이벤트 및 페이로드

각 웹후크 이벤트가 발생하는 시기와 페이로드에 포함된 항목에 대해 알아봅니다.

웹후크 이벤트 및 페이로드 정보

이 페이지에 나열된 이벤트를 구독하는 웹후크를 만들 수 있습니다. 서버에 대한 HTTP 요청 수를 제한하려면 처리하려는 특정 이벤트만 구독해야 합니다. 자세한 내용은 웹후크 만들기을(를) 참조하세요.

이 페이지의 각 웹후크 이벤트에는 해당 이벤트에 대한 웹후크 속성 설명이 포함되어 있습니다. 이벤트에 여러 작업이 있는 경우 각 작업에 해당하는 속성이 포함되어 있습니다.

각 이벤트는 특정 유형의 웹후크에서만 사용할 수 있습니다. 예를 들어 조직 웹후크는 team 이벤트를 구독할 수 있지만 리포지토리 웹후크는 구독할 수 없습니다. 각 웹후크 이벤트에 대한 설명에는 해당 이벤트의 사용 가능성이 나열되어 있습니다. 자세한 내용은 웹후크 유형을(를) 참조하세요.

sender 속성

대부분의 웹후크 페이로드에는 이벤트를 트리거한 사용자를 식별하는 속성이 포함 sender 됩니다. GitHub 이벤트가 사람이 아닌 내부 프로세스에서 발생하거나 트리거 작업에 연결된 사용자가 없는 경우와 같이 특정 사용자를 확인할 수 없는 경우가 있습니다. 이러한 check_run``check_suite일부 이벤트의 경우 Git 푸시 또는 인증된 API 행위자가 없는 작업이 포함됩니다.

이러한 경우 senderghost 사용자로 채워지며, 그 loginghost이며 id이 실제 현재 사용자에 연결되지 않은 자리 표시자 계정입니다. sender이 항상 이벤트를 발생시킨 사람을 식별한다고 가정하지 말고, 이에 의존하는 모든 보안 또는 비즈니스 로직에서 ghost 사용자를 고려하세요.

페이로드 한도

페이로드는 25MB로 제한됩니다. 이벤트가 더 큰 페이로드를 생성하는 경우 GitHub이(가) 해당 웹후크 이벤트에 대한 페이로드를 제공하지 않습니다. 예를 들어 여러 분기 또는 태그가 한 번에 푸시되는 경우 create 이벤트에 대해 발생할 수 있습니다. 배달을 보장하기 위해 페이로드 크기를 모니터링하는 것이 좋습니다.

전송 헤더

웹후크의 구성된 URL 엔드포인트로 배달되는 HTTP POST 페이로드는 다음과 같은 몇 가지 특수 헤더를 포함합니다.

  • X-GitHub-Hook-ID: 웹후크의 고유 식별자입니다.
  • X-GitHub-Event: 배달을 트리거한 이벤트의 이름입니다.
  • X-GitHub-Delivery: 이벤트를 식별하는 GUID(Globally Unique Identifier)입니다.
  • X-Hub-Signature: 웹후크가 secret으로 구성된 경우 이 헤더가 전송됩니다. 이는 요청 본문의 HMAC 16진수 다이제스트이며 SHA-1 해시 함수 및 secret을 HMAC key로 사용하여 생성됩니다. X-Hub-Signature는 기존 통합과의 호환성을 위해 제공됩니다. 대신 더 안전한 X-Hub-Signature-256을 사용하는 것이 좋습니다.
  • X-Hub-Signature-256: 웹후크가 secret으로 구성된 경우 이 헤더가 전송됩니다. 이는 요청 본문의 HMAC 16진수 다이제스트이며 SHA-256 해시 함수 및 secret을 HMAC key로 사용하여 생성됩니다. 자세한 내용은 웹후크 제공 유효성 검사하기을(를) 참조하세요.
  • User-Agent: 이 헤더에는 항상 접두사 GitHub-Hookshot/ 있습니다.
  • X-GitHub-Hook-Installation-Target-Type: 웹후크가 만들어진 리소스의 유형입니다.
  • X-GitHub-Hook-Installation-Target-ID: 웹후크가 만들어진 리소스의 고유 식별자입니다.

웹후크 페이로드에서 각 헤더가 어떻게 표시되는지 확인하려면 웹후크 배달 예를 참조하세요.

웹후크 배달 예시

페이로드를 JSON 형식(application/json) 또는 URL로 인코딩된 데이터(x-www-form-urlencoded)로 배달하도록 선택할 수 있습니다. 다음은 JSON 형식을 사용하는 웹후크 POST 요청의 예입니다.

> POST /payload HTTP/1.1

> X-GitHub-Delivery: 72d3162e-cc78-11e3-81ab-4c9367dc0958
> X-Hub-Signature: sha1=7d38cdd689735b008b3c702edd92eea23791c5f6
> X-Hub-Signature-256: sha256=d57c68ca6f92289e6987922ff26938930f6e66a2d161ef06abdf1859230aa23c
> User-Agent: GitHub-Hookshot/044aadd
> Content-Type: application/json
> Content-Length: 6615
> X-GitHub-Event: issues
> X-GitHub-Hook-ID: 292430182
> X-GitHub-Hook-Installation-Target-ID: 79929171
> X-GitHub-Hook-Installation-Target-Type: repository

> {
>   "action": "opened",
>   "issue": {
>     "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347",
>     "number": 1347,
>     ...
>   },
>   "repository" : {
>     "id": 1296269,
>     "full_name": "octocat/Hello-World",
>     "owner": {
>       "login": "octocat",
>       "id": 1,
>       ...
>     },
>     ...
>   },
>   "sender": {
>     "login":