По умолчанию рабочий процесс GitHub Actions для конфигурации предварительной сборки может обращаться только к содержимому в собственном репозитории. Для создания среды разработки в проекте могут использоваться дополнительные ресурсы, расположенные в других местах.
Предоставление предварительной сборке доступа на чтение внешних ресурсов
Можно настроить доступ на чтение других репозиториев GitHub, принадлежащих одному владельцу, для этого необходимо указать разрешения в файле devcontainer.json
, который используется в конфигурации предварительной сборки. Дополнительные сведения см. в разделе Управление доступом к другим репозиториям в кодовом пространстве.
Примечание. Таким образом можно предоставить только разрешения на чтение, при этом владелец целевого репозитория также должен являться владельцем репозитория, для которого создается предварительная сборка. Например, если вы создаете конфигурацию предварительной сборки для octo-org/octocat
репозитория, вы сможете предоставить разрешения на чтение для других репозиториев, таких как octo-org/octodemo
, если это указано в devcontainer.json
файле, и при условии, что у вас есть разрешения самостоятельно.
Во время создания или изменения конфигурации предварительной сборки для файла devcontainer.json
, который настраивает доступ на чтение других репозиториев с тем же владельцем, появится запрос на предоставление этих разрешений после нажатия кнопки Создать или Обновить. Дополнительные сведения см. в разделе Настройка предварительных сборок.
Предоставление предварительной сборке доступа на запись во внешние ресурсы
Если проекту требуется доступ на запись к ресурсам или внешние ресурсы находятся в репозитории с другим владельцем репозитория, для которого создается конфигурация предварительной сборки, можно использовать personal access token, чтобы предоставить этот доступ.
Вам потребуется создать новую личную учетную запись, а затем использовать ее для создания personal access token (classic) с соответствующими областями.
-
Создайте новую личную учетную запись для GitHub.
Предупреждение. Хотя personal access token (classic) можно создать с помощью существующей личной учетной записи, настоятельно рекомендуется создать новую учетную запись с доступом только к целевым репозиториям, необходимым для вашего сценария. Это связано с тем, что разрешение
repository
в маркере доступа предоставляет доступ сразу ко всем репозиториям, к которым есть доступ у соответствующей учетной записи. Дополнительные сведения см. в разделах Регистрация новой учетной записи GitHub и Защита системы безопасности для GitHub Actions. -
Предоставьте новой учетной записи доступ на чтение к необходимым репозиториям. Дополнительные сведения см. в разделе Управление доступом пользователя к репозиторию организации.
-
Во время входа в новую учетную запись создайте personal access token (classic) с областью
repo
действия. При желании, если ваша предварительная сборка должна получать пакеты из GitHub Container registry, также выберите областьread:packages
. Дополнительные сведения см. в разделе Создание личного маркера доступа.Если предварительная сборка будет использовать пакет из GitHub Container registry, необходимо предоставить новой учетной записи доступ к этому пакету или настроить для него наследование разрешений на доступ от репозитория, для которого выполняется предварительная сборка. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
-
Скопируйте строку маркера. Ее вам нужно назначить секрету репозитория Codespaces.
-
Снова войдите в учетную запись с правами администратора для репозитория.
-
В репозитории, для которого требуется создать предварительные сборки GitHub Codespaces, создайте секрет репозитория Codespaces с именем
CODESPACES_PREBUILD_TOKEN
, присвоив ему значение созданного и скопированного маркера. Дополнительные сведения см. в разделе Управление зашифрованными секретами для репозитория и организации в GitHub Codespaces.
personal access token будет использоваться для всех последующих предварительных сборок, созданных для репозитория. В отличие от других секретов репозитория Codespaces, секрет CODESPACES_PREBUILD_TOKEN
используется только для предварительной сборки и не будет доступен для использования в пространствах кода, созданных из этого репозитория.