作者: shaneZhang 分类: 互联网技术 发布时间: 2015-07-04 13:37

概览

Phabricator支持两种代码审查工作流:“review”(提交前审查)和 “audit”(提交后审查)。
这篇文档概述了通过Audit工具实现提交后审查流程。

Audit如何工作

使用审核工具允许提交和部署代码,而无需等待代码审查结果,虽然最终还是会进行代码审查。Audit工具主要跟踪两件事:

  • 代码提交(Commits),以及它们的审核状态(譬如“未经审核(Not Audited)”、“认可(Approved)”、“引发担忧(Concern Raised)”)。
  • 审核请求(Audit Requests)。审核请求提醒用户去审核一次提交。它有多种触发方式。(可见“审核触发器”一节)

在审核工具的主页(位于/audit/)或者phabricator首页可以看到代码的提交和需要你审核的审核请求。

  • 必要的审核(Required Audits)。当你是某个项目的成员,或者是一个包的拥有者,Required Audits提示你去审核一次提交。当你认可这次提交时,审核请求会被关闭。
  • 问题提交(Problem Commits)。是指有人在审核过程中对你提交的代码表示担忧。当你消除了他们的疑虑并且所有审核人均对代码表示认可时,问题提交将会消失。

举例:

  • 翠花进行了一次代码提交
  • 铁蛋接收到审核请求
  • 过了一阵儿,铁蛋登录Phabricator并在首页看到审核请求
  • 铁蛋检查翠花提交的代码。他发现代码中的一些问题,之后他选择了“引发担忧”选项,并且在评论中描述了这些问题
  • 翠花收到一封关于铁蛋对她的提交表示忧虑的email。她决定过一会儿再处理这个问题
  • 不久后,翠花登录Phabricator并在首页“问题提交”下看到提示
  • 翠花通过某些方式解决了那些问题(如“找铁蛋讨论”、“修复问题并提交”)
  • 铁蛋表示满意,并认可了最初那次提交
  • 审核请求将从铁蛋的待办事项中消失。问题提交也会从翠花的待办事项里消失

审核触发器

  • 将“Auditors: username1, username2”写入提交注释中,会触发上述用户接到审核请求
  • 可以在Herald工具中,根据提交的属性创建一系列的触发规则。如有文件被创建、文本被修改,提交人等。
  • 可以在任何提交中,通过提交注释为自己创建审核请求。

在小团队中进行审核

如果你身处一个小团队并且认为不需要复杂的触发规则,那么你可以创建一个简单的审核工作流,如下所示:

  • 创建一个新项目:“Code Audits”。
  • 为代码提交创建一条全局规则:”Differential Revision” “does not exist”。在这条规则下,“Code Audits”项目的每一次提交都会触发一次审核请求。
  • 所有工程师加入Code Audits项目。

    通过这种方式,所有项目成员都将收到每一次代码提交的审核请求,但是,一旦某一位成员认可了这次提交,那么所有的审核请求便会消除。实际上,这种方式强制大家遵守了一条规则:任何提交都应该被人看到。一旦团队壮大,便可改进触发规则使每位开发人员只看到与他们有关的代码修改。

审核工具小贴士:

  • 责任感。在审阅一次代码提交时,你所负责的审核是被突出显示的。你要为自己的任何审核行为负责。
  • 在diff对比区域,点击行号将可添加内嵌评论。
  • 在diff对比区域,在行号上拖动可添加跨越多行的内嵌评论。
  • 内嵌评论最初只保存为草稿,直到你在页面底部提交评论。
  • 按“?”键查看快捷键。

