Почему при выполнении удаленных действий с использованием GitKraken в корпоративной среде появляется ошибка "неверно сформированный URL"?
При использовании GitKraken и попытке выполнить удаленные действия (push/pull/fetch и, возможно, клонирование) в моей корпоративной среде я получаю ошибку, которая выглядит следующим образом:
Fetch failed for 'origin'
malformed URL
[Proxy information]
Мой репозиторий доступен только для внутреннего использования, а приведенное выше сообщение об ошибке не является подходящим пультом. Я проверил правильный пульт в локальном хранилище через git remote -v
, Я также подтвердил, что это не git
проблема, так как я могу выполнить все необходимые действия с git
через командную строку.
Файл автоматической настройки прокси (PAC) моей организации настроен правильно и возвращает DIRECT
(имеется в виду отсутствие прокси) для моего пульта.
Вопросы:
- Почему GitKraken использует прокси, если я его не настроил?
- Почему GitKraken использует внешний прокси для внутренних адресов?
- Как я могу решить эту проблему и иметь возможность взаимодействовать с моими пультами?
4 ответа
Почему GitKraken использует прокси, если я его не настроил?
GitKraken автоматически извлекает настройки прокси-сервера из настроек прокси-сервера вашей системы ("Свойства обозревателя"> "Подключения"> "Параметры локальной сети"). В вашем случае похоже, что вы настроили PAC-файл в разделе "Автоматическая настройка". GitKraken (или одна из используемых библиотек) читает этот файл и определяет, как связаться с внешними системами.
Почему GitKraken использует внешний прокси для внутренних адресов?
GitKraken (или одна из библиотек, которую он использует), похоже, неправильно принимает настройки прокси. Когда GitKraken запускается, он подключается к своим серверам обновлений. Перед подключением он определяет, как подключиться к нему через файл PAC. В этом случае вы, вероятно, используете прокси-сервер, поскольку внешний доступ к Интернету через это соединение осуществляется через прокси-сервер. Когда вы пытаетесь выполнить действие на пульте дистанционного управления, этот поиск больше не повторяется. Он неправильно повторно использует конфигурацию прокси из проверки обновлений для внутренних репозиториев.
Как я могу решить эту проблему и иметь возможность взаимодействовать с моими пультами?
У вас есть несколько вариантов:
- Временно отключите настройку прокси-сервера при открытии GitKraken. Вы можете отключить все прокси через "Свойства обозревателя"> "Подключения"> "Настройки локальной сети". Откройте GitKraken, дождитесь его полного запуска. Снова включите настройки прокси. Вы должны быть в состоянии выполнять действия как обычно.
- Измените свой файл автоматической настройки прокси (PAC) для возврата
DIRECT
(без прокси) для серверов обновлений GitKraken. Это заставит GitKraken думать, что прокси не нужен, и не будет пытаться использовать его для локального трафика. Я предлагаю настроить ваш файл PAC для возвратаDIRECT
для следующего подстановочного знака:*://*.gitkraken.com/*
Например, в FindProxyForURL
функция: if (shExpMatch(url, "*://*.gitkraken.com/*")) { return "DIRECT"; }
Примечание. Если в вашей организации есть брандмауэры, которые препятствуют прямому доступу в Интернет, вам может потребоваться принять здесь дополнительные меры предосторожности, поскольку это может повлиять на вашу возможность доступа к общедоступным репозиториям, таким как GitHub. Возможно, вам придется оставить прокси для внешних репозиториев и сделать опцию № 1 для внутренних репозиториев.
Чтобы ответить на ваш вопрос "почему GitKraken использует прокси, когда я его не настроил?" GitKraken на Mac использует глобальные сетевые конфигурации (Сетевые настройки> Выберите сетевой интерфейс> Нажмите Дополнительно... > и выберите вкладку прокси. Если вы настроили "Автоматическая конфигурация прокси" или "HTTP" или "HTTPS" прокси, то это то, что привыкает.
Если вы выбрали "Автоматическое обнаружение прокси" или "Автоматическая настройка прокси", то параметр "Обход прокси-сервера для этих хостов и доменов" обычно не работает.
Как я могу заставить это работать? Я пробовал несколько решений, но у меня сработало следующее:
Я использую GitKraken версии 6.5.3. Я тоже работаю за прокси. GitKraken использует глобальный файл ~. / Gitconfig, и если вы настроили там прокси, он будет использовать его при отсутствии другой конфигурации. У меня были определенные настройки -
[http]
sslVerify = true
proxy = "http://myproxy.com"
[https]
sslVerify = false
proxy = "https://myproxy.com"
[http "https://internalurls.com/"]
sslVerify = false
proxy = ""
Эта конфигурация работает для командной строки git, и внутренние URL-адреса разрешаются правильно, но GitKraken использует только конфигурации http и https, а не конкретную конфигурацию URL-адресов. Поэтому каждый раз, когда я настраиваю / пытаюсь подключиться к внутренним URL-адресам, я комментирую строки для общих прокси-серверов http и https, и это сработало для меня.
Я надеюсь, что GitKraken в будущем даст пользователям возможность выбирать прокси или читать весь раздел gitconfig для поиска всех прокси.
Надеюсь, этот ответ вам поможет.
У меня была точно такая же проблема, и я использовал эти две команды, а затем перезапустил свою систему.
git config --global --unset http.proxy
git config --global --unset https.proxy