• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的GitHub
  • QQ:1753970025
Chen Jiehua

Phabricator搭建 

目录

Phabricator是由Fackbook开发的一个开源的可视化代码审查工具。

简介

在Phabricator中,可以非常方便的针对每一段代码进行交互讨论;负责审查的工程师可以接受代码改变,可以提出疑问要求原作者继续修改等等。

在Pharbricator中,可以新建代码仓库(也就是在phabricator中host repository),也可以导入外部仓库(从外部仓库拉取数据,并跟该外部仓库保持数据同步,phabricator内部有一个更新机制);支持http,也支持ssh(不过配置比较麻烦点);Phabricator支持两种代码审查工作流:“review”(提交前审查)和 “audit”(提交后审查)。

在Phabricator的主面板中主要有以下几个工具:

  • Differential – Review Code:管理 pre-push code review 工作流程;
  • Maniphest – Task and Bugs:管理成员的所有任务和Bug,可对任务或Bug展开讨论;
  • Diffusion – Host and Browse Repositories:管理代码仓库,支持Git/Hg/SVN;
  • Audit – Browse and Audit Commits:管理 post-push code review 工作流程;
  • Phriction – Wiki:文档管理;
  • Projects – Get Organized:工程管理,可关联Repository;

关于phabricator更多的介绍,可以参考:https://secure.phabricator.com/book/phabricator/article/introduction/ 

 

phabricator安装

参考:https://secure.phabricator.com/book/phabricator/article/installation_guide/

首先,phabricator是基于php的,同时需要发送邮件(提醒code reviewer),所以假定服务器上已经配置好了php,mysql,nginx,postfix等环境;同时,官方推荐开启APC(可选)以提高PHP的性能;

官方提供了一个一键安装的脚本install_ubuntu.sh,其内容大概如下:

$sudo apt-get install php5 php5-mysql php5-gd php5-dev php5-curl php-apc php5-cli php5-json
$mkdir -p ~/vhost/phabricator
$cd ~/vhost/phabricator
$git clone https://github.com/phacility/libphutil.git
$git clone https://github.com/phacility/arcanist.git
$git clone https://github.com/phacility/phabricator.git

安装就这样完成了,可是别高兴太早了,配置才是重头戏:

配置nginx,vim /etc/nginx/site-enabled/phabricator:

# Phabricattor
server {
    listen 80;
    root /var/www/phabricator;
    index index.html index.htm index.php;
    server_name phb.chenjiehua.me;

    location / {
        index index.php;
        rewrite ^/(.*)$ /index.php?__path__=/$1 last;
    }

    location = /favicon.ico {
        try_files $uri =204;
    }

    location /index.php {
        fastcgi_pass unix://var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

配置MySQL


# 切换到Phabricator的安装目录
$cd ~/vhost/phabricator/phabricator
# 安装各种数据表
$./bin/storage upgrade --user <username> --password <password>

提示错误,根据提示设置 mysql.host, mysql.user, mysql.pass

MySQL Credentials Not Configured

Unable to connect to MySQL using the configured credentials. You must
configure standard credentials before you can upgrade storage. Run these
commands to set up credentials:

phabricator/ $ ./bin/config set mysql.host __host__
phabricator/ $ ./bin/config set mysql.user __username__
phabricator/ $ ./bin/config set mysql.pass __password__

These standard credentials are separate from any administrative credentials
provided to this command with __–user__ or __–password__, and must be
configured correctly before you can proceed.

配置域名

Base URI Not Configured

$ ./bin/config set phabricator.base-uri 'http://phb.chenjiehua.me/'

后续的操作我们就可以通过phabricator的后台进行操作了。

配置用户

phabricator支持普通的 用户/密码 登陆,也支持LDAP登陆以及OAuth等;

# 万一我们不小心把自己管理员的账号给锁死了进不了phabricator,可以通过命令行进行恢复
$ ./bin/auth recover username
# 我们也可以用命令行创建一个管理员账号
$ ./bin/accountadmin

守护进程:

如果我们需要对一些后台任务进行处理,如发送邮件,更新代码仓库等,我们需要开启后台守护进程,

$ ./bin/phd start

后面的配置基本上按照提示进行操作即可,省略了…… 

其中主要是邮箱部分的配置:

phpmailer.mailer = smtp
phpmailer.smtp-host = localhost
phpmailer.smtp-port = 25
phpmailer.smtp-protocol = tls

metamta.default-address = phabricator@chenjiehua.me
metamta.domain = phabricator.example.com #这个地方设置成自己的域名,但是发送邮件的时候被拦截了,不知道为什么
metamta.mail-adapter = PhabricatorMailImplementationPHPMailerAdapter

提示:如果遇到问题了,也可以到/var/log/syslog查看系统日志。

Arcanist安装

phabricator有两种Code Review的方式,一种是push前的Differential,一种是push后的Audit。

Phabricator为我们提供的命令行工具arc。arc是Arcanist的缩写,官方解释如下:

Arcanists provides command-line access to many Phabricator tools (like Differential, Files, and Paste), integrates with static analysis (“lint”) and unit tests, and manages common workflows like getting changes into Differential for review.

Arcanist的安装比较简单:

$git clone https://github.com/phacility/libphutil.git
$git clone https://github.com/phacility/arcanist.git
$export PATH="$PATH:/somewhere/arcanist/bin/"

然后我们就可以使用arc命令了。

在需要使用代码审查的项目根目录下新建 .arcconfig 文件:

{
"phabricator.uri": "http://your.phabricator.site",
"editor": "vim"
}
  • 首次使用我们需要安装证书,运行 arc install-certificate,打开一个链接,获取到一个token,然后输入即可;
  • 对项目内容进行一个改动,然后提交 git commit -am “修复了 XX BUG”
  • 提交Differential,运行arc diff,它会提醒你填写一些信息:
Test Plan - 必填,详细说明你的测试计划;
Reviewers - 必填,审查人的账户,多个使用","隔开;
Subscribers - 非必填订阅人,多个使用","隔开。

参考:

https://secure.phabricator.com/book/phabricator/

http://share.zuijiao.net/?p=22

 

码字很辛苦,转载请注明来自ChenJiehua《Phabricator搭建》

评论