GitHUB Webhook & API

WooJin Shin·2021년 5월 29일

GitHUB

목록 보기
2/2

GitHUB Webhook?? API??

GitHUB에서는 Repository에 대한 데이터가 필요한 경우, 다양한 방법을 제공한다.
이 포스팅에서는 GitHUB에서 제공하는 데이터를 활용해야하는 경우 어떤 방법들이 있는지 정리하고자한다.

Webhook

Webhook은 Repository 특정 이벤트가 발생했을 때, GitHUB으로 부터 데이터를 전달받을 수 있는 방법이다. 이벤트란 GitHUB Repository에서 수행하는 대부분의 작업을 의미한다. (commit 생성, branch 생성, issue 생성, wiki 업데이트....등)

  • Webhook은 GitHUB Repository -> settings -> hooks에서 등록할 수 있다.

  • Webhook을 등록하는 것은 간단하다

    • Repository에서 발생한 이벤트에 대해 데이터를 전달받을 URL을 등록한다.
    • 데이터 형식인 content-type을 지정
    • 보안을 위해서 secret을 지정할 수도 있다.
    • Webhook으로 전달받을 이벤트 선택
  • Webhook을 전달받을 endpoint 개발

    • GitHUB에서 이벤트가 발생하면 위에서 설정한 URL로 POST 요청하여 데이터를 전달 받는다.
    • 즉, Webhook 요청을 처리할 서비스가 필요하다.
    • 대부분의 작업들에 대한 알림을 Webhook으로 받을 수 있기 때문에 자동화라던지 개발에 편리한 작업들을 수행할 수 있다.

외부 서비스 통합

외부 서비스 통합은 해당 서비스에서 이미 GitHUB과의 통합을 위해 Webhook 요청을 처리하는 URL이 존재하여 쉽게 서비스를 통합할 수 있다.

  • travis, jenkins를 이용하여 CI/CD 프로세스를 쉽게 GitHUB 저장소와 통합
  • slack 채널에 webhook을 등록해서 GitHUB 저장소에 이벤트가 발생할 때마다 해당 채널로 알림
  • 다양한 서비스가 존재하니 필요한 경우, 쉽게 통합하여 사용할 수 있다.

API

Webhook이 이벤트에 대한 알림을 받는 형태라면, API는 직접 필요한 데이터를 요청할 수 있도록 GitHUB에서 제공하는 API를 의미한다.

  • 더 자세한 데이터가 필요한 경우, 직접 요청을 해서 응답을 받는 것
  • Repository에 대한 정보뿐만 아니라 API를 이용해서 다양한 작업들을 자동화 할 수 있다.
    • 공동 작업자 추가, 이슈 레이블 지정, PR 상태변경, 마크다운 생성, .gitignore 생성 등. 반복적으로 비효율적인 작업을 자동화 할 수 있다.
  • API는 REST API, GraphQL API 모두 제공한다.
  • 엔터프라이즈의 경우, 버전에 따라 문서내용이 상이할 수 있으니 버전을 잘 확인하고, API 문서를 확인해야한다.

참고자료

profile
꿈꾸는 개발자

0개의 댓글