go get: настройки Git игнорируются - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь получить хранилище с частного сервера gitlab, с Mac.

Я установил в git config (~ / .gitconfig) использование ssh вместо https:

[url "git@gitlab.mysite.com:"]
    insteadOf = https://gitlab.mysite.com/

Когда я клонирую проект, используя URL-адрес https, я получаю правильную замену

$ git clone https://gitlab.mysite.com/group/project
$ cd project
$ git remote -v
origin  git@gitlab.mysite.com:group/project (fetch)
origin  git@gitlab.mysite.com:group/project (push)

Однако, когда я использую go get, он пытается использовать URL-адрес https и завершается ошибкой

$ go get gitlab.mysite.com/group/project
package gitlab.mysite.com/group/project: unrecognized import path "gitlab.mysite.com/group/project" (https fetch: Get https://gitlab.mysite.com/group/project?go-get=1: x509: certificate signed by unknown authority)

Почему go get не использует мою конфигурацию git?Как я могу это исправить?

Я знаю, что проблема похожа на этот вопрос: go get: Git settings игнорируется и многие другие вопросы, касающиеся личных репозиториев

моя проблема в другом

1 Ответ

0 голосов
/ 19 сентября 2018

Эта ошибка возникает перед вызовом git clone.Когда вы вызываете go get, он вызывает HTTPS на URL, чтобы проверить заголовки и посмотреть, обеспечивает ли он перенаправление go get.Это то, что терпит неудачу.

И это терпит неудачу, потому что сертификат, предоставленный сервером, не подписан Центром сертификации, который вы указали в качестве доверенного в вашей локальной системе.Это может быть связано с тем, что ваш внутренний gitlab использует неподписанный сертификат, потому что центр сертификации, используемый для подписи, не был добавлен в вашу локальную систему, или потому, что ваше рабочее место использует прокси-сервер в стиле «человек посередине», и вы не, что прокси CA добавлено.Вы можете либо попытаться исправить проблему с сертификатом, либо просто выполнить:

go get -insecure gitlab.mysite.com/group/project

Флаг -insecure разрешает выборку из репозиториев и разрешение пользовательских доменов с использованием небезопасных схем, таких как HTTP.Используйте с осторожностью.

Примечательно, что это обходит проверку CA, использованного для подписи сертификата сервера.

...