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
- table not found
- k8s #kubernetes #쿠버네티스
- PersistenceContext
- Value too long for column
- 겨울 부산
- 자원부족
- python
- JanusWebRTCServer
- 오블완
- mp4fpsmod
- PytestPluginManager
- VARCHAR (1)
- 코루틴 빌더
- preemption #
- 깡돼후
- taint
- 티스토리챌린지
- 코루틴 컨텍스트
- tolerated
- pytest
- JanusWebRTCGateway
- 개성국밥
- terminal
- JanusGateway
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- 달인막창
- JanusWebRTC
- vfr video
- Spring Batch
- kotlin
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