代码审查工具 phabricator 安装配置

参考资料:
https://secure.phabricator.com/book/phabricator/article/diffusion_hosting/      配置 diffusion 使用 SSH 协议连接 SVN 进行本地托管
⚓ T11781 Hosted SVN repo doesn't work with SSH on nondefaut port      解决使用 SSH 协议连接 SVN 实现本地托管的非默认端口问题
Windows系统下Phabricator的Arcanist配置安装 - 简书    Windows系统下Phabricator的 arcanist 配置安装
◉ Arcanist User Guide: Windows     windows 下安装 arcanist   
https://tortoisesvn.net/ssh_howto.html    svn+ssh 客户端配置

phabricator 只能安装在linux等类unix机器上,是一套 LAMP 程序,当然也可以使用 nginx 。
假设 Apache, PHP, MySQL 默认已安装配置好。 

服务器域名设定: phabricator.company.com

用户创建:
phabricator 所在服务器上的系统用户,按照官方要求创建三个用户
www-user: www-data
daemon-user: root
vcs-user: svn

启用 diffusion 支持 pre-push 工作流(review)
----------------------------------------
1、配置 phabricator
cd /var/www/html/pha/phabricator
./bin/config set phd.user root
./bin/phd restart
./bin/config set diffusion.ssh-user svn

2、配置 www-user, vcs-user 具有 sudo 权限
visudo 增加两行
www-data ALL=(root) ALL
svn ALL=(root) NOPASSWD:ALL
并注释以下内容
#Defaults    requiretty

3、 ssh 用户的特殊配置
usermod -p NP svn
usermod -s /bin/bash svn

4、配置 phabricator 专用 sshd 
./bin/config set diffusion.ssh-port 222
mkdir -p /usr/libexec/
cp phabricator/resources/sshd/phabricator-ssh-hook.sh /usr/libexec/
chown root /usr/libexec/phabricator-ssh-hook.sh
chmod 755 /usr/libexec/phabricator-ssh-hook.sh
vi /usr/libexec/phabricator-ssh-hook.sh
修改 VCSUSER, ROOT 为实际配置
cp phabricator/resources/sshd/sshd_config.phabricator.example /etc/ssh/sshd_config.phabricator
vi /etc/ssh/sshd_config.phabricator
修改 AuthorizedKeysCommand, AuthorizedKeysCommandUser, AllowUsers 为 /usr/libexec/phabricator-ssh-hook.sh, svn, svn
修改 Port 为 222
启动 sshd 
/usr/sbin/sshd -f /etc/ssh/sshd_config.phabricator   --最好设置为开机自启动

5、配置 svn 用户的 ssh 公私钥对
svn 用户执行 ssh-keygen ,一路按回车,生成的公私钥对存放在 ~/.ssh/ 目录下
公钥: id_rsa
私钥: id_rsa.pub
其中私钥不动,公钥则上传到 phabricator 相对应的用户下: Settings -> SSH Public Keys

6、检查 sshd 是否部署成功
ssh -T -p 222 svn@phabricator.company.com
echo {} |ssh -p 222 svn@phabricator.company.com conduit conduit.ping
如果显示信息没有报错异常,则表示成功。

windows开发机安装 arcanist
----------------------------
1、安装 php-7.2.7 和 Visual.Studio.2015.Runtime 
需修改配置文件 php.ini 
验证安装结果: php -i 

2、安装 TortoiseSVN-1.8 

3、支持 svn+ssh 访问代码库
使用 puttygen 生成公/私钥对,将公钥上传至phabricator指定用户,将私钥导入 putty 。
配置 TortoiseSVN GUI客户端 Settings->Network ,指定 SSH 客户端为 TortoisePlink.exe 或 PLINK.exe(如果是1.6以下版本,只能用plink.exe)。推荐使用 TortoisePlink.exe ,不会有命令行弹窗。 
svn URL路径变为: svn+ssh://putty_session_name/repos  其中 putty_session_name 是 putty 中定义并保存的会话名称
windows命令行支持 svn 操作: 添加环境变量 SVN_SSH =  C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe

4、安装 arcanist 和 libphutil
将从官方下载的 arcanist 和 libphutil 解压到指定目录,配置 arcanist\bin 到环境变量 PATH
在windows命令行中执行以下命令:
arc set-config default http://192.1.56.111  //设置连接到 phabricator 
arc install-certificate  //安装授权访问 phabricator 的证书,用特定的 phabricator账号 授权,即将该开发机操作系统账号关联到该 phabricator账号 。
arc set-config editor "\"D:\Program Files\Notepad++\notepad++.exe\" -multiInst -nosession"  //使用Arcanist时需要使用文本编辑器编辑大段文本,不能使用微软自带的NotePad,可以用 notepad++

linux开发机安装 arcanist
----------------------------
1、安装 php-7.2.7 
需修改配置文件 php.ini 
验证结果: php -i 

2、安装 svn 客户端

3、配置支持 svn+ssh 访问 phabricator 托管仓库
用开发账号执行以下操作:
由于 svn 不支持URI中指定非缺省端口(22)连接 ssh ,因此做如下配置调整
svn co   //自动生成 ~/.subversion 目录
vi ~/.subversion/config
[tunnels]一节中增加 
ssh = ssh -p 222

调整 svn checkout svn+ssh://svn@192.1.56.111:222/diffusion/DTS/ dts 为 svn checkout svn+ssh://svn@192.1.56.111/diffusion/DTS/ dts
即执行 svn checkout svn+ssh://svn@192.1.56.111/diffusion/DTS/ dts ,正常应该在当前目录下成功将 DTS 签出到 dts/ 目录中。

问题解决:
如果执行 svn checkout 等操作出现 killed by signal 15 错误,则需要增加 -q 参数到上面配置中。
 
4、配置 phabricator 访问地址及证书
svn客户端机器安装 arcanist 后,需配置到项目中:在svn仓库根目录下添加 .arcconfig 文件(上传到svn),内容如下:
{
    "phabricator.uri" : "http://192.1.56.111/"
}

arc install-certificate   //在svn客户端机器安装授权访问phabricator的证书,用特定的 phabricator账号 授权,即将该开发机系统账号关联到该 phabricator账号 。
arc set-config editor "vim"  //设置 arc diff 默认编辑器为vim


arcanist 使用方法
----------------------------
arc diff               //向 phabricator 发送 review 申请
arc list
arc commit            //review 通过后正式提交到代码库,自动做svn commit操作
arc commit --show   //仅仅显示待提交内容,不会真正提交

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值