代理后面的电子中的Dugite/isomorphic-git

thr*_*ree 5 git node.js electron isomorphic-git

我正在编写一个电子应用程序,必须每隔一段时间克隆和拉出存储库,它运行良好.但是,它在企业认证(基本或摘要)代理后面失败.据我了解电子可以faciliate的铬代理功能,但dugite,我使用的git库,在主进程中运行,并尝试直接连接到Git仓库.有什么方法可以使用代理来进行dugite吗?

编辑:我做了一些额外的研究,并发现该节点不能为您处理代理连接.只有在渲染器视图中使用代理设置并且仅当它们使用浏览器窗口的方法(如fetch)时,才会遵守代理设置.因此,我也尝试使用isomorphic-git作为渲染器过程中的dugite替换,但由于某些未知原因,它也不起作用.

接受的解决方案必须是可以在电子应用程序内处理的代码.

san*_*ier 0

您可以传递HTTP_PROXYGitProcess.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)
Run Code Online (Sandbox Code Playgroud)

或者,您可以git config http.proxy [protocol://][user[:password]@]proxyhost[:port]在存储库中执行,这将为存储库范围配置http代理(https://git-scm.com/docs/git-config#Documentation/git-config.txt-httpproxy