REDMINE/SVN安装、配置、集成和应用(二)

REDMINE/SVN 应用 (2)

前面我们介绍了REDMINE/SVN安装、配置、集成,后面将介绍如何更好地使用Redmine/SVN系统,将研发项目的管理提高一个层次。REDMINE/SVN应用的内容较多,我们将分几次介绍。下面是本文介绍内容的列表:

1、安装和使用Redmine的插件。
2、使用AD DC做Redmine/SVN身份验证和授权。
3、介绍一些能提高项目管理效率/效果的插件。


安装和使用Redmine的插件

Redmine插件分二类:主题(theme)和功能(plugins),下面分别介绍这二种插件的安装和使用。

1、主题的安装和使用

  • 安装主题
    将主题目录完整复制到 $REDMINE_ROOT/public/themes 目录下即可。
    在Ubuntu下,$REDMINE_ROOT是 /usr/share/redmine

  • 使用主题
    【管理】->【配置】->【显示】->【主题】
    所有已安装的主题都会显示在下拉菜单中。
    这里写图片描述
    选择需要的主题,点击【保存】。新的主题将被立刻使用。
    这里写图片描述
    Redmine本身只支持一个主题,所用用户都使用同一主题。又没办法让用户可以使用不同的主题?有,但需要安装功能插件来扩展Redmine的功能。

2、功能插件的安装和使用
这里介绍一个主题功能扩展的功能插件 – redmine_user_specific_theme

  • 安装功能插件
    功能插件的安装目录是 $REDMINE_ROOT/plugins
    复制 整个功能插件目录到 $REDMINE_ROOT/plugins 下,然后安装(注意安装命令必须在$REDMINE_ROOT下执行,安装命令是:bundle exec rake redmine:plugins:migrate RAILS_ENV=production),安装完成后重启Redmine。
root@scm:~# ls -l /usr/share/redmine/plugins/
total 4
drwxr-xr-x 7 root root 4096 Jul  6  2017 redmine_user_specific_theme
root@scm:~# 
root@scm:~# cd /usr/share/redmine/
root@scm:/usr/share/redmine#
root@scm:/usr/share/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
/usr/lib/ruby/vendor_ruby/sprockets/digest_utils.rb:47: warning: constant ::Fixnum is deprecated
/usr/lib/ruby/vendor_ruby/sprockets/digest_utils.rb:51: warning: constant ::Bignum is deprecated
/usr/lib/ruby/vendor_ruby/sprockets/processor_utils.rb:110: warning: constant ::Fixnum is deprecated
/usr/lib/ruby/vendor_ruby/sprockets/processor_utils.rb:111: warning: constant ::Bignum is deprecated
/usr/lib/ruby/vendor_ruby/builder/xchar.rb:111: warning: constant ::Fixnum is deprecated
Migrating redmine_user_specific_theme Redmine User-Specific Theme Plugin)...
root@scm:/usr/share/redmine#
root@scm:/usr/share/redmine# cd public/plugin_assets/
root@scm:/usr/share/redmine/public/plugin_assets# mkdir redmine_user_specific_theme
root@scm:/usr/share/redmine/public/plugin_assets# cp -r /usr/share/redmine/plugins/redmine_user_specific_theme/* redmine_user_specific_theme
root@scm:/usr/share/redmine/public/plugin_assets#cd ../..
root@scm:/usr/share/redmine# systemctl restart apache2
root@scm:/usr/share/redmine#
  • 使用功能插件
    每个插件的使用方式不一样,redmine_user_specific_theme使用方式:
    登陆Redmine后,点击右上角的【我的账户】:
    这里写图片描述
    在【Theme】的下来菜单中选择您自己的主题,然后点击保存。选择空,即使用系统主题。

  • 删除功能插件
    首先运行 bundle exec rake redmine:plugins:migrate VERSION=0 RAILS_ENV=production NAME=[plugin_name]
    如要删除刚安装的redmine_user_specific_theme,则运行下列命令:
    bundle exec rake redmine:plugins:migrate VERSION=0 RAILS_ENV=production NAME=redmine_user_specific_theme
    然后删除插件目录 rm -rf /usr/share/redmine/plugins/redmine_user_specific_theme;
    最后重启了Redmine systemctl restart apache2


使用AD DC做Redmine/SVN身份验证和授权

