Facebook代码审核工具Phabricator使用指南

原创
2016/10/25 18:29
阅读数 8.7K

Phabricator支持两种代码审查工作流:“review”(提交前审查)和 “audit”(提交后审查)。
 

模式review:提交前审查的使用说明

 

一、Arcanist 安装注意:

此文档仅仅针对Linux用户
对于Mac OS X用户,请参照 Arcanist使用手册: Mac OS X
对于Windows用户,请参照 Arcanist使用手册: Windows

1.1 安装如下软件包

sudo yum install php git

1.2 安装Arcanist

$ mkdir somewhere/
$ cd somewhere/
somewhere/ $ git clone https://github.com/phacility/libphutil.git
somewhere/ $ git clone https://github.com/phacility/arcanist.git

1.3 修改环境变量

$ export PATH="$PATH:/somewhere/arcanist/bin/"
$ export EDITOR="/usr/bin/vim"

二、配置项目

注意:配置项目的详情,请参照 Arcanist使用手册: 配置新项目

在项目工作目录下创建配置文件 .arcconfig

$ cd yourproject/
yourproject/ $ $EDITOR .arcconfig
yourproject/ $ cat .arcconfig
{
  "phabricator.uri" : "https://phab.域名.org/"
}

三、安装Arcanist证书

在安装Arcanist证书之前,必须具有Phabricator账号

$ cd yourproject/
yourproject/ $ arc install-certificate

执行安装证书命令,会看到如下内容

CONNECT Connecting ...

 

按照提示,在浏览器里输入 http://phab.域名.com/conduit/login/ ,会看到如下内容

获取 API Token

 

拷贝API token到命令行,如果看到如下内容,表明证书安装成功

SUCCESS

 

四、配置Lint

注意:Lint的详情,请参照 Arcanist使用手册: Lint

Lint是程序语言检查工具的统称,通常用来分析代码并报出代码中的错误及警告。

可以通过如下命令列出当前支持的Lint。

$ arc linters

根据你项目的需要,在项目工作目录下创建配置文件 .arclint

$ cd yourproject/
yourproject/ $ $EDITOR .arclint
yourproject/ $ cat .arclint
{
    "linters": {
        "merge-conflict": {
            "type": "merge-conflict"
        },
        "php-syntax": {
            "type": "php",
            "include": "(\\.php$)"
        }
    }
}

五、提交代码到Review状态

注意:arc diff的详情,请参照 Arcanist使用手册: arc diff

如下以将Arcanist配置文件提交到项目为例,输入如下命令提交代码到Review状态

$ arc diff

输入命令,会有2次确认,填y即可。

其间,命令行会提示你输入概述,测试计划,修订人(即你希望的代码reviewer),以及订阅者,内容如下

<<Replace this line with your Revision Title>>       
Summary:   
Test Plan:   
Reviewers:   
Subscribers:    
# NEW DIFFERENTIAL REVISION    
# Describe the changes in this new revision.        

忽略#开头的行:       
开头: 本次修改的详细描述,必填,可以换行(从第一行到Summary行)。    
Summary: 本次修改的简短描述,必填。    
Test Plan: 留空,不填。     
Reviewers: Reviewer的账号,可填多个。可以不填,之后打开Phabricator补上。

 

提交成功后,可以在Phabricator的"Diff 检阅"里面看到你的提交处于"等待Reviewer审查"的状态。

 

六、Reviewer审核代码
代码Reviewer可以线下或者通过线上来完成代码审核,审核通过后在Phabricator的"Diff 检阅"里面找到相应的提交,并给出意见,通过或者拒绝。可以设置操作和注解。

 

七、正式发布代码
代码通过Review以后,作者可以在Phabricator的"Diff 检阅"里面看到你的提交处于"Ready to Land"的状态。

 

输入如下命令正式发布代码

$ arc land

日志会显示提交信息,一次成功的提交已经完成了。

 

Phabricator操作说明

Waiting on Review
    Comment                #添加说明
    Abandon Revison     #废弃版本
    Plan Changes          #改变计划(—>Ready to Update)
    Add Reviewers         #添加审核人
    Add Subscribers      #订阅人

Ready to Update
    Comment                #添加说明
    Abandon Revison     #废弃版本
    Request Review       #重新请求Review,可添加审核人(->Waiting on Review)
    Add Reviewers         #添加审核人
    Add Subscribers       #订阅人

Ready to Review
    Accept Revison           #接受版本 (->Ready to Land)
    Request Changes        #请求改变 (->Waiting on Authors)
    Resign as Reviewer     #辞去审核人
    Commandeer Revison  #角色互换(创建人变更为审核人)
    Add Reviewers            #添加审核人
    Add Subscribers          #订阅人

Ready to Land
    Comment                 #添加说明
    Abandon Revison       #废弃版本
    Request Review        #重新请求Review,可添加审核人(->Waiting on Review)
    Plan Changes           #改变计划(—>Ready to Update)
    Close Revison          #关闭版本
    Add Reviewers         #添加审核人
    Add Subscribers       #订阅人

Waiting on Authors
    Comment                   #添加说明
    Accept Revison           #接受版本 (->Ready to Land)
    Resign as Reviewer     #更换审核人
    Commandeer Revison  #角色互换(创建人变更为审核人)
    Add Reviewers            #添加审核人
    Add Subscribers          #订阅人

arc操作说明

arc diff                       // 提交默认的diff
arc diff xxx --preview  // 提交针对某个分支的commit,并只生成diff文件,不在web端创建revision
arc which                   // 查看arc diff 会提交哪个范围的diff
arc land                     // 提交代码,删除该分支 or 使用 git push
arc list                      // 查看有哪些revision和其状态

 

不足之处,欢迎指正!

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部