정지용
기술스택 목록
도구

GitHub API

프로젝트 1에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

레포지토리, 이슈, 커밋 등 GitHub 데이터를 프로그램으로 조회·조작하는 API

GitHub API는 웹사이트를 직접 클릭하지 않고도 레포지토리, 이슈, PR, 커밋, 사용자 정보 등 GitHub 상의 거의 모든 데이터를 프로그램으로 읽고 쓸 수 있게 해주는 인터페이스다. 반복적인 레포 관리 작업을 자동화하거나, 외부 서비스가 GitHub 데이터를 가져와 활용하도록 만들려는 목적에서 제공된다. REST 방식과 GraphQL 방식을 모두 지원해 필요에 따라 선택할 수 있다.

이럴 때 사용합니다

  • 여러 레포지토리의 메타데이터나 파일을 일일이 열지 않고 자동으로 수집하고 싶을 때
  • 이슈, PR, 커밋 등록 같은 반복 작업을 스크립트로 자동화하고 싶을 때
  • 외부 서비스나 대시보드에 GitHub 데이터를 연동해 보여주고 싶을 때
  • 특정 이벤트 발생 시 자동으로 후속 작업을 트리거하고 싶을 때

핵심 개념

REST API
리소스별로 정해진 URL 엔드포인트에 HTTP 요청을 보내 데이터를 주고받는 전통적인 방식이다.
GraphQL API
하나의 엔드포인트에 원하는 필드만 지정한 쿼리를 보내 필요한 데이터만 정확히 받아오는 방식이다.
Personal Access Token
사용자를 대신해 API를 호출할 때 사용하는 인증용 토큰으로, 요청에 대한 권한 범위를 지정한다.
Rate Limit
일정 시간 동안 허용되는 API 호출 횟수 제한으로, 인증 여부에 따라 한도가 달라진다.
Webhook
레포지토리에서 특정 이벤트가 발생했을 때 지정한 URL로 알림을 자동으로 보내는 기능이다.
Pagination
목록 조회 결과가 많을 때 한 번에 일부만 반환하고 다음 페이지를 요청해 나머지를 가져오는 방식이다.

레포지토리 목록 조회

특정 사용자의 공개 레포지토리 목록과 각 레포의 이름, pushed_at 같은 메타데이터를 JSON으로 반환받는 예시이다.

Shell
curl -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <TOKEN>" \
  https://api.github.com/users/octocat/repos

처음 쓸 때 흔한 함정

  • 인증 없이 호출하면 요청 한도가 매우 낮아 대량 조회 시 금방 막힌다
  • 목록 조회 결과는 기본적으로 페이지네이션되어 있어 전체를 가져오려면 다음 페이지를 반복 요청해야 한다
  • 토큰에 필요 이상으로 넓은 권한을 부여하면 보안 위험이 커진다

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.