功能日记

App上架:Subversion


在研发场景中,编码毫无疑问是其中重要的一环,研发工程师们通过代码将需求从文字转换成可以工作的软件,然而因为工具的限制,代码和需求往往独立管理的。要想真正的打通研发的全场景,那么知道一个需求关联着哪些代码提交记录,将是非常必要的。
今天要给大家介绍的应用市场的新成员Subversion,是专门用于将svn上的代码提交记录关联到Worktile的工作项中的。它的工作效果如图所示:

commit关联Worktile工作项.png

下面,我们将介绍它的配置过程:

1. 在服务器中安装nodejs环境

推荐版本10.0+:官网下载地址

2. 在服务器下载并安装

mkdir -p /opt/worktile
cd /opt/worktile
git clone git@github.com:sunjingyun/svn-commit-sync-to-worktile.git
cd svn-commit-sync-to-worktile
npm install

3. 配置ClientId和ClientSecret

1)进入Worktile研发版的企业后台管理 > 应用管理 > 自定义应用
2)新建应用,输入应用名,将DevOps:开发的权限设置为读写,点击确定。
3)在应用列表中找到创建的应用,分别复制ClientIDSecret
4)回到服务器中。

vim /opt/worktile/svn-commit-sync-to-worktile/package.json

更新下列配置项中的client_idclient_secret

"config": {
    "base_url": "https://open.worktile.com",
    "client_id": "your-client-id",
    "client_secret": "your-client-secret",
    "product_name": "Subversion"
}

4. 配置ClientId和ClientSecret

我们假如svn某个repository的路径是/opt/svn/my-repo

cd /opt/svn/my-repo/hooks
sudo mv post-commit.tmpl post-commit
sudo vim post-commit

清空文件,拷贝下列命令到文件中(如果之前配置过,只需要拷贝最后一行到文件中即可)

#!/bin/sh

REPOS="$1"
REV="$2"
TXN_NAME="$3"

node /opt/worktile/svn-commit-sync-to-worktile -r $2 -p $(cd "$(dirname "$0")" && pwd)

5. 验证

向代码仓库提交代码,commit message中提及Worktile的工作项即可,例如:

svn commit -m 'feat(scope): #CD-7 some comment'

这里的CD-7是Worktile工作项(史诗、特性、用户故事、任务、缺陷)的编号,代码提交后,我们就可以在工作项CD-7的开发面板中看到代码提交记录。

这个插件是基于Worktile REST API开发的,代码也是开源的,如果有不满足实际场景的地方,可以改动相关的代码进行调整。