참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.
개요
permissions
를 사용하여 GITHUB_TOKEN
에 부여된 기본 사용 권한을 수정하면 필요에 따라 액세스를 추가하거나 제거하여 필요한 최소 액세스만 허용할 수 있습니다. 자세한 내용은 "자동 토큰 인증"을(를) 참조하세요.
permissions
를 최상위 키로 사용하거나, 워크플로의 모든 작업에 적용하거나, 특정 작업 내에서 적용할 수 있습니다. 특정 작업 내에 permissions
키를 추가하면 GITHUB_TOKEN
을 사용하는 해당 작업 내의 모든 동작 및 실행 명령이 지정한 액세스 권한을 얻게 됩니다. 자세한 내용은 jobs.<job_id>.permissions
를 참조하세요.
아래 표에 표시된 사용 가능한 각 범위에 대해 사용 권한 중 하나를 할당할 수 있습니다. read
, write
, none
범위에 대한 액세스를 지정하면 지정되지 않은 모든 범위는 none
으로 설정됩니다.
사용 가능한 범위 및 각 작업에서 수행할 수 있는 작업에 대한 세부 정보:
범위 | GITHUB_TOKEN 을(를) 사용하여 작업을 허용합니다. |
---|---|
actions | GitHub Actions으로 실행 예를 들어, actions: write 이(가) 워크플로 실행을 취소하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
| checks
| 검사 실행 및 검사 도구 모음을 사용합니다. 예를 들어, checks: write
이(가) 검사 실행을 만들도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
| contents
| 리포지토리의 내용을 이용합니다. 예를 들어 contents: read
이(가) 커밋을 나열하도록 허용하고 contents: write
이(가) 릴리스를 만들 수 있도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
| deployments
| 배포 작업 예를 들어, deployments: write
이(가) 새 배포를 만들도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
| discussions
| GitHub 토론과 함께 작업합니다. 예를 들어 discussions: write
을(를) 통해 토론을 닫거나 삭제할 수 있습니다. 자세한 내용은 "토론에 GraphQL API 사용"을(를) 참조하세요. |
| issues
| 문제를 해결합니다. 예를 들어 issues: write
이(가) 문제에 주석을 추가하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
| packages
| GitHub 패키지로 작업합니다. 예를 들어, packages: write
이(가) GitHub 패키지에 패키지를 업로드하고 게시하는 작업을 허용합니다. 자세한 내용은 "GitHub 패키지에 대한 사용 권한 정보"을(를) 참조하세요. |
| pages
| GitHub Pages로 작업합니다. 예를 들어 pages: write
이(가) GitHub Pages 빌드를 요청하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
| pull-requests
| 끌어오기 요청을 사용합니다. 예를 들어 pull-requests: write
이(가) 끌어오기 요청에 레이블을 추가하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
| repository-projects
| GitHub 프로젝트(클래식)로 작업합니다. 예를 들어 repository-projects: write
이(가) 프로젝트(클래식)에 열을 추가하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
| security-events
| GitHub 코드 검사 및 Dependabot 경고를 사용합니다. 예를 들어 security-events: read
이(가) 리포지토리에 대한 Dependabot 경고를 나열하도록 허용하고 security-events: write
이(가) 코드 검색 경고의 상태 업데이트하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 사용 권한"에서 "'코드 검색 경고'에 대한 리포지토리 권한" 및 "'Dependabot 경고'에 대한 리포지토리 권한"을 참조하세요. |
| statuses
| 커밋 상태 작업합니다. 예를 들어 statuses:read
이(가) 지정된 참조에 대한 커밋 상태 나열하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
범위에 대한 GITHUB_TOKEN
액세스 정의
또는 permissions
키 내에서 사용 가능한 범위의 값으로 read
, write
, none
을(를) 지정하여 GITHUB_TOKEN
이(가) 허용할 액세스를 정의할 수 있습니다.
permissions:
actions: read|write|none
checks: read|write|none
contents: read|write|none
deployments: read|write|none
issues: read|write|none
discussions: read|write|none
packages: read|write|none
pages: read|write|none
pull-requests: read|write|none
repository-projects: read|write|none
security-events: read|write|none
statuses: read|write|none
범위에 대한 액세스를 지정하면 지정되지 않은 모든 범위는 none
으로 설정됩니다.
다음 구문을 사용하여 사용 가능한 모든 범위에 대한 read-all
또는 write-all
권한 중 하나를 정의할 수 있습니다.
permissions: read-all
permissions: write-all
다음 구문을 사용하여 사용 가능한 모든 범위에 대한 사용 권한을 사용하지 않도록 설정할 수 있습니다.
permissions: {}
포크된 리포지토리의 권한 변경
또한 permissions
키를 사용하여 포크된 리포지토리에 대한 읽기 권한을 추가 및 제거할 수 있지만 일반적으로 쓰기 액세스 권한은 부여할 수 없습니다. 이 동작의 예외는 관리 사용자가 GitHub Actions 설정의 끌어오기 요청에서 워크플로에 쓰기 토큰 보내기 옵션을 선택한 경우입니다. 자세한 내용은 "리포지토리에 대한 GitHub Actions 설정 관리"을(를) 참조하세요.
워크플로의 GITHUB_TOKEN
모든 작업에 대한 사용 권한 설정
워크플로의 모든 작업에 설정이 적용되도록 워크플로의 최상위 수준에서 지정할 permissions
수 있습니다.
예: 전체 워크플로에 GITHUB_TOKEN
대한 권한 설정
이 예제에서는 워크플로의 모든 작업에 적용되는 GITHUB_TOKEN
에 대해 설정되는 사용 권한을 보여 줍니다. 모든 권한에는 읽기 액세스 권한이 부여됩니다.
name: "My workflow"
on: [ push ]
permissions: read-all
jobs:
...
예: 특정 작업에 대한 GITHUB_TOKEN
사용 권한 설정
특정 작업의 경우 jobs.<job_id>.permissions
를 사용하여 GITHUB_TOKEN
에 부여된 기본 사용 권한을 수정하면 필요에 따라 액세스를 추가하거나 제거하여 필요한 최소 액세스만 허용할 수 있습니다. 자세한 내용은 "자동 토큰 인증"을(를) 참조하세요.
작업 정의 내에서 사용 권한을 지정하여 필요한 경우 각 작업의 GITHUB_TOKEN
에 대해 다른 사용 권한 집합을 구성할 수 있습니다. 또는 워크플로의 모든 작업에 대한 사용 권한을 지정할 수 있습니다. 워크플로 수준에서 사용 권한을 정의하는 방법에 대한 자세한 내용은 permissions
를 참조하세요.
예: 워크플로에서 GITHUB_TOKEN
한 작업에 대한 사용 권한 설정
이 예제에서는 이름이 stale
로 지정된 작업에만 적용되는 GITHUB_TOKEN
에 대해 설명되는 사용 권한을 보여 줍니다. issues
및 pull-requests
범위에 대한 쓰기 권한이 부여됩니다. 다른 모든 범위에는 액세스할 수 없습니다.
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v5