GitHub Actions 인증 정보
GitHub Actions 워크플로에서 인증된 API 요청을 수행하거나 토큰이 필요한 사용자 지정 작업을 실행해야 하는 경우, 가능하면 기본 제공 GITHUB_TOKEN
을 사용해야 합니다. 그러나 GITHUB_TOKEN
은 워크플로의 리포지토리 내의 리소스에만 액세스할 수 있습니다. 조직이나 다른 리포지토리의 리소스와 같은 추가 리소스에 액세스해야 하는 경우 GitHub App을 사용할 수 있습니다. personal access token 대신 GitHub App을 사용하는 이유에 대한 자세한 내용은 "GitHub 앱 만들기 정보"을(를) 참조하세요.
GitHub App으로 인증
GitHub App을 사용하여 인증된 API 요청을 하려면 GitHub App을 등록하고, 앱의 자격 증명을 저장하고, 앱을 설치해야 합니다. 이 작업이 완료되면 앱을 사용하여 GitHub Actions 워크플로에서 인증된 API 요청을 만드는 데 사용할 수 있는 설치 액세스 토큰을 만들 수 있습니다. 설치 액세스 토큰을 토큰이 필요한 사용자 지정 작업에 전달할 수도 있습니다.
-
GitHub App에 등록합니다. 원하는 리소스에 액세스하는 데 필요한 권한을 GitHub App 등록에 부여합니다. 자세한 내용은 "GitHub 앱 등록" 및 "GitHub 앱의 권한 선택"을(를) 참조하세요.
-
GitHub App의 앱 ID를 GitHub Actions 구성 변수로 저장합니다. 앱의 설정 페이지에서 앱 ID를 찾을 수 있습니다. 앱 ID는 클라이언트 ID와 다릅니다. GitHub App의 설정 페이지로 이동하는 방법에 대한 자세한 내용은 "GitHub 앱 등록 수정"을(를) 참조하세요. 구성 변수 저장에 대한 자세한 내용은 "변수에 정보 저장" 항목을 참조하세요.
-
앱에 대한 프라이빗 키를 생성합니다. 결과 파일의 내용을 비밀로 저장합니다. (
-----BEGIN RSA PRIVATE KEY-----
및-----END RSA PRIVATE KEY-----
를 포함하여 파일의 전체 내용을 저장합니다.) 자세한 내용은 "GitHub 앱에 대한 프라이빗 키 관리"을(를) 참조하세요. 비밀을 저장하는 방법에 대한 자세한 내용은 "GitHub Actions에서 비밀 사용"을(를) 참조하세요. -
사용자 계정 또는 조직에 GitHub App을 설치하고 워크플로에서 액세스하려는 모든 리포지토리에 대한 액세스 권한을 부여합니다. 자세한 내용은 "자신만의 GitHub 앱 설치"을(를) 참조하세요.
-
GitHub Actions 워크플로에서 API 요청을 만드는 데 사용할 수 있는 설치 액세스 토큰을 만듭니다.
이를 위해 다음 예제에 설명된 대로 GitHub 소유 작업을 사용할 수 있습니다. 이 작업을 사용하지 않으려면
actions/create-github-app-token
작업을 포크하고 수정하거나, 스크립트를 작성하여 워크플로에서 설치 토큰을 수동으로 만들도록 할 수 있습니다. 자세한 내용은 "GitHub 앱 설치로 인증"을(를) 참조하세요.다음 예제 워크플로에서는
actions/create-github-app-token
작업을 사용하여 설치 액세스 토큰을 생성합니다. 그런 다음 워크플로는 토큰을 사용하여 GitHub CLI를 통해 API 요청을 만듭니다.다음 워크플로에서
APP_ID
를 앱 ID가 저장된 구성 변수의 이름으로 바꿉니다.APP_PRIVATE_KEY
를 앱 프라이빗 키가 보관된 비밀의 이름으로 바꿉니다.
on: workflow_dispatch: jobs: demo_app_authentication: runs-on: ubuntu-latest steps: - name: Generate a token id: generate-token uses: actions/create-github-app-token@v1 with: app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} - name: Use the token env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | gh api octocat
on:
workflow_dispatch:
jobs:
demo_app_authentication:
runs-on: ubuntu-latest
steps:
- name: Generate a token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Use the token
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
run: |
gh api octocat