Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Управление доступом к другим репозиториям в кодовом пространстве

Вы можете управлять репозиториями, к которым у GitHub Codespaces есть доступ.

Обзор

По умолчанию 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.

Предварительные требования

Для создания кодовых пространств с определенными пользовательскими разрешениями необходимо использовать одно из следующих средств:

Настройка дополнительных разрешений репозитория

  1. Разрешения репозитория для GitHub Codespaces настраиваются в файле devcontainer.json. Если репозиторий еще не содержит файл devcontainer.json, добавьте его. Дополнительные сведения см. в разделе Добавление конфигурации контейнера разработки в репозиторий.

  2. Измените файл 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. В правом верхнем углу любой страницы щелкните фотографию профиля, а затем выберите Параметры.

    Снимок экрана: меню учетной записи GitHub с параметрами для просмотра и изменения профиля, содержимого и параметров пользователями. Пункт меню "Параметры" выделен темно-оранжевым цветом. 1. В разделе "Код, планирование и автоматизация" боковой панели щелкните Codespaces.

  2. В разделе "Доступ и безопасность" выберите нужный параметр для личная учетная запись:

    • Отключено — ограничьте доступ к личным пространствам кода к репозиторию, из чего они были созданы.
    • Все репозитории — все личные пространства кода могут получать доступ к другим репозиториям, которые вам принадлежат.
    • Выбранные репозитории — личные codespace, созданные из определенных репозиториев, могут получать доступ к другим репозиториям, которые у вас есть.
  3. Если вы выбрали "Выбранные репозитории", выберите раскрывающееся меню "Выбрать репозитории", а затем щелкните репозиторий, чтобы разрешить codespace репозитория получать доступ к другим репозиториям, которые у вас есть. Повторите этот шаг для всех репозиториев, для которых требуется доступ к другим репозиториям codespace.