1
0
mirror of synced 2026-01-06 15:01:04 -05:00
Files
docs/translations/ru-RU/content/codespaces/troubleshooting/troubleshooting-gpg-verification-for-github-codespaces.md
2022-11-16 21:42:42 +00:00

10 KiB
Raw Blame History

title, shortTitle, intro, versions, type, topics, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
title shortTitle intro versions type topics ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid
Устранение неполадок с проверкой GPG для GitHub Codespaces GPG verification В этой статье приводятся рекомендации по устранению ошибок, связанных с подписыванием фиксаций в codespaces.
fpt ghec
* *
reference
Codespaces
f3a6537d1ee9087803054347689591c2b217e42e 47e03737d0 MT ru-RU 11/16/2022 148167116

Если вы включите проверку GPG, {% data variables.product.prodname_github_codespaces %} автоматически подписывает фиксации в codespaces, создаваемых из выбранных репозиториев. Дополнительные сведения см. в разделе Управление проверкой GPG для {% data variables.product.prodname_github_codespaces %}.

{% data reusables.codespaces.gpg-in-active-codespaces %}

Если {% data variables.product.prodname_github_codespaces %} не удается подписать фиксацию, может появиться следующая ошибка.

$ git commit -m 'Initial commit'
error: gpg failed to sign the data
fatal: failed to write commit object

Эта ошибка может возникнуть, если:

  • Вы отключили проверку GPG и пытаетесь выполнить обычную фиксацию без знака в существующем пространстве кода.
  • Вы включили проверку GPG, но переопределили конфигурацию Git, необходимую для подписывания фиксаций {% data variables.product.prodname_github_codespaces %}, например путем связывания {% data variables.product.prodname_github_codespaces %} с репозиторием файлов точек, содержащим файлы конфигурации Git.

Ошибки после отключения проверки GPG

При включении проверки GPG {% data variables.product.prodname_github_codespaces %} по умолчанию подписывает все фиксации, выполняемые в codespaces. Для этого для параметра конфигурации commit.gpgsign Git задано trueзначение .

Если вы отключили проверку GPG и работаете в существующем codespace, это значение по-прежнему будет иметь значение true. Это означает, что {% data variables.product.prodname_github_codespaces %} попытается подписать фиксации, но не сможет это сделать, так как вы отключили параметр проверки GPG.

Чтобы сохранить регулярные фиксации без знака в codespace, сбросьте commit.gpgsign значение по умолчанию , введя false следующую команду в терминале.

git config --unset commit.gpgsign

Чтобы убедиться, что значение было правильно удалено из конфигурации, можно ввести git config --list. Значение для commit.gpgsign не должно отображаться в списке.

Ошибки, вызванные конфликтующей конфигурацией

Чтобы автоматически подписать фиксации, {% data variables.product.prodname_github_codespaces %} задает определенные значения конфигурации Git в codespace. Если переопределить значения, заданные {% data variables.product.prodname_github_codespaces %}, вы не сможете подписать фиксации.

Вы можете случайно переопределить эти значения, если вы связали {% data variables.product.prodname_github_codespaces %} с репозиторием файлов точек, содержащим файлы конфигурации Git. Дополнительные сведения об использовании файлов точек с {% data variables.product.prodname_github_codespaces %} см. в разделе Персонализация {% data variables.product.prodname_github_codespaces %} для вашей учетной записи.

Проверка конфликтующей конфигурации

Чтобы подписать фиксации с помощью GPG, {% data variables.product.prodname_github_codespaces %} автоматически задает следующие значения конфигурации Git на уровне системы.

Параметр конфигурации Обязательное значение
user.name Должно соответствовать полному имени, заданному в профиле {% data variables.product.prodname_dotcom %}
credential.helper Нужно задать значение /.codespaces/bin/gitcredential_github.sh
gpg.program Нужно задать значение /.codespaces/bin/gh-gpgsign

Чтобы убедиться, что эти значения правильно заданы в codespace, можно использовать git config --list --show-origin команду . Так как {% data variables.product.prodname_github_codespaces %} задает эту конфигурацию на уровне системы, необходимые параметры конфигурации должны поступать из /usr/local/etc/gitconfig.

$ git config --list --show-origin
file:/usr/local/etc/gitconfig   credential.helper=/.codespaces/bin/gitcredential_github.sh
file:/usr/local/etc/gitconfig   user.name=Mona Lisa
file:/usr/local/etc/gitconfig   gpg.program=/.codespaces/bin/gh-gpgsign

В дополнение к значениям, перечисленным выше, могут возникнуть ошибки, если файлы точек, используемые в codespaces, содержат любое из следующих значений.

  • Значение user.signingkey конфигурации Git
  • Значение commit.gpgsign конфигурации Git
  • Установка вручную GITHUB_TOKEN

Удаление конфликтующей конфигурации

Если вы хотите сохранить автоматическую проверку GPG для {% data variables.product.prodname_github_codespaces %}, необходимо удалить все конфликтующие конфигурации из файлов точек, используемых в codespaces.

Например, если глобальный .gitconfig файл на локальном gpg.program компьютере содержит значение и этот файл отправлен в репозиторий файлов точек, связанный с {% data variables.product.prodname_github_codespaces %}, может потребоваться удалить gpg.program из этого файла и установить его на уровне системы на локальном компьютере.

{% note %}

Примечание: Любые изменения в репозитории dotfiles будут применяться к новым пространствам кода, которые вы создаете, но не к существующим пространствам кода.

{% endnote %}

  1. На локальном компьютере откройте терминал.

  2. Чтобы удалить конфликтующее значение из ~/.gitconfig (Mac/Linux) или C:\Users\YOUR-USER\.gitconfig (Windows), используйте git config --global --unset команду .

    $ git config --global --unset gpg.program
    
  3. Отправьте изменение в репозиторий файлов точек на {% data variables.product.prodname_dotcom %}.

  4. При необходимости, чтобы сохранить локальную конфигурацию, снова задайте значение в файле конфигурации Git, который не отправляется в репозиторий файлов точек.

    Например, с помощью флага --system можно задать конфигурацию в файле системного уровня в PATH/etc/gitconfig, где PATH — это каталог, в котором Git установлен в системе.

    $ git config --system gpg.program gpg2
    

Кроме того, если репозиторий dotfiles содержит скрипт установки в распознаваемом файле, например install.sh, можно использовать $CODESPACES переменную среды для добавления условной логики, например только в gpg.program том случае, если вы не находитесь в пространстве кода. В следующем примере возвращает значение true , -z "$CODESPACES" если вы не находитесь в пространстве кода.

if [ -z "$CODESPACES" ]; then
  git config --global gpg.program gpg2
fi

Дополнительные материалы