기본적으로 사전 빌드 구성에 대한 GitHub Actions 워크플로는 자체 리포지토리 콘텐츠에만 액세스할 수 있습니다. 프로젝트는 다른 곳에 있는 추가 리소스를 사용하여 개발 환경을 빌드할 수 있습니다.
사전 빌드에서 외부 리소스 읽기 권한을 허용
사전 빌드 구성에서 사용하는 devcontainer.json
파일의 사용 권한을 지정하여 리포지토리 소유자가 동일한 다른 GitHub 리포지토리에 대한 읽기 권한을 구성할 수 있습니다. 자세한 내용은 "Codespace 내의 다른 리포지토리에 대한 액세스 관리"을(를) 참조하세요.
Note
- 이러한 방식으로 읽기 권한만 부여할 수 있으며 대상 리포지토리의 소유자는 사전 빌드를 만드는 리포지토리의 소유자와 동일해야 합니다. 예를 들어
octo-org/octocatrepository
에 대한 사전 빌드 구성을 만드는 경우 이 사전 빌드 구성이devcontainer.json
파일에 지정되어 있고 사용자에게 사용 권한이 있는 경우asocto-org/octodemo
같은 다른 리포지토리에 대한 읽기 권한을 부여할 수 있습니다. - 와일드카드를 사용하여 리포지토리를 지정할 수 없습니다. 액세스 권한을 부여하려는 각 리포지토리에 대한 권한을 정의해야 합니다.
리포지토리 소유자가 동일한 다른 리포지토리에 대한 읽기 권한을 설정하는 devcontainer.json
파일에 대한 사전 빌드 구성을 만들거나 편집할 때 만들기 또는 업데이트를 클릭하면 이러한 권한을 부여하라는 메시지가 표시됩니다. 자세한 내용은 "사전 빌드 구성"을(를) 참조하세요.
사전 빌드에서 외부 리소스 쓰기 권한을 허용
프로젝트에 리소스에 대한 쓰기 권한이 필요하거나 사전 빌드 구성을 만드는 리포지토리와 다른 소유자가 있는 리포지토리에 외부 리소스가 있는 경우 personal access token을(를) 사용하여 이 액세스 권한을 부여할 수 있습니다.
새 개인 계정을 만든 다음 이 계정을 사용하여 적절한 범위의 personal access token (classic)을(를) 만들어야 합니다.
-
GitHub에 새 개인 계정을 만듭니다.
Warning
기존 개인 계정을 사용하여 personal access token (classic)을 생성할 수 있지만 시나리오에 필요한 대상 리포지토리에만 액세스할 수 있는 새 계정을 만드는 것이 좋습니다. 액세스 토큰의
repository
권한이 계정에 액세스할 수 있는 모든 리포지토리에 대한 액세스 권한을 부여하기 때문입니다. 자세한 내용은 "GitHub에서 계정 생성하기" 및 "GitHub Actions에 대한 보안 강화" 항목을 참조하세요. -
새 계정에 필요한 리포지토리에 대한 읽기 권한을 부여합니다. 자세한 내용은 "조직 리포지토리에 대한 개인 액세스 권한 관리"을(를) 참조하세요.
-
새 계정에 로그인한 상태에서
repo
범위로 personal access token (classic)을(를) 만듭니다. 필요에 따라 사전 빌드가 GitHub Container registry에서 패키지를 다운로드해야 하는 경우read:packages
범위도 선택합니다. 자세한 내용은 "개인용 액세스 토큰 관리"을(를) 참조하세요.사전 빌드에서 GitHub Container registry의 패키지를 사용하는 경우 패키지에 대한 새 계정 액세스 권한을 부여하거나 사전 빌드 중인 리포지토리의 액세스 권한을 상속하도록 패키지를 구성해야 합니다. 자세한 내용은 "패키지의 액세스 제어 및 표시 여부 구성"을(를) 참조하세요.
-
토큰 문자열을 복사합니다. 이를 Codespaces 리포지토리 비밀에 할당합니다.
-
리포지토리에 대한 관리자 액세스 권한이 있는 계정에 다시 로그인합니다.
-
GitHub Codespaces 사전 빌드를 생성하려는 리포지토리에서
CODESPACES_PREBUILD_TOKEN
이라는 새로운 Codespaces 리포지토리 암호를 만들어 사용자가 만들고 복사한 토큰 값을 제공합니다. 자세한 내용은 "리포지토리 또는 조직에 대한 개발 환경 비밀 관리"을(를) 참조하세요.
personal access token(은)는 리포지토리에 대해 만든 모든 후속 사전 빌드에 사용됩니다. 다른 Codespaces 리포지토리 비밀과 달리 CODESPACES_PREBUILD_TOKEN
비밀은 사전 빌드에만 사용되며 리포지토리에서 만든 codespace에서 사용할 수 없습니다.
추가 참고 자료
- "사전 빌드 구성"
- "사전 빌드 문제 해결"