Browse Source

feature: `Git.exe` 代理,添加 `是否代理HTTP请求` 的配置项 (#349)

pull/350/head
王良 2 months ago committed by GitHub
parent
commit
4065acb686
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      packages/core/src/modules/plugin/git/config.js
  2. 46
      packages/core/src/modules/plugin/git/index.js
  3. 8
      packages/gui/src/view/pages/plugin/git.vue

3
packages/core/src/modules/plugin/git/config.js

@ -3,6 +3,7 @@ module.exports = {
enabled: false,
tip: '如果你没有安装git命令行则不需要启动它',
setting: {
sslVerify: true // 是否关闭sslVerify
proxyHttp: false, // Git.exe 是否代理HTTP请求
sslVerify: true // Git.exe 是否关闭sslVerify,true=关闭 false=开启
}
}

46
packages/core/src/modules/plugin/git/index.js

@ -23,15 +23,28 @@ const Plugin = function (context) {
},
async setProxy (ip, port) {
const cmds = [
`git config --global http.proxy http://${ip}:${port} `,
`git config --global https.proxy http://${ip}:${port} `
]
// 代理https
const ret = await shell.exec([`git config --global https.proxy http://${ip}:${port} `], { type: 'cmd' })
try {
if (config.get().plugin.git.setting.proxyHttp === true) {
// 代理http
await shell.exec([`git config --global http.proxy http://${ip}:${port} `], { type: 'cmd', printErrorLog: false })
} else {
// 尝试取消代理http
await shell.exec(['git config --global --unset http.proxy '], { type: 'cmd', printErrorLog: false })
}
} catch (ignore) {
}
// 恢复ssl验证
if (config.get().plugin.git.setting.sslVerify === true) {
cmds.push('git config --global http.sslVerify false ')
try {
await shell.exec(['git config --global http.sslVerify false '], { type: 'cmd', printErrorLog: false })
} catch (ignore) {
}
}
const ret = await shell.exec(cmds, { type: 'cmd' })
event.fire('status', { key: 'plugin.git.enabled', value: true })
log.info('开启【Git】代理成功')
@ -39,14 +52,23 @@ const Plugin = function (context) {
},
async unsetProxy () {
const cmds = [
'git config --global --unset https.proxy ',
'git config --global --unset http.proxy '
]
// 取消代理https
const ret = await shell.exec(['git config --global --unset https.proxy '], { type: 'cmd' })
// 尝试取消代理http
try {
await shell.exec(['git config --global --unset http.proxy '], { type: 'cmd', printErrorLog: false })
} catch (ignore) {
}
// 恢复ssl验证
if (config.get().plugin.git.setting.sslVerify === true) {
cmds.push('git config --global http.sslVerify true ')
try {
await shell.exec(['git config --global http.sslVerify true '], { type: 'cmd', printErrorLog: false })
} catch (ignore) {
}
}
const ret = await shell.exec(cmds, { type: 'cmd' })
event.fire('status', { key: 'plugin.git.enabled', value: false })
log.info('关闭【Git】代理成功')
return ret

8
packages/gui/src/view/pages/plugin/git.vue

@ -20,6 +20,14 @@
当前未启动
</a-tag>
</a-form-item>
<a-form-item label="代理HTTP请求" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-checkbox v-model="config.plugin.git.setting.proxyHttp">
是否代理HTTP请求
</a-checkbox>
<div class="form-help">
勾选时同时代理HTTP和HTTPS请求不勾选时只代理HTTPS请求
</div>
</a-form-item>
<a-form-item label="SSL校验" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-checkbox v-model="config.plugin.git.setting.sslVerify">
关闭sslVerify

Loading…
Cancel
Save