在我们的系统中,并不是所有AD用户都有权限使用本系统。AD用户中只有属于DevGroup、TestGroup和SCMUsers才有权限使用Redmine/SVN(SCM)系统。我们在配置Redmine的LDAP身份验证和授权时,按此原则执行。

1、AD DC用户/用户组设置

  • 建立用户组
    首先在AD DC上建立用户组DevGroup、TestGroup和SCMUsers
    注意:我们建立的是用户组,而不是OU。在LDAP配置中是不一样的!
    这里写图片描述
    建立用户组 DevGroup:
    这里写图片描述
    以相同的方式,再建立TestGroup和SCMUsers组:
    这里写图片描述
    现在我们再创建4个用户,分别是张大同(dt.zhang,属于DevGroup),李晓莉(xl.li,属于TestGroup),王子凡(zf.wang,属于SCM授权用户)和钱多多(dd.qian)。

    用户张大同信息:
    这里写图片描述
    其他用户信息:
    这里写图片描述

    2、Redmine 的 LDAP 认证设置

以管理员身份登陆,然后【管理】->【LDAP 认证】->【新建认证模式】进入设置界面。
这里写图片描述
我们使用的是AD DC(lsdc1.lswin.lan)上的LDAPS服务,端口是636;账号必须是AD DC上有Domain管理员权限的用户账号;密码是该账号的密码;Base DN是指Domain用户的Base DN;在我们的LDAP服务器上,domain用户的objectClass是organizationalPerson,不同的LDAP服务器可能有不同的class名字;因为我们使用的是用户组而不是OU,所以在判断是否属于用户组的过滤器是:memberof=CN=SCMUsers,DC=LSWIN,DC=LAN。
这里写图片描述
点击测试,测试是否能连接到LDAPS服务。
这里写图片描述
见到连接成功证明LDAPS服务的连接配置成功。

下面测试用户身份验证和授权的配置是否成功。
测试方式:以刚建立的4个用户分别登陆Redmine/SVN,如LDAPS认证设置成功的话,用户张大同、李晓莉和王子凡可以进入系统,
这里写图片描述
而用户钱多多会被拒绝,
这里写图片描述
LDAP只做系统级的身份认证和授权,更精细的基于项目的Redmine/SVN系统权限控制,将配合工作流程和审批流程同时配置,后面会有介绍。


其他Redmine插件推荐

Redmine/SVN系统,在满足大部研发项目管理(特别是软件项目管理)的同时,存在一些明显的不足和不便之处。在此我们介绍一些我们使用的Redmine插件,这些插能有效地提升项目管理的效率和效果。

1、DMSF(文档管理系统功能)插件
Redmine DMSF是Redmine问题跟踪系统的文档管理系统功能插件;它旨在取代目前的Redmine的文档模块。DMSF可以通过下列链接获取:https://www.redmine.org/plugins/dmsf。
功能简介:

目录结构
文档版本控制/修订历史记录
目录和/或文档的电子邮件通知
文件锁定
通过zip进行多下载
通过电子邮件发送直接文档或文档链接
可配置文档批准工作流程
文档访问审核
文档和文件夹符号链接
文档标记
垃圾桶
可以作为问题的附件

