App上架:Subversion
在研发场景中,编码毫无疑问是其中重要的一环,研发工程师们通过代码将需求从文字转换成可以工作的软件,然而因为工具的限制,代码和需求往往独立管理的。要想真正的打通研发的全场景,那么知道一个需求关联着哪些代码提交记录,将是非常必要的。
今天要给大家介绍的应用市场的新成员Subversion,是专门用于将svn上的代码提交记录关联到PingCode的工作项中的。它的工作效果如图所示:
下面,我们将介绍它的配置过程:
1. 在服务器中安装nodejs
环境
推荐版本10.0+:官网下载地址
2. 在服务器下载并安装
mkdir -p /opt/pingcode
cd /opt/pingcode
git clone git@github.com:sunjingyun/svn-commit-sync-to-pingcode.git
cd svn-commit-sync-to-pingcode
npm install
3. 配置ClientId和ClientSecret
1)进入PingCode的管理后台
> 应用
> 凭据管理
。
2)新建应用,输入应用名称
,将DevOps:开发
的权限设置为读写
,点击确定。
3)在应用列表中找到创建的应用,分别复制ClientID
和Secret
。
4)回到服务器中。
vim /opt/pingcode/svn-commit-sync-to-pingcode/package.json
更新下列配置项中的client_id
和client_secret
:
"config": {
"base_url": "https://open.pingcode.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/pingcode/svn-commit-sync-to-pingcode -r $2 -p $(cd "$(dirname "$0")" && pwd)
5. 验证
向代码仓库提交代码,commit message中提及PingCode的工作项即可,例如:
svn commit -m 'feat(scope): #CD-7 some comment'
这里的CD-7
是PingCode工作项(史诗、特性、用户故事、任务、缺陷)的编号,代码提交后,我们就可以在工作项CD-7
的开发面板中看到代码提交记录。
这个插件是基于PingCode REST API开发的,代码也是开源的,如果有不满足实际场景的地方,可以改动相关的代码进行调整。