Дугит / изоморфный мерзавец в электроне за прокси
Я пишу электронное приложение, которое время от времени должно клонировать и извлекать репозитории, и оно работает хорошо. Тем не менее, он не работает за корпоративным аутентифицированным (базовым или дайджест) прокси. Как я понимаю, электрон может облегчить работу прокси-серверов Chromium, но dugite, библиотека git, которую я использую, работает в основном процессе и пытается напрямую подключиться к репозиторию git. Есть ли какой-нибудь способ, которым я могу использовать прокси для dugite?
РЕДАКТИРОВАТЬ: Я провел дополнительное исследование и выяснил, что узел не обрабатывает прокси-соединения для вас. Настройки прокси учитываются только в том случае, если они находятся внутри представления рендера, и только если они используют методы окна браузера, такие как fetch. Поэтому я также попробовал isomorphic-git как замену дугита в процессе рендеринга, но это - по неизвестной причине - тоже не сработало.
Принятые решения должны быть кодом, который может быть обработан в электронном приложении.
0 ответов
Ты можешь пройти HTTP_PROXY
к GitProcess.exec()
:
const options = {
env: {
'GIT_HTTP_USER_AGENT': 'dugite/2.12.0',
'GIT_TRACE': '1',
'GIT_CURL_VERBOSE': '1',
'HTTP_PROXY': '[protocol://][user[:password]@]proxyhost[:port]'
},
processCallback: (process: ChildProcess) => {
byline(process.stderr).on('data', (chunk: string) => {
// read line from progress and convert to percentage
})
}
}
const result = await GitProcess.exec([ 'pull', 'origin' ], path, options)
Или вы можете выполнить git config http.proxy [protocol://][user[:password]@]proxyhost[:port]
в вашем репозитории, который настроит http-прокси для области репозитория (https://git-scm.com/docs/git-config)