我们在只介绍一下DMSF插件的安装、配置和文档审批流程的建立/应用和权限管理。

  • 安装和配置:
    DMSF采用标准方式安装,安装完成后,在$REDMINE_ROOT目录下建立files/dmsf子目录,并将其owner改为www-data.www-data。这个目录是DMSF用来存储文件,在Ubuntu下,Apache2 的owner是由www-data。

    配置分为二步,一是全局设置,二是基于项目设置。 全局设置(【管理】->【插件】->【DMSF】):
    这里写图片描述
    基本不需修改,保持默认即可,除了WebDAV和XAPIAN(我们没启用WebDAV和XAPIAN二项服务)。
    基于项目设置(示范项目Project Panda)(【项目】->【Project Panda】->【配置】):

    ->【文档管家】:
    这里写图片描述
    ->【文档审批流程】:
    这里写图片描述
    文档审批是项目管理中的一个重要环节,我们在下面详细介绍。

  • 权限管理:
    DMSF为每一个项目建立独立的文档文件夹,每个项目有独立的文档管理权限。一般的做法是同一类角色成员有相同的权限,可操作同一批文件夹;个别用户有特殊需求,再独立授权。
    范例:在项目Project Panda下面,我们将建4个文件夹,分别是公共文档(授权给所有成员),研发部(授权给开发人员),品管部(授权给品管人员),机密文档(授权给管理员、项目负责人、开发/品管负责人)。
    进入文档管家(【项目】->【Project Panda】->【文档管家】):
    这里写图片描述
    ->【创建文件夹】:
    创建公共文档文件夹:
    这里写图片描述
    我们将权限授予了所有角色。
    创建研发部文件夹:
    这里写图片描述
    我们按要求,将权限授予了属于研发部的全体人员、所有负责人和特定个体(AdamsJohn)。通过这种方式配合角色和权限,我们可以对文档管理做精细控制。

  • 审批流程:
    文档管理中的另外一个重要环节是审批流程,DMSF提供了一种简介有效的文档审批流程。在此示范中,根据不同的流程和不同的审批人员,使用了三种不同的审批流程:研发文档审批流程、品管文档审批流程和普通文档审批流程。研发和品管采用三级审批(部门审批/项目审批/终审),普通文档为全局配置,仅由管理员审批。
    【新建审批流程】
    首先建立空的研发文档审批流程
    这里写图片描述
    然后添加审批步骤和审批人员:
    这里写图片描述
    点击研发文档审批流程进入添加/修改审批步骤和审批人员,
    这里写图片描述
    AND 王五 AND 张大同的意思是需要二人都审批。

    建立品管文档审批流程
    这里写图片描述
    因为它们有相同的审批流程,所以我们选择先复制,然后修改审批人的方法建立该审批流程。
    这里写图片描述
    这里部门审批人员是OR 李晓莉 OR 赵二的意思是只要他们中的一人审批就行。

  • 文档的上传和审批:
    最简单的方法是Drag and Drop,直接将要上传的文档扔在上传区。
    这里写图片描述
    标志着把文件拖到这里的区域就是上传区。
    这里写图片描述
    先选择目标目录,在这我们选择了公共文档,再把文件人在上传区,然后点击上传。
    这里写图片描述
    为上传文件做个简单描述。
    这里写图片描述
    文件已成功上传,这时我们可以通过点击右面的 ✔ 符号,启动审批流程。
    这里写图片描述
    在弹出的对话框中,选择需要使用的审批流程,点击【提交】启动审批流程。
    这里写图片描述
    文档批准后的显示:
    这里写图片描述
    通过添加DMSF插件,Redmine具有了完整的文档管理功能,包含身份认证、用户授权、审批流程、版本控制等文档管理功能。

    2、Code Review(代码评审)插件
    代码评审在软件开发过程中的保证产品质量的一个重要环节,Code Review(代码评审)插件可以帮助将代码评审规范化和常态化,有效地提高软件产品质量。Code Review(代码评审)插件可由下列链接获取:https://github.com/haru/redmine_code_review。

  • 安装和配置:
    Code Review(代码评审)插件采用标准方式安装,安装完成后即可使用,无配置。

  • 使用方法:
    Code Review(代码评审)插件使用Redmine的Issue系统最终评审过程,为了避免在系统中产生不必要的问题,建议再建立一个问题追踪标志,如:代码评审,这个标志只对研发部门开放,其他人员是不可见的。
    基于项目的代码评审设置:开发人员都可以发去代码评审,任何代码评审请求都会自动分配该研发负责人。
    这里写图片描述
    代码评审过程示范:
    这里写图片描述
    新提交的版本,代码评审状态为无评审。可点击分配给启动评审。
    这里写图片描述
    我们可以看到代码评审使用了Redmine的追踪功能,为了避免给品管品管带来不便,我们专门建了代码评审追踪目标,只有开发组可见。
    这里写图片描述
    这里写图片描述
    下图是一般品管人员能见到的问题列表,不含问题#19(代码评审请求)。
    这里写图片描述
    代码评审的批注直接在页面上完成,点击右面的小铅笔符号,即弹出对话框。在新旧版本比较页面和代码显示页面都可使用。
    这里写图片描述
    这里写图片描述
    有批注的地方有标志(见红圈中的小图标),点击此标志即可见批注。
    这里写图片描述
    从图中,我们可以清楚地看到代码评审的批注。
    这里写图片描述
    使用Code Review(代码评审)插件能帮助我们有效追踪代码评审中发现的问题,避免已发现的问题在无意中进入产品。

    3、Checklists plugin Light version) 插件
    Checklists插件,是另一个提升项目管理能力的有效工具,它是由RedmineUP公司开发并提供支持。我们在这使用的是它的免费版本(Light version)。

  • 安装和配置:
    Checklists插件采用标准方式安装,安装完成后需做简单配置。
    这里写图片描述
    在配置中,我们勾选了阻止关闭问题,目的是在保证要做的事已经都已经过检查,避免一些低级常犯的错误。

  • Checklists的使用:
    完成安装后,Checklists就成为问题的一部分,建立/关闭/删除都是在不同的问题页面完成。
    这里写图片描述
    添加Checklists内容:键入内容(如:检查设计逻辑图),然后点击右边的绿色加号图标。
    已有的检查项列在输入框的上面。检查项右面的垃圾桶下图标是用于删除检查项;左边的小方框是用于勾选已完成的检查项。
    这里写图片描述
    因为我们配置了组织关闭问题,当试图关闭有核查任务没完成的问题时,会出现错误。
    这里写图片描述
    核查任务全部勾选后,就可以关闭任务了。这个插件能有效地减少人为疏忽错误。

    4、Clipboard image paste 插件
    这是提高工作效率的辅助工具。Redmine的问题管理系统中,如果需要把抓取的屏幕作为附件要经过几个步骤,分别是抓取、打开外部图片处理程序、存文件,最后将文件作为附件。Clipboard image paste 插件可以在浏览器内完成所有这些工作,极大地方便了用户。该插件插件使用纯客户端的JavaScript,图像可以在浏览器内交互裁剪,产生的结果可以作为问题,维基,新闻,文件,文件,论坛等的附件。该插件仅适用于谷歌浏览器、Mozilla Firefox和Internet Explorer的最后版本(>=11)!

  • 安装和配置:
    Clipboard image paste 插件采用标准方式安装,无需配置可直接使用。

  • 使用(以创建新的问题为例):
    a. 截屏,用户可使用任何截屏工具。
    这里写图片描述
    b. 点击从剪贴板添加图片
    这里写图片描述
    c. Ctrl-V将截屏黏贴到贴图版
    这里写图片描述
    可以根据要求,再次做裁剪,然后点击【确定】
    d. 创建并提交问题
    这里写图片描述
    在此我们可以编辑文件名称并且给照片做注解。
    e. 问题展示
    这里写图片描述

    5、Agile Light version) 插件
    Agile 插件,是一个提升项目管理能力的有效工具,它是由RedmineUP公司开发并提供支持。我们在这使用的是它的免费版本(Light version)。该工具是用于实现敏捷方法的辅助工具,我们用它并不是为了在开发中使用敏捷方法,只是用了它的敏捷看板和问题燃烧图来协助项目的流程管理。我们不对它做更多的介绍,有兴趣的可以去RedminUP网站看看。
    这里写图片描述

从敏捷看板,所有问题的状态一目了然,状态的修改可以用drag-and-drop的方式进行。该插件会自动读取工作流程和用户的授权,并根据用户的权限和工作流程对修改状态做限制。

6、Projects Tree View 插件
Projects Tree View 插件也是一款用于提高工作效率的插件。Redmine默认的项目页面,特别是在项目/子项目较多的情况下,用户体验不佳,进入需要的工作界面也需要多次点击。Projects Tree View 插件提供一个项目排列清晰,基本能一键进入所需界面,有效地改善了用户体验,提高工作效率。您可以从下列URL获取:http://www.redmine.org/plugins/projectstreeview。

  • 安装和配置:
    采用标准安装方法,只有一项配置项:是否在同时显示项目进度。

  • 使用:
    这里写图片描述
    项目页面清晰明了。

Redmine/SVN系统的Redmine配置/功能扩展就介绍到这里。下文的主题基本是SVN相关内容,主要介绍的是如何使用SVN的hook来严格控制向SVN提交代码,让SVN控制没有有效的问题不能提交代码,不是问题的owner不能提交代码等等,让SVN实现一些收费高昂的代码管理系统才有的功能。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注