인증 정보
대부분의 REST API 엔드포인트는 인증이 필요하거나 인증된 경우 추가 정보를 반환합니다. 또한 인증 시 시간당 더 많은 요청을 수행할 수 있습니다.
요청의 헤더에 토큰을 보내 요청을 인증할 Authorization
수 있습니다. 다음 예제에서 를 토큰에 대한 참조로 바꿉 YOUR-TOKEN
있습니다.
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/octocat" \
--header "Authorization: Bearer YOUR-TOKEN"
참고: 대부분의 경우 Authorization: Bearer
또는 Authorization: token
을 사용하여 전달할 수 있습니다. 그러나 JWT(JSON 웹 토큰)를 전달하는 경우 Authorization: Bearer
를 사용해야 합니다.
토큰 없이 또는 권한이 부족한 토큰과 함께 REST API 엔드포인트를 사용하려고 하면 또는 403 Forbidden
응답을 받게 404 Not Found
됩니다.
personal access token을(를) 사용하여 인증
개인 용도로 GitHub REST API를 사용하려는 경우 personal access token을(를) 만들 수 있습니다. personal access token을(를) 만드는 방법에 대한 자세한 내용은 "개인용 액세스 토큰 관리.
앱에서 생성된 토큰으로 인증
organization 또는 다른 사용자를 대신하여 API를 사용하려면 GitHub에서 GitHub App을(를) 사용하는 것이 좋습니다. 자세한 내용은 "GitHub 앱 인증 정보"을 참조하세요.
OAuth App을(를) 사용하여 OAuth 토큰을 만들어 REST API에 액세스할 수도 있습니다. 그러나 GitHub은 대신 GitHub App을(를) 사용하는 것이 좋습니다. GitHub Apps을(를) 사용하면 앱에 있는 액세스 및 권한을 더 자세히 제어할 수 있습니다.
기본 인증 사용
GitHub Apps 및 OAuth App의 일부 REST API 엔드포인트에서는 기본 인증을 사용하여 엔드포인트에 액세스해야 합니다. 앱의 클라이언트 ID를 사용자 이름으로 사용하고 앱의 클라이언트 암호를 암호로 사용합니다.
예를 들면 다음과 같습니다.
curl --request POST \
--url "http(s)://HOSTNAME/api/v3/authorizations" \
--user ":"
클라이언트 ID를 찾고 앱의 설정 페이지에서 클라이언트 암호를 생성할 수 있습니다. 사용자 소유 GitHub Apps의 경우 설정 페이지는 입니다 https://github.com/settings/apps/APP-SLUG
. organization 소유 GitHub App의 경우 설정 페이지는 입니다https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG
. 을 앱의 슬러그화된 이름으로 바꾸고 ORGANIZATION
을 organization 슬러그화된 이름으로 바꿉 APP-SLUG
예들 들어 https://github.com/organizations/octo-org/settings/apps/octo-app
입니다.
GitHub Actions 워크플로에서 인증
GitHub Actions 워크플로에서 API를 사용하려면 GitHub에서 토큰을 만드는 대신 기본 제공 GITHUB_TOKEN
으로 인증하는 것이 좋습니다. permissions
키를 사용하여 GITHUB_TOKEN
에 대한 사용 권한을 부여할 수 있습니다. 자세한 내용은 "자동 토큰 인증"을 참조하세요.
사용자 이름 및 암호를 사용하여 인증
GitHub에서는 토큰을 사용하여 암호 대신 REST API에 인증하는 것이 좋습니다. 토큰이 수행할 수 있는 작업을 더 자세히 제어할 수 있으며 언제든지 토큰을 해지할 수 있습니다. 그러나 기본 인증을 위해 사용자 이름 및 암호를 사용하여 REST API에 인증할 수도 있습니다. 이렇게 하려면 다음 옵션을 사용하여 사용자 이름 및 암호를 --user
전달합니다.
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/user" \
--user USERNAME:PASSWORD