API 목록으로
🛠️ 개발·협업무료

GitHub API

GitHub (Microsoft) · GitHub REST & GraphQL API

인증 방식

🔐 OAuth 2.0

요금

무료 (공개 저장소), 비공개 저장소는 Personal Access Token

Base URL

api.github.com

태그

GitHub, 개발

서비스 소개

GitHub REST API와 GraphQL API를 통해 저장소, 이슈, PR, 커밋, 릴리즈, 액션 등 GitHub의 모든 데이터를 읽고 쓸 수 있습니다. 웹훅으로 이벤트를 받아 슬랙 알림, 자동 배포, 이슈 트래킹 등 다양한 자동화를 구현할 수 있습니다.

🚀 시작하기

  1. 1

    Personal Access Token 발급

    GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → 권한 선택

  2. 2

    권한 설정

    필요한 권한만 선택 (repo: 저장소 읽기/쓰기, issues: 이슈 관리 등)

  3. 3

    SDK 설치 (선택)

    npm install @octokit/rest — 또는 fetch로 직접 호출 가능

📋 응답 예시

{
  "id": 1296269,
  "name": "my-repo",
  "full_name": "octocat/my-repo",
  "stargazers_count": 80,
  "open_issues_count": 5,
  "default_branch": "main"
}

💡 코드 예제

JavaScriptNode.js (Octokit)
import { Octokit } from '@octokit/rest'

const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN })

// 저장소 이슈 목록
const { data: issues } = await octokit.rest.issues.listForRepo({
  owner: 'your-org',
  repo: 'your-repo',
  state: 'open',
  per_page: 20,
})

// 이슈 생성
const { data: issue } = await octokit.rest.issues.create({
  owner: 'your-org',
  repo: 'your-repo',
  title: '버그 발견',
  body: '재현 방법: ...',
  labels: ['bug'],
})

// 최신 릴리즈 조회
const { data: release } = await octokit.rest.repos.getLatestRelease({
  owner: 'your-org',
  repo: 'your-repo',
})
console.log(release.tag_name, release.html_url)
cURLcURL (REST)
# 저장소 정보
curl -H "Authorization: Bearer $GITHUB_TOKEN" \
  https://api.github.com/repos/owner/repo

# 이슈 생성
curl -X POST \
  -H "Authorization: Bearer $GITHUB_TOKEN" \
  -H "Content-Type: application/json" \
  https://api.github.com/repos/owner/repo/issues \
  -d '{"title":"버그","body":"내용","labels":["bug"]}'