Обзор
По умолчанию codespace назначается маркер с read
разрешением или read
разрешением и write
для репозитория, из которого он был создан. Область этого маркера автоматически изменяется в следующих случаях.
- Если вы создаете codespace для репозитория, к которому имеется только доступ на чтение, а затем выполняете фиксацию в codespace или отправляете новую ветвь, GitHub Codespaces автоматически связывает кодовое пространство с новой или существующей вилкой репозитория и обновляет маркер на наличие
read
иwrite
разрешение на вилку. Дополнительные сведения см. в разделе Использование системы управления версиями в codespace. - Если вы создаете codespace на основе шаблона, а затем публикуете codespace в новом репозитории, GitHub Codespaces обновляет маркер, чтобы он был и
read
write
разрешения для нового репозитория. Дополнительные сведения см. в разделе Создание codespace на основе шаблона.
Если для вашего проекта требуются дополнительные разрешения в отношении других репозиториев, настройте их в файле devcontainer.json
и убедитесь в том, что другие участники совместной работы имеют необходимый набор разрешений. Если разрешения перечислены в файле devcontainer.json
, вам будет предложено просмотреть и авторизовать дополнительные разрешения в процессе создания кодового пространства для этого репозитория. После того как вы авторизуете перечисленные разрешения, GitHub Codespaces запомнит ваш выбор и не будет запрашивать авторизацию, пока разрешения в файле devcontainer.json
не изменятся.
Дополнительные сведения см. в разделе Безопасность в GitHub Codespaces.
Предварительные требования
Для создания кодовых пространств с определенными пользовательскими разрешениями необходимо использовать одно из следующих средств:
- веб-интерфейс GitHub;
- интерфейс командной строки GitHub 2.5.2 или более поздней версии;
- расширение GitHub Codespaces Visual Studio Code 1.5.3 или более поздней версии.
Настройка дополнительных разрешений репозитория
-
Разрешения репозитория для GitHub Codespaces настраиваются в файле
devcontainer.json
. Если репозиторий еще не содержит файлdevcontainer.json
, добавьте его. Дополнительные сведения см. в разделе Добавление конфигурации контейнера разработки в репозиторий. -
Измените файл
devcontainer.json
, добавив имя репозитория и необходимые разрешения в отношении объектаrepositories
:JSON { "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 была открыта, либо конкретными репозиториями. Включайте доступ и безопасность только для тех репозиториев, которым вы доверяете.
-
В правом верхнем углу любой страницы щелкните фотографию профиля, а затем выберите Параметры.
1. В разделе "Код, планирование и автоматизация" боковой панели щелкните Codespaces. -
В разделе "Доступ и безопасность" выберите нужный параметр для личная учетная запись:
- Отключено — ограничьте доступ к личным пространствам кода к репозиторию, из чего они были созданы.
- Все репозитории — все личные пространства кода могут получать доступ к другим репозиториям, которые вам принадлежат.
- Выбранные репозитории — личные codespace, созданные из определенных репозиториев, могут получать доступ к другим репозиториям, которые у вас есть.
-
Если вы выбрали "Выбранные репозитории", выберите раскрывающееся меню "Выбрать репозитории", а затем щелкните репозиторий, чтобы разрешить codespace репозитория получать доступ к другим репозиториям, которые у вас есть. Повторите этот шаг для всех репозиториев, для которых требуется доступ к другим репозиториям codespace.