이 문서에서는 GitHub CLI, JavaScript 또는 curl
를 사용하여 GitHub REST API를 빠르게 시작하는 방법을 설명합니다. 자세한 가이드는 "REST API 시작"을 참조하세요.
GitHub CLI를 사용하여 시작
명령줄에서 GitHub CLI 사용
GitHub CLI는 명령줄에서 GitHub REST API를 사용하는 가장 쉬운 방법입니다.
-
아직 설치하지 않은 경우 GitHub CLI를 설치합니다. 설치 지침은 GitHub CLI 리포지토리를 참조하세요.
-
auth login
하위 명령을 사용하여 GitHub CLI에 인증합니다. 자세한 내용은 GitHub CLIauth login
설명서를 참조하세요.gh auth login
-
api
하위 명령을 사용하여 API 요청을 만듭니다. 자세한 내용은 GitHub CLIapi
설명서를 참조하세요.gh api repos/octocat/Spoon-Knife/issues
GitHub Actions에서 GitHub CLI 사용
GitHub Actions 워크플로에서 GitHub CLI를 사용할 수도 있습니다. 자세한 내용은 "워크플로에서 GitHub CLI 사용"을 참조하세요.
gh auth login
명령을 사용하는 대신 액세스 토큰을 GH_TOKEN
이라는 환경 변수로 전달합니다. GitHub에서는 토큰을 만드는 대신 기본 제공 GITHUB_TOKEN
을 사용하는 것이 좋습니다. 가능하지 않은 경우 토큰을 비밀로 저장하고 아래 예제의 GITHUB_TOKEN
을 비밀의 이름으로 바꿉니다. 에 대한 GITHUB_TOKEN
자세한 내용은 "자동 토큰 인증. 비밀에 대한 자세한 내용은 "암호화된 비밀.
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api repos/octocat/Spoon-Knife/issues
GitHub App을 사용하여 인증하는 경우 워크플로 내에서 설치 액세스 토큰을 만들 수 있습니다.
-
GitHub App의 ID를 비밀로 저장합니다. 다음 예에서
APP_ID
을 비밀의 이름으로 바꿉니다. 앱의 설정 페이지 또는 API를 통해 앱 ID를 찾을 수 있습니다. 자세한 내용은 REST API 설명서의 "GitHub 앱"을 참조하세요. 비밀에 대한 자세한 내용은 "암호화된 비밀. -
앱에 대한 프라이빗 키를 생성합니다. 결과 파일의 내용을 비밀로 저장합니다. (
-----BEGIN RSA PRIVATE KEY-----
및-----END RSA PRIVATE KEY-----
를 포함하여 파일의 전체 내용을 저장합니다.) 다음 예에서APP_PEM
을 비밀의 이름으로 바꿉니다. 자세한 내용은 "GitHub 앱에 대한 프라이빗 키 관리"을 참조하세요. -
토큰을 생성하는 단계를 추가하고
GITHUB_TOKEN
대신 해당 토큰을 사용합니다. 이 토큰은 60분 후에 만료됩니다. 예를 들면 다음과 같습니다.# 이 워크플로는 GitHub에서 인증되지 않은 작업을 사용합니다. # 작업은 타사에서 제공하며 # 별도의 서비스 약관, 개인정보처리방침, 지원 설명서에서 규정됩니다. # 참조하세요. on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate_token uses: tibdex/github-app-token@c2055a00597a80f713b78b1650e8d3418f4d9a65 with: app_id: ${{ secrets.APP_ID }} private_key: ${{ secrets.APP_PEM }} - name: Use API env: GH_TOKEN: ${{ steps.generate_token.outputs.token }} run: | gh api repos/octocat/Spoon-Knife/issues
JavaScript 사용 시작
Octokit.js를 사용하여 JavaScript 스크립트에서 GitHub REST API와 상호 작용할 수 있습니다. 자세한 내용은 "REST API 및 JavaScript를 사용한 스크립팅"을 참조하세요.
Octokit.js 사용
-
액세스 토큰을 만듭니다. 예를 들어 personal access token 또는 GitHub App 사용자 액세스 토큰을 만듭니다. 자세한 내용은 "personal access token" 또는 "GitHub 앱에 대한 사용자 식별 및 권한 부여"를 참조하세요.
경고: 액세스 토큰을 암호와 같이 취급하세요.
토큰을 안전하게 유지하기 위해 비밀로 저장하고 GitHub Actions를 통해 스크립트를 실행할 수 있습니다. 자세한 내용은 “GitHub Actions에서 Octokit.js 사용” 섹션을 참조하세요.
또한 토큰을 Codespaces 비밀로 저장하고 Codespaces에서 스크립트를 실행할 수도 있습니다. 자세한 내용은 “codespace에 대한 암호화된 비밀 관리”를 참조하세요.
이러한 옵션을 사용할 수 없는 경우 1Password CLI와 같은 다른 서비스를 사용하여 토큰을 안전하게 저장하는 것이 좋습니다.
-
octokit
설치 예들 들어npm install octokit
입니다.octokit
를 설치 또는 로드하는 다른 방법은 Octokit.js 추가 정보를 참조하세요. -
스크립트로
octokit
를 가져옵니다. 예들 들어import { Octokit } from "octokit";
입니다.octokit
를 가져오는 다른 방법은 the Octokit.js 추가 정보를 참조하세요. -
토큰을 사용하여
Octokit
의 인스턴스를 만듭니다.YOUR-TOKEN
을 실제 토큰으로 바꿉니다.const octokit = new Octokit({ auth: 'YOUR-TOKEN' });
-
octokit.request
를 사용하여 요청을 실행합니다. HTTP 메서드와 경로를 첫 번째 인수로 보냅니다. 개체의 경로, 쿼리 및 본문 매개 변수를 두 번째 인수로 지정합니다. 예를 들어 다음 요청에서 HTTP 메서드는GET
이며, 경로는/repos/{owner}/{repo}/issues
이고 매개 변수는owner: "octocat"
및repo: "Spoon-Knife"
입니다.await octokit.request("GET /repos/{owner}/{repo}/issues", { owner: "octocat", repo: "Spoon-Knife", });
GitHub Actions에서 Octokit.js 사용
GitHub Actions 워크플로에서 JavaScript 스크립트를 실행할 수도 있습니다. 자세한 내용은 "GitHub Actions에 대한 워크플로 구문"을 참조하세요.
GitHub에서는 토큰을 만드는 대신 기본 제공 GITHUB_TOKEN
을 사용하는 것이 좋습니다. 가능하지 않은 경우 토큰을 비밀로 저장하고 아래 예제의 GITHUB_TOKEN
을 비밀의 이름으로 바꿉니다. 에 대한 GITHUB_TOKEN
자세한 내용은 "자동 토큰 인증. 비밀에 대한 자세한 내용은 "암호화된 비밀.
다음 예제 워크플로:
- 리포지토리 콘텐츠 체크 아웃
- Node.js 설정
octokit
를 설치합니다.GITHUB_TOKEN
의 값을TOKEN
이라는 환경 변수로 저장하고, 이 환경 변수에process.env.TOKEN
으로 액세스할 수 있는.github/actions-scripts/use-the-api.mjs
를 실행합니다.
예제 워크플로:
on:
workflow_dispatch:
jobs:
use_api_via_script:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- name: Check out repo content
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: '16.17.0'
cache: npm
- name: Install dependencies
run: npm install octokit
- name: Run script
run: |
node .github/actions-scripts/use-the-api.mjs
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
JavaScript 스크립트 예제(파일 경로: .github/actions-scripts/use-the-api.mjs
):
import { Octokit } from "octokit"
const octokit = new Octokit({
auth: process.env.TOKEN
});
try {
const result = await octokit.request("GET /repos/{owner}/{repo}/issues", {
owner: "octocat",
repo: "Spoon-Knife",
});
const titleAndAuthor = result.data.map(issue => {title: issue.title, authorID: issue.user.id})
console.log(titleAndAuthor)
} catch (error) {
console.log(`Error! Status: ${error.status}. Message: ${error.response.data.message}`)
}
GitHub App을 사용하여 인증하는 경우 워크플로 내에서 설치 액세스 토큰을 만들 수 있습니다.
-
GitHub App의 ID를 비밀로 저장합니다. 다음 예에서
APP_ID
을 비밀의 이름으로 바꿉니다. 앱의 설정 페이지 또는 앱 API를 통해 앱 ID를 찾을 수 있습니다. 자세한 내용은 "GitHub 앱"을 참조하세요. 비밀에 대한 자세한 내용은 "암호화된 비밀. -
앱에 대한 프라이빗 키를 생성합니다. 결과 파일의 내용을 비밀로 저장합니다. (
-----BEGIN RSA PRIVATE KEY-----
및-----END RSA PRIVATE KEY-----
를 포함하여 파일의 전체 내용을 저장합니다.) 다음 예에서APP_PEM
을 비밀의 이름으로 바꿉니다. 자세한 내용은 "GitHub 앱에 대한 프라이빗 키 관리"을 참조하세요. -
토큰을 생성하는 단계를 추가하고
GITHUB_TOKEN
대신 해당 토큰을 사용합니다. 이 토큰은 60분 후에 만료됩니다. 예를 들면 다음과 같습니다.# 이 워크플로는 GitHub에서 인증되지 않은 작업을 사용합니다. # 작업은 타사에서 제공하며 # 별도의 서비스 약관, 개인정보처리방침, 지원 설명서에서 규정됩니다. # 참조하세요. on: workflow_dispatch: jobs: use_api_via_script: runs-on: ubuntu-latest steps: - name: Check out repo content uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3 with: node-version: '16.17.0' cache: npm - name: Install dependencies run: npm install octokit - name: Generate token id: generate_token uses: tibdex/github-app-token@c2055a00597a80f713b78b1650e8d3418f4d9a65 with: app_id: ${{ secrets.APP_ID }} private_key: ${{ secrets.APP_PEM }} - name: Run script run: | node .github/actions-scripts/use-the-api.mjs env: TOKEN: ${{ steps.generate_token.outputs.token }}
사용 시작 curl
명령줄에서 사용 curl
-
컴퓨터에 아직 설치되지 않은 경우 설치
curl
합니다. 가 설치된 경우curl
검사 명령줄에서 를 실행curl --version
합니다. 출력이 버전curl
에 대한 정보인 경우 가 설치됩니다. 와 유사한command not found: curl
메시지가 표시되면 를 다운로드하여 설치curl
해야 합니다. 자세한 내용은 curl 프로젝트 다운로드 페이지를 참조하세요. -
액세스 토큰을 만듭니다. 예를 들어 personal access token 또는 GitHub App 사용자 액세스 토큰을 만듭니다. 자세한 내용은 "personal access token" 또는 "GitHub 앱에 대한 사용자 식별 및 권한 부여"를 참조하세요.
경고: 액세스 토큰을 암호와 같이 취급하세요.
토큰을 안전하게 유지하기 위해 토큰을 Codespaces 비밀로 저장하고 Codespaces를 통해 명령줄을 사용할 수 있습니다. 자세한 내용은 “codespace에 대한 암호화된 비밀 관리”를 참조하세요.
대신 GitHub CLI를 사용할 수도 있습니다
curl
. GitHub CLI가 대신 인증을 처리합니다. 자세한 내용은 이 페이지의 GitHub CLI 버전을 참조하세요.이러한 옵션을 사용할 수 없는 경우 1Password CLI와 같은 다른 서비스를 사용하여 토큰을 안전하게 저장하는 것이 좋습니다.
-
curl
명령을 사용하여 요청을 수행합니다.Authorization
헤더로 토큰을 전달합니다.YOUR-TOKEN
을 실제 토큰으로 바꿉니다.curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer YOUR-TOKEN"
참고: 대부분의 경우
Authorization: Bearer
또는Authorization: token
을 사용하여 전달할 수 있습니다. 그러나 JWT(JSON 웹 토큰)를 전달하는 경우Authorization: Bearer
를 사용해야 합니다.
GitHub Actions에서 명령 사용 curl
GitHub Actions 워크플로에서 명령을 사용할 curl
수도 있습니다.
GitHub에서는 토큰을 만드는 대신 기본 제공 GITHUB_TOKEN
을 사용하는 것이 좋습니다. 가능하지 않은 경우 토큰을 비밀로 저장하고 아래 예제의 GITHUB_TOKEN
을 비밀의 이름으로 바꿉니다. 에 대한 GITHUB_TOKEN
자세한 내용은 "자동 토큰 인증. 비밀에 대한 자세한 내용은 "암호화된 비밀.
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl --request GET \
--url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer $GH_TOKEN"
GitHub App을 사용하여 인증하는 경우 워크플로 내에서 설치 액세스 토큰을 만들 수 있습니다.
-
GitHub App의 ID를 비밀로 저장합니다. 다음 예에서
APP_ID
을 비밀의 이름으로 바꿉니다. 앱의 설정 페이지 또는 앱 API를 통해 앱 ID를 찾을 수 있습니다. 자세한 내용은 "GitHub 앱"을 참조하세요. 비밀에 대한 자세한 내용은 "암호화된 비밀. -
앱에 대한 프라이빗 키를 생성합니다. 결과 파일의 내용을 비밀로 저장합니다. (
-----BEGIN RSA PRIVATE KEY-----
및-----END RSA PRIVATE KEY-----
를 포함하여 파일의 전체 내용을 저장합니다.) 다음 예에서APP_PEM
을 비밀의 이름으로 바꿉니다. 자세한 내용은 "GitHub 앱에 대한 프라이빗 키 관리"을 참조하세요. -
토큰을 생성하는 단계를 추가하고
GITHUB_TOKEN
대신 해당 토큰을 사용합니다. 이 토큰은 60분 후에 만료됩니다. 예를 들면 다음과 같습니다.# 이 워크플로는 GitHub에서 인증되지 않은 작업을 사용합니다. # 작업은 타사에서 제공하며 # 별도의 서비스 약관, 개인정보처리방침, 지원 설명서에서 규정됩니다. # 참조하세요. on: workflow_dispatch: jobs: use_api: runs-on: ubuntu-latest steps: - name: Generate token id: generate_token uses: tibdex/github-app-token@c2055a00597a80f713b78b1650e8d3418f4d9a65 with: app_id: ${{ secrets.APP_ID }} private_key: ${{ secrets.APP_PEM }} - name: Use API env: GH_TOKEN: ${{ steps.generate_token.outputs.token }} run: | curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer $GH_TOKEN"
다음 단계
자세한 내용은 “REST API 시작”을 참조하세요.