{"meta":{"title":"Устранение неполадок с верификацией GPG для GitHub Codespaces","intro":"В этой статье приводятся рекомендации по устранению неполадок, связанных с подписью фиксаций в пространствах кода.","product":"Codespaces","breadcrumbs":[{"href":"/ru/codespaces","title":"Codespaces"},{"href":"/ru/codespaces/troubleshooting","title":"Устранение неполадок"},{"href":"/ru/codespaces/troubleshooting/troubleshooting-gpg-verification-for-github-codespaces","title":"Проверка GPG"}],"documentType":"article"},"body":"# Устранение неполадок с верификацией GPG для GitHub Codespaces\n\nВ этой статье приводятся рекомендации по устранению неполадок, связанных с подписью фиксаций в пространствах кода.\n\nЕсли включить проверку GPG, GitHub Codespaces автоматически подписывает фиксации в пространствах кода, создаваемых из выбранных репозиториев. Дополнительные сведения см. в разделе [Управление верификацией GPG для GitHub Codespaces](/ru/codespaces/managing-your-codespaces/managing-gpg-verification-for-github-codespaces).\n\nПосле включения проверки GPG он автоматически вступит в силу в любых новых пространствах кода, создаваемых из соответствующих репозиториев. Чтобы проверка GPG вступила в силу в существующем активном пространстве кода, необходимо остановить и перезапустить пространство кода. Дополнительные сведения см. в разделе [Остановка и запуск пространства кода](/ru/codespaces/developing-in-codespaces/stopping-and-starting-a-codespace).\n\nЕсли GitHub Codespaces не удалось подписать фиксацию, может появиться сообщение `gpg failed to sign the data` об ошибке в командной строке или во всплывающем окне Visual Studio Code .\n\nВ следующих разделах этой статьи приводятся рекомендации по устранению распространенных причин этой ошибки.\n\n* Если проверка GPG ранее была включена в параметрах GitHub Codespaces, и вы недавно отключили проверку GPG или удалили репозиторий из списка доверенных репозиториев, Git может по-прежнему пытаться подписать фиксации. Дополнительные сведения см. в разделе [Об ошибках после отключения проверки](#errors-after-disabling-gpg-verification) GPG.\n* Если для пространства кода включена проверка GPG, возможно, вы переопределили конфигурацию Git, необходимую для подписывания фиксаций. Дополнительные сведения см. в разделе [Об ошибках, вызванных конфликтующей конфигурацией](#errors-caused-by-conflicting-git-configuration) Git.\n* Если проверка GPG отключена для пространства кода и возникает ошибка при попытке фиксации из представления \"Управление версиями\" в VS Code, это может быть связано с параметрами VS Code. Дополнительные сведения см. в разделе [об ошибках в представлении](#errors-in-the-vs-code-source-control-view) VS Code \"Управление версиями\".\n\n## Ошибки после отключения проверки GPG\n\nПри включении проверки GPG GitHub Codespaces подписывает все фиксации, которые вы делаете в пространствах кода по умолчанию. Для этого необходимо задать `commit.gpgsign` для параметра конфигурации Git значение `true`.\n\nЕсли вы отключили проверку GPG и работаете в существующем пространстве кода, это значение по-прежнему будет задано `true`. Это означает, что GitHub Codespaces попытается подписать фиксации, но не сможет сделать это, так как вы отключили параметр проверки GPG.\n\nЧтобы сохранить регулярные фиксации без знака в пространстве кода, сбросить `commit.gpgsign` значение `false` по умолчанию, введя следующую команду в терминале.\n\n```shell copy\ngit config --unset commit.gpgsign\n```\n\nЧтобы проверить правильность удаления значения из конфигурации, можно ввести `git config --list`. В списке не должно отображаться значение `commit.gpgsign` .\n\n## Ошибки, вызванные конфликтующей конфигурацией Git\n\nЧтобы автоматически подписать фиксации, GitHub Codespaces задает определенные значения конфигурации Git в пространстве кода. Если переопределить значения, заданные GitHub Codespaces, вы не сможете подписать фиксации.\n\nВы можете случайно переопределить эти значения, если вы связали GitHub Codespaces с репозиторием dotfiles, который содержит файлы конфигурации Git. Дополнительные сведения об использовании dotfiles с GitHub Codespacesсм. в разделе [Персонализация GitHub Codespaces для вашего аккаунта](/ru/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#dotfiles).\n\n### Проверка конфликтующей конфигурации\n\nЧтобы подписать фиксации с помощью GPG, GitHub Codespaces автоматически задает следующие значения конфигурации Git на уровне системы.\n\n| Параметр конфигурации | Обязательное значение                                            |\n| --------------------- | ---------------------------------------------------------------- |\n| `user.name`           | Должен соответствовать полному набору имен в профиле GitHub      |\n| `credential.helper`   | Нужно задать значение `/.codespaces/bin/gitcredential_github.sh` |\n| `gpg.program`         | Нужно задать значение `/.codespaces/bin/gh-gpgsign`              |\n\nЧтобы убедиться, что эти значения заданы правильно в пространстве кода, можно использовать `git config --list --show-origin` команду. Так как GitHub Codespaces задает эту конфигурацию на уровне системы, необходимые параметры конфигурации должны поступать из `/usr/local/etc/gitconfig`.\n\n```shell\n$ git config --list --show-origin\nfile:/usr/local/etc/gitconfig   credential.helper=/.codespaces/bin/gitcredential_github.sh\nfile:/usr/local/etc/gitconfig   user.name=Mona Lisa\nfile:/usr/local/etc/gitconfig   gpg.program=/.codespaces/bin/gh-gpgsign\n```\n\nВ дополнение к приведенным выше значениям могут возникнуть ошибки, если точки- файлы, используемые в пространствах кода, содержат любое из следующих значений.\n\n* Значение `user.signingkey` конфигурации Git\n* Значение `commit.gpgsign` конфигурации Git\n* Установка вручную `GITHUB_TOKEN`\n\n### Удаление конфликтующей конфигурации\n\nЕсли вы хотите сохранить автоматическую проверку групповой политики для GitHub Codespaces включена, необходимо удалить любую конфликтующую конфигурацию из точек, используемых в пространствах кода.\n\nНапример, если глобальный `.gitconfig` файл на локальном компьютере содержит `gpg.program` значение, и этот файл был отправлен в репозиторий dotfiles, связанный с GitHub Codespaces, вы можете удалить `gpg.program` из этого файла и задать его на уровне системы на локальном компьютере.\n\n> \\[!NOTE]\n> Любые изменения в репозитории dotfiles будут применяться к новым пространствам кода, которые вы создаете, но не к существующим пространствам кода.\n\n1. На локальном компьютере откройте терминал.\n\n2. Чтобы убрать противоречивое значение из `~/.gitconfig` (Mac/Linux) или `C:\\Users\\YOUR-USER\\.gitconfig` (Windows), используйте команду `git config --global --unset`.\n\n   ```shell\n   git config --global --unset gpg.program\n   ```\n\n3. Отправьте изменение в репозиторий dotfiles в GitHub.\n\n4. При необходимости, чтобы сохранить локальную конфигурацию, задайте значение еще раз в файле конфигурации Git, который не отправляется в репозиторий dotfiles.\n\n   Например, флаг можно использовать `--system` для установки конфигурации в файле `PATH/etc/gitconfig`уровня системы, где `PATH` находится каталог, в котором установлен Git в вашей системе.\n\n   ```shell\n   git config --system gpg.program gpg2\n   ```\n\nКроме того, если репозиторий dotfiles содержит скрипт установки в распознаваемом файле, например `install.sh`, можно использовать `$CODESPACES` переменную среды для добавления условной логики, например только `gpg.program` если вы не находитесь в пространстве кода. В следующем примере возвращается`-z \"$CODESPACES\"`, `true` если вы не находитесь в пространстве кода.\n\n```shell copy\nif [ -z \"$CODESPACES\" ]; then\n  git config --global gpg.program gpg2\nfi\n```\n\n## Ошибки в представлении VS Code \"Управление версиями\"\n\nЕсли проверка GPG отключена в параметрах для GitHub Codespaces, или репозиторий, созданный вами из пространства кода, не находится в списке доверенных репозиториев, Git не должен пытаться подписать фиксации. Если при попытке зафиксировать ошибку подписывания из представления \"Управление версиями\" в VS Code, необходимо проверить параметры VS Code в пространстве кода.\n\n1. В левом нижнем углу окна выберите **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"Manage\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg>**, а затем нажмите кнопку **\"Параметры**\".\n\n   ![Снимок экрана: раздел веб-клиента VS Code . Значок шестеренки и параметр \"Параметры\" в меню выделены оранжевым контуром.](/assets/images/help/codespaces/vscode-settings.png)\n\n2. На вкладке \"Пользователь\" в строке поиска найдите \"gpg\".\n\n3. Убедитесь, что параметр \"Включить подписывание фиксации с помощью GPG или X.509\" не выбран.\n\n   ![Снимок экрана: вкладка \"Параметры пользователя\". Флажок с надписью \"Включение подписывания фиксации с помощью GPG или X.509\" описано в оранжевый цвет.](/assets/images/help/codespaces/gpg-vscode-setting.png)\n\nЕсли этот параметр включен, установите флажок, чтобы остановить VS Code при попытке подписать фиксации или включить проверку GPG для репозитория, в который вы работаете, чтобы фиксации могли быть успешно подписаны.\n\nПри изменении параметров VS Code необходимо убедиться, что синхронизация параметров включена, если вы хотите предоставить общий доступ к изменениям с другими пространствами кода. Вы должны включить синхронизацию параметров только в пространстве кода, созданном из доверенного репозитория. Дополнительные сведения см. в разделе [Персонализация GitHub Codespaces для вашего аккаунта](/ru/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#settings-sync).\n\n## Дополнительные материалы\n\n* [Сведения о проверке подписи фиксации](/ru/authentication/managing-commit-signature-verification/about-commit-signature-verification)\n* [\n  `git config`\n  ](https://git-scm.com/docs/git-config) в официальной документации по Git"}