Recent Posts
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- JanusWebRTCGateway
- OptimisticLock
- 달인막창
- k8s #kubernetes #쿠버네티스
- PessimisticLock
- preemption #
- vfr video
- 티스토리챌린지
- pytest
- python
- terminal
- 코루틴 컨텍스트
- JanusGateway
- 개성국밥
- k8s
- 겨울 부산
- tolerated
- kotlin
- 자원부족
- 코루틴 빌더
- 깡돼후
- mp4fpsmod
- 오블완
- Spring Batch
- JanusWebRTCServer
- Kubernetes
- JanusWebRTC
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- taint
- PersistenceContext
Archives
너와 나의 스토리
[GitHub WebHook] Webhook 설명 및 사용법 본문
반응형
Webhook
- 웹 개발의 Webhook은 사용자 정의 callback을 사용하여 웹 페이지 또는 애플리케이션의 동작을 향상하거나 변경하는 방법이다.
GitHub Webhook
- Webhook을 사용하면 GitHub Apps 또는 OAuth Apps와 같은 integration을 빌드하거나 설정할 수 있다.
- 이러한 이벤트(예: commit code) 중 하나가 트리거되면 HTTP POST Payload를 webhook에 설정된 URL로 보낸다.
- webhook을 이용해 CI 빌드를 트리거하거나 production 서버에 배포할 수 있다.
WebHook 설정하기
- GitHub에서 특정 repository에서 [setting>Webhooks]에 들어가서 'Add webhook' 버튼을 누르면 다음과 같은 화면을 볼 수 있다.

- Payload URL
- Payload URL은 webhook POST request를 받을 서버 URL이다.
- Content type
- application/json: Webhook을 JSON payload로 받음
- application/x-www-form-urlencoded: Webhook을 payload라고 불리는 form parameter로 JSON payload를 보냄
- Secret
- secret을 설정하면 payload URL로 전송된 POST 요청이 GitHub Enterprise Server에서 전송되었는지 확인할 수 있다.
- 암호를 설정하면 Webhook POST 요청에 X-Hub-Signature 헤더가 표시된다.
- signature header와 함께 암호를 사용하면 webhook payload를 보호하는 방법: Securing your webhooks
로컬 서버에서 WebHook 받아보기
1. 로컬 서버를 공용 인터넷에 노출시키기
- ngok을 이용한다.
- ngok: 로컬 개발 서버를 인터넷에 노출할 수 있도록 하는 cross-platform application이다.
- 무료 다운: [ngrok.com/download]
- 로컬 서버 외부로 노출하기
- 터미널에서 다운 받은 곳으로 이동 후(cd) 다음의 명령어 실행
./ngrok http {port}
ex) ./ngrok http 4567
- 그럼 다음과 같은 화면을 볼 수 있다.


2. GitHub webhook setting
- 해당 repository의 settings>Webhooks에 payload url 설정

- 이렇게 성공적으로 webhook을 받을 수 있다.
- 실패한 webhoook은 redelivery 버튼을 통해 다시 보내보자

출처:
- en.wikipedia.org/wiki/Webhook
- docs.github.com/en/enterprise-server@2.22/developers/webhooks-and-events/about-webhooks
반응형
'개발' 카테고리의 다른 글
| [MySQL] Can't DROP 'key name'; check that column/key exists (0) | 2021.08.09 |
|---|---|
| Docker image 생성 및 배포하기 (0) | 2021.05.02 |
| Appium 설치 및 사용하기 - 기본 설정&테스트 (0) | 2021.02.17 |
| [Jenkins] Remote Access API로 Job 호출 (1) | 2021.02.09 |
| [homebrew] brew cask 사용하기, "Unknown command: cask" 에러 해결 (2) | 2021.02.07 |
Comments