{"meta":{"title":"Управление доступом к другим репозиториям в кодовом пространстве","intro":"Вы можете управлять репозиториями, к которым у GitHub Codespaces есть доступ.","product":"Codespaces","breadcrumbs":[{"href":"/ru/codespaces","title":"Codespaces"},{"href":"/ru/codespaces/managing-your-codespaces","title":"Управление кодовыми пространствами"},{"href":"/ru/codespaces/managing-your-codespaces/managing-repository-access-for-your-codespaces","title":"Доступ к репозиторию"}],"documentType":"article"},"body":"# Управление доступом к другим репозиториям в кодовом пространстве\n\nВы можете управлять репозиториями, к которым у GitHub Codespaces есть доступ.\n\n## Обзор\n\nПо умолчанию пространство кода назначается маркером с `read` разрешением или `read``write` разрешением на репозиторий, из которого он был создан. Область этого маркера автоматически изменяется в следующих обстоятельствах.\n\n* Если создать пространство кода для репозитория, к которому у вас есть доступ только для чтения, сделайте фиксацию в пространстве кода или отправьте новую ветвь, GitHub Codespaces автоматически связывает пространство кода с новым или существующим вилком репозитория и обновляет маркер, чтобы иметь `read` и `write` разрешение на вилку. Дополнительные сведения см. в разделе [Использование системы управления версиями в codespace](/ru/codespaces/developing-in-a-codespace/using-source-control-in-your-codespace#about-automatic-forking).\n* Если вы создаете пространство кода из шаблона, опубликуйте пространство кода в новый репозиторий, GitHub Codespaces обновляет маркер `read``write` и разрешение на новый репозиторий. Дополнительные сведения см. в разделе [Создание пространства кода на основе шаблона](/ru/codespaces/developing-in-a-codespace/creating-a-codespace-from-a-template#publishing-to-a-repository-on-github).\n\nДополнительные сведения см. в разделе [Безопасность в GitHub Codespaces](/ru/codespaces/reference/security-in-github-codespaces#authentication).\n\nЕсли в проекте требуются дополнительные разрешения для других репозиториев, его можно настроить в `devcontainer.json` файле, как описано [в разделе \"Настройка дополнительных](#setting-additional-repository-permissions) разрешений репозитория\" далее в этой статье. Если разрешения перечислены в файле `devcontainer.json`, вам будет предложено просмотреть и авторизовать дополнительные разрешения в процессе создания кодового пространства для этого репозитория. После того как вы авторизуете перечисленные разрешения, GitHub Codespaces запомнит ваш выбор и не будет запрашивать авторизацию, пока разрешения в файле `devcontainer.json` не изменятся.\n\n> \\[!NOTE]\n> Обновление разрешений в `devcontainer.json` файле не изменяет разрешения существующих пространств кода. Если вам нужны дополнительные разрешения в существующем пространстве кода, см [. раздел AUTOTITLE](/ru/codespaces/troubleshooting/troubleshooting-authentication-to-a-repository#authenticating-to-repositories-that-you-didnt-create-the-codespace-from).\n\n## Создание пространств кода с пользовательскими разрешениями\n\nЧтобы создать пространство кода с пользовательскими разрешениями, необходимо использовать одно из следующих элементов:\n\n* веб-интерфейс GitHub;\n* [интерфейс командной строки GitHub](https://github.com/cli/cli/releases/latest) 2.5.2 или более поздней версии;\n* [GitHub Codespaces Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces) 1.5.3 или позже\n\n## Настройка дополнительных разрешений репозитория\n\nВы настраиваете разрешения репозитория для GitHub Codespaces в `devcontainer.json` файле. Все настраиваемые разрешения, которые вы добавляете или изменяете, будут применяться только к новым пространствам кода, созданным после фиксации изменений в репозитории. При добавлении или изменении разрешений из пространства кода эти разрешения не будут применяться к текущему пространству кода, даже если вы перестроите пространство кода.\n\n1. Если репозиторий еще не содержит файл `devcontainer.json`, добавьте его. Дополнительные сведения см. в разделе [Добавление конфигурации контейнера разработки в репозиторий](/ru/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration).\n\n2. Измените файл `devcontainer.json`, добавив имя репозитория и необходимые разрешения в отношении объекта `repositories`:\n\n   ```json copy\n   {\n     \"customizations\": {\n       \"codespaces\": {\n         \"repositories\": {\n           \"my_org/my_repo\": {\n             \"permissions\": {\n               \"issues\": \"write\"\n             }\n           }\n         }\n       }\n     }\n   }\n   ```\n\n   > \\[!NOTE]\n   >\n   > * Вы можете ссылаться только на репозитории, принадлежащие к той же личная учетная запись или организации, в которой сейчас работает репозиторий.\n   > * С помощью `*` подстановочного знака можно предоставить разрешения нескольким репозиториям в организации. Например, чтобы предоставить разрешения всем репозиториям `my_org` в организации `my_org/*`. Этот синтаксис действителен только для пространств кода. В любых `devcontainer.json` файлах, используемых для предварительной сборки, необходимо определить разрешения для каждого репозитория отдельно. Дополнительные сведения см. в разделе [Предоставление предварительной сборке доступа к другим репозиториям](/ru/codespaces/prebuilding-your-codespaces/allowing-a-prebuild-to-access-other-repositories).\n\n   Для каждого указанного репозитория можно предоставить любое количество следующих разрешений:\n\n   * `actions` — чтение/запись;\n   * `checks` — чтение/запись;\n   * `contents` — чтение/запись;\n   * `deployments` — чтение/запись;\n   * `discussions` — чтение/запись;\n   * `issues` — чтение/запись;\n   * `packages` — чтение;\n   * `pages` — чтение/запись;\n   * `pull_requests` — чтение/запись;\n   * `repository_projects` — чтение/запись;\n   * `statuses` — чтение/запись;\n   * `workflows` — запись.\n\n   Чтобы задать разрешение для репозитория в организации, необходимо явно добавить это имя репозитория в `repositories` объект.\n\n   ```json\n   {\n     \"customizations\": {\n       \"codespaces\": {\n         \"repositories\": {\n           \"my_org/my_repo\": {\n             \"permissions\": {\n               \"issues\": \"write\"\n             }\n           }\n         }\n       }\n     }\n   }\n   ```\n\n   Чтобы задать все разрешения для определенного репозитория, используйте в объекте репозитория `\"permissions\": \"read-all\"` или `\"permissions\": \"write-all\"`.\n\n   ```json\n   {\n     \"customizations\": {\n       \"codespaces\": {\n         \"repositories\": {\n           \"my_org/my_repo\": {\n             \"permissions\": \"write-all\"\n           }\n         }\n       }\n     }\n   }\n   ```\n\n## Авторизация запрошенных разрешений\n\nЕсли в файле `devcontainer.json` определены дополнительные разрешения репозитория, во время создания codespace или конфигурации предварительной сборки для этого репозитория появится запрос на просмотр и авторизацию разрешений при необходимости. При авторизации разрешений для репозитория GitHub Codespaces не будет повторно запрашивать данные, пока набор запрошенных разрешений для репозитория не будет изменен.\n\n![Снимок экрана: страница запрошенных разрешений. Два разрешения отображаются как запрошенные: разрешение на чтение метаданных и разрешение на запись для проблем.](/assets/images/help/codespaces/codespaces-accept-permissions.png)\n\nАвторизуйте разрешения только для тех репозиториев, которые вы знаете и которым доверяете. Если вы не доверяете набору запрошенных разрешений, нажмите **Продолжить без авторизации**, чтобы создать кодовое пространство с базовым набором разрешений. Отклонение дополнительных разрешений может повлиять на функциональные возможности проекта в кодовом пространстве, поскольку кодовое пространство будет иметь доступ только к тому репозиторию, из которого оно был создано.\n\nВы можете авторизовать только те разрешения, которые есть у вашей личной учетной записи. Если кодовое пространство запрашивает разрешения в отношении репозиториев, к которым у вас нет доступа, обратитесь к владельцу или администратору соответствующего репозитория для получения доступа, а затем попробуйте создать кодовое пространство еще раз.\n\n## Дополнительные материалы\n\n* [Настройка параметров пользователя](/ru/codespaces/setting-your-user-preferences)\n* [Настройка codespace](/ru/codespaces/customizing-your-codespace)"}