Phabricator代码审核Audit用户指南的更多相关文章

  1. 搭建phabricator代码审核工具

    phabricator 依赖环境 系统centos,mysql,php,nginx 1.下载安装脚本 https://secure.phabricator.com/source/phabricator ...

  2. Gradle用户指南(章9:Groovy快速入门)

    Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.ja ...

  3. Gradle用户指南

    下载安装gradle 2.1 下载地址:http://www.gradle.org/learn 安装先决条件:gradle安装需要1.6或者更高版本的jdk(jre)(可以使用java –versio ...

  4. scons用户指南翻译(附gcc/g++参数详解)

    scons用户指南 翻译 http://blog.csdn.net/andyelvis/article/category/948141 官网文档 http://www.scons.org/docume ...

  5. 阿里云 EDAS-HSF 用户指南

    阿里云 EDAS-HSF 用户指南 针对 EDAS v2.3.0©Alibaba EDAS 项目组2015/8/19 1 前言本文档旨在描述阿里云 EDAS 产品中应用服务化模块的基本概念,以及如何使 ...

  6. Android官方技术文档翻译——Gradle 插件用户指南(1-3)

    不知道是什么网络问题,上午一直发不了博客,其它页面基本正常,就是在写博客这里,每次打开都是响应超时.刚才用了VPN,顺便试了一下,竟然能够编辑.想是CDN之类的问题吧. 这次翻译的是Gradle 插件 ...

  7. Android官方技术文档翻译——Gradle 插件用户指南(5)

    昨晚把第五章未译完的几句话攻克了.只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章. 本文译自Android官方技术文档<Gradle Plugin User Gu ...

  8. 阿里云API网关(6)用户指南(开放 API )

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  9. Gradle 1.12用户指南翻译——第二十一章. Gradle 插件

    昨天晚上只顾着和女朋友看<匆匆那年>电视剧的最后几集,所以说好的Android文档<Gradle 插件用户指南>第五章自然也没翻译多少.所以今天也发不了第五章的翻译了,就发几个 ...

随机推荐

  1. java翻转字符串中的单词

    效果: 输入: "java and python" 输出: "avaj dna nohtyp" 代码: 版本1: 不考虑字符串开头有空格,单词间有多个空格空格的 ...

  2. 时间复杂度On和空间复杂度O1是什么意思?

    (1).把输入规模看成x轴,所花时间/空间看成y轴 O(n)就是y=x,y随x的增长而线性增长.也就是成正比,一条斜线. O(1)就是y=1,是一个常量,不管x怎么变,y不变,一条与x轴平行的线. ( ...

  3. 修改最后一次 已commit 的备注

    输入命令 git commit --amend 会展示出最后一次提交的 备注信息 按 i 进行编辑 按esc 退出编辑 再按 shift +: (注意是英文的冒号),切换到命令行 wq 保存 即可 参 ...

  4. python 指定文件编码的方法

    import sys reload(sys) sys.setdefaultencoding('utf-8')

  5. ssh连接docker容器

    有两种方法: 1.通过宿主机的端口映射访问docker 在宿主机上启动容器,分配端口,启用ssh服务: docker run -p 10022:22 -d sshd:ubuntu /usr/sbin/ ...

  6. 廖雪峰Java3异常处理-1错误处理-3抛出异常

    1.异常的传播 当某个方法抛出异常时: 如果当前方法没有捕获,异常就被抛到上层调用方法 直到遇到某个try...catch被捕获 使用printStackTrace()打印处方法的调用栈 import ...

  7. Vue + TypeScript + ElementUI 封装表头查询组件

    前段时间有朋友私信我 Vue + TypeScript 的问题,然后就打算写一篇 Vue + TypeScript 封装组件的文章 正好公司项目中需要封装一个表头查询组件,就拿出来分享一下~ 组件的整 ...

  8. PostgreSQL 一主多从(多副本,强同步)简明手册 - 配置、压测、监控、切换、防脑裂、修复、0丢失 - 珍藏级

    参考来源: https://github.com/digoal/blog/blob/master/201803/20180326_01.md#postgresql-一主多从多副本强同步简明手册---配 ...

  9. 使用unbound提供DNS域名解析服务

    使用unbound提供DNS域名解析服务 # 作者:Eric # 微信:loveoracle11g # 先配yum仓库 [root@server1 ~]# cd /etc/yum.repos.d/ [ ...

  10. linux下打开文件、编辑文本cat\gedit\nano

    cat: 文本编辑器:gedit.nano,要获得根权限,在前面加上sudo