개요
기본적으로 codespace에는 토큰이 생성된 리포지토리에 대한 read
권한 또는 read
및 write
권한이 지정되는 토큰이 할당됩니다. 이 토큰의 범위는 다음과 같은 상황에서 자동으로 변경됩니다.
- 읽기 권한만 있는 리포지토리에 대한 codespace를 만든 다음, codespace에서 커밋을 수행하거나 새 분기를 푸시하는 경우 GitHub Codespaces은(는) 자동으로 codespace를 리포지토리의 새 포크 또는 기존 포크에 연결하고 해당 포크에 대한
read
및write
권한을 토큰에 업데이트합니다. 자세한 정보는 "codespace에서 원본 제어 사용"을(를) 참조하세요. - 템플릿에서 codespace를 만든 다음 새 리포지토리에 codespace를 게시하는 경우 GitHub Codespaces은(는) 토큰을 업데이트하여 새 리포지토리에 대한
read
및write
사용 권한을 부여합니다. 자세한 정보는 "템플릿에서 codespace 만들기"을(를) 참조하세요.
자세한 정보는 "GitHub Codespaces의 보안"을(를) 참조하세요.
프로젝트에 다른 리포지토리에 대한 추가 권한이 필요한 경우 이 문서의 뒷부분에 있는 "리포지토리 권한 추가 설정"에 설명된 대로 devcontainer.json
파일에서 이를 구성할 수 있습니다. devcontainer.json
파일에 권한이 나열되면 해당 리포지토리에 대한 codespace 생성 과정의 일환으로 추가 권한을 검토하고 권한을 부여하라는 메시지가 표시됩니다. 나열된 권한에 권한을 부여하면 GitHub Codespaces는 사용자의 선택을 기억하며, devcontainer.json
파일의 권한이 변경되지 않는 한 권한 부여를 묻는 메시지를 표시하지 않습니다.
참고: devcontainer.json
파일의 사용 권한을 업데이트해도 기존 codespace의 사용 권한은 변경되지 않습니다. 기존 codespace에 추가 권한이 필요한 경우 "리포지토리에 대한 인증 문제 해결"을(를) 참조하세요.
사용자 지정 권한이 있는 codespace 만들기
사용자 지정 권한이 정의된 codespace를 만들려면 다음 중 하나를 사용해야 합니다.
- GitHub 웹 UI
- GitHub CLI 2.5.2 이상
- GitHub Codespaces Visual Studio Code 확장 1.5.3 이상
추가 리포지토리 권한 설정
devcontainer.json
파일에서 GitHub Codespaces에 대한 리포지토리 권한을 구성합니다. 추가하거나 변경하는 모든 사용자 지정 권한은 변경 내용이 리포지토리에 커밋된 후에 만든 새 codespace에만 적용됩니다. Codespace 내에서 사용 권한을 추가하거나 변경하는 경우 codespace를 다시 빌드하더라도 해당 권한이 현재 codespace에 적용되지 않습니다.
-
리포지토리에 아직
devcontainer.json
파일이 없으면 지금 추가하세요. 자세한 정보는 "리포지토리에 개발 컨테이너 구성 추가"을(를) 참조하세요. -
devcontainer.json
파일을 편집하고repositories
개체에 필요한 리포지토리 이름 및 권한을 추가합니다.JSON { "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
{ "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
참고: 현재 작업 중인 리포지토리와 동일한 개인 계정 또는 조직에 속한 리포지토리만 참조할 수 있습니다.
나열된 각 리포지토리에 대해 다음 권한을 원하는 만큼 부여할 수 있습니다.
actions
- 읽기/쓰기checks
- 읽기/쓰기contents
- 읽기/쓰기deployments
- 읽기/쓰기discussions
- 읽기/쓰기issues
- 읽기/쓰기packages
- 읽기pages
- 읽기/쓰기pull_requests
- 읽기/쓰기repository_projects
- 읽기/쓰기statuses
- 읽기/쓰기workflows
- 쓰기
조직의 리포지토리에 대한 권한을 설정하려면
repositories
개체에 해당 리포지토리 이름을 명시적으로 추가해야 합니다.{ "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
지정된 리포지토리에 대한 모든 권한을 설정하려면 리포지토리 개체에서
"permissions": "read-all"
또는"permissions": "write-all"
을 사용합니다.{ "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": "write-all" } } } } }
요청된 권한에 권한 부여
devcontainer.json
파일에 추가 리포지토리 권한이 정의되면, 이 리포지토리에 대한 codespace 또는 사전 빌드 구성을 만들 때 권한을 검토하고 필요하다면 권한에 권한을 부여하라는 메시지가 표시됩니다. 리포지토리에 대한 권한에 권한을 부여하면 GitHub Codespaces는 리포지토리에 요청된 권한 집합이 변경되기 전에는 메시지를 다시 표시하지 않습니다.
알고 있으며 신뢰하는 리포지토리에 대한 권한에만 권한을 부여해야 합니다. 요청된 권한 집합을 신뢰하지 않는 경우 권한을 부여하지 않고 계속 진행을 클릭하여 기본 사용 권한 집합으로 기본 권한 집합을 이용해 codespace를 만듭니다. 추가 권한을 거부하면 codespace가 자신이 생성된 리포지토리에만 액세스할 수 있으므로 codespace에서의 프로젝트 기능이 영향받을 수 있습니다.
개인 계정이 이미 소유 중인 권한에만 권한을 부여할 수 있습니다. Codespace가 사용자가 현재 액세스할 수 없는 리포지토리에 대한 권한을 요청하는 경우에는 리포지토리의 소유자 또는 관리자에게 문의하여 충분한 액세스 권한을 얻은 다음 codespace를 다시 만들어야 합니다.
액세스 및 보안
주의 사항: 아래에 설명된 액세스 및 보안 설정은 이제 사용되지 않으며 여기에 참조용으로만 문서화되어 있습니다. 다른 리포지토리에 대한 확장된 액세스를 사용하도록 설정하려면, 아래 설명한 대로 codespace의 개발 컨테이너 정의에 요청된 권한을 추가해야 합니다.
개인 계정이 소유한 리포지토리에 대한 액세스 및 보안을 사용하도록 설정하면 해당 리포지토리에 대해 만들어진 모든 codespace에는 소유한 다른 모든 리포지토리에 대한 읽기 권한이 있습니다. codespace가 액세스할 수 있는 리포지토리를 제한하려면 codespace가 열린 리포지토리 또는 특정 리포지토리로 제한할 수 있습니다. 신뢰하는 리포지토리에 대해서만 액세스 및 보안을 사용하도록 설정해야 합니다.
-
페이지의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 설정 클릭합니다.
-
사이드바의 "코드, 계획, 자동화" 섹션에서 Codespaces를 클릭합니다.
-
"액세스 및 보안"에서 개인 계정에 대해 원하는 설정을 선택합니다.
- 사용 안 함 - 개인 codespace의 액세스를 생성된 리포지토리로 제한합니다.
- 모든 리포지토리 - 모든 개인 codespace에서 소유한 다른 리포지토리에 액세스할 수 있습니다.
- 선택한 리포지 토리 - 특정 리포지토리에서 만든 개인 codespace에서 소유한 다른 리포지토리에 액세스할 수 있습니다.
-
“선택한 리포지토리”를 선택한 경우 “선택한 리포지토리” 드롭다운 메뉴를 선택한 다음 리포지토리를 클릭하여 리포지토리의 codespace에서 소유한 다른 리포지토리에 액세스할 수 있도록 합니다. 소유한 다른 리포지토리에 액세스하려는 codespace가 있는 모든 리포지토리에 대해 이 단계를 반복합니다.