使用shadowsocks+https方式推送代码到OpenStack Gerrit




众所周知,国内访问某些国外网站非常困难,推送代码到OpenStack官方gerrit也比较慢,并且不稳定,想贡献点patch非常痛苦。

方案有很多,要么用国外的主机推送代码,要么挂代理,第一种方式比较贵,屌丝码农买不起,只能买vpn或者shadowsocks,vpn就不说了,ssh/git协议没啥问题,但shadowsocks跑的是socks5代理,ssh/git协议不能用,只能http/https协议,好在OpenStack官方gerrit支持https方式拉取、推送代码:https://docs.openstack.org/infra/manual/developers.html#accessing-gerrit-over-https

配置过程:

首先配置好shadowsocks代理并运行起来,之后配置gitconfig,一般位于家目录,文件名.gitconfig,没有的话手工创建一个,加入内容:

[http]
proxy = socks5://127.0.0.1:1080
[https]
proxy = socks5://127.0.0.1:1080

其中127.0.0.1:1080分别为shadowsocks代理的IP和端口号。

之后就可以使用https协议的git库地址来clone代码了,如果要推送代码,还需要多做一些配置,比如要在OpenStack gerrit上配置http password,https://review.openstack.org/#/settings/http-password点generate password即可。

然后再在clone下来的OpenStack项目代码目录下执行:git remote add gerrit https://{USERNAME}@review.openstack.org/openstack/nova.git,注意你的用户名也需要在gerrit上配置好,并且不一定是你的邮箱账号。

然后就可以通过代理顺畅的使用git review推送代码到OpenStack gerrit了,推送过程中会让你输入http密码,比较长需要从gerrit上拷贝过来,我是使用shift+insert快捷键粘贴密码的。