天天看点

代码审查工具 phabricator 使用学习

phabricator 在线文档:

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

diffusion 基本说明

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

Repository 分类说明以及如何导入一个已存在的代码仓库

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

查看或导入已存在的代码仓库

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

配置由 phabricator 托管的代码仓库

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

review 与 audit 的区分

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

arcanist 快速安装

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

arcanist 基本使用说明

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

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

Differential 基本使用说明

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

Audit 基本使用说明

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

Inline Comments 作用说明

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

Herald 规则引擎配置说明

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

强制执行 Code Review --创建 Herald 规则

https://www.jianshu.com/p/b1a75a14638c   

post-push code review workflow(Audit):

1、开发人员提交代码到代码库,系统根据 Herald 设定规则向特定人员发送审查申请(Audit Request);

2、审查人员收到审查申请,通过 Open Audits 查看提交的变更内容,如果发现问题,可通过添加评论的方式并以"Raise Concern"向开发人员反馈回去;

3、开发人员收到反馈邮件,登录到 phabricator 查看反馈内容,然后修改代码后再次提交,并且以"Request Verification"通知审查人员再次审查;

4、审查人员确认修改无误后,使用"Accept Commit"关闭本次审查工作流;

pre-push code review workflow(Differential):

1、开发人员 author 在自己机器上开发好代码,通过本机安装的 arcanist 工具推送变更内容(arc diff)到 phabricator 系统的 Differential 面板中,等待 reviewer 审查代码。此时,代码还没有正式提交到代码库;

2、审查人员 reviewer 收到 phabricator 自动发送的审查请求邮件;

3、审查人员 reviewer 在 Differential 中审查变更的代码,可以选择审核通过,或者标注出有问题的代码,要求开发人员 author 重新修改;

4、开发人员 author 修复bug后再次提交审查,如此反复,直到审查通过;

5、一旦审核人员审查通过,确认接受变更(accepted),则开发人员可以将代码最终提交(arc commit)到代码库svn中;

若要支持 pre-push 工作流,代码仓库必须由 phabricator 自己托管。

phabricator 暂仅支持通过 SSH 协议对 SVN 进行代码托管。

已经存在的 svn 代码库如果要支持 pre-push 工作流,只能将现有的 svn 代码库迁移(svnsync)或物理拷贝到 phabricator 托管的代码库才能使用。