Skip to main content

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

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

Обзор

По умолчанию codespace назначается маркер с read разрешением или read и write разрешением для репозитория, из которого он был создан. Область действия этого маркера автоматически изменяется в следующих случаях.

  • Если вы создаете codespace для репозитория, к которому у вас есть только доступ на чтение, а затем выполняете фиксацию в codespace, GitHub Codespaces автоматически связывает пространство кода с новой или существующей вилкой репозитория и обновляет маркер, чтобы иметь read и write разрешение для вилки. Дополнительные сведения см. в статье Использование системы управления версиями в кодовом пространстве.
  • Если вы создаете 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/*": {
              "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. В правом верхнем углу любой страницы щелкните фотографию профиля, а затем выберите Параметры.

    Значок "Настройки" на панели пользователя 1. В разделе "Код, планирование и автоматизация" на боковой панели нажмите Codespaces.

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

    Переключатели для управления доверенными репозиториями

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

    Раскрывающееся меню "Выбранные репозитории"