推荐阅读对象:企业技术管理者、CTO、开发者
本教程向您展示如何在云效上设置代码仓库模板,如何设置研发协作规范,如何启动代码检测,以及如何设置保护分支与合并卡点、如何实现研发工作与需求的自动化消息通知、如何度量代码数据?
以下为学习内容大纲:
1. 导入仓库
2.体验代码库模板
3.启用代码检测
4.设置保护分支与合并卡点
5.设置仓库规范
6.创建合并请求
7.设置研发工作项自动化更新
8.查看代码度量数据
1. 导入仓库
云效提供多种代码资产导入的方案:
本文以网页端导入三方代码库为例进行体验。首先,导入一个公开的示例代码库,案例源代码库地址为:https://atomgit.com/yunxiao/detect-repo/tree/master。访问该示例库地址,选择 HTTPS 克隆,复制克隆地址:
访问云效 Codeup ,点击新建代码库-导入代码库,选择URL导入,在源代码库地址栏中填入刚才复制的克隆地址。由于是公开库无须鉴权,仅填写URL克隆地址即可,不需要填写账号/Token等信息。
2. 体验代码库模板
ⅰ. 设置模板库
导入完成后,进入该库,打开仓库设置,开启「设为模板库」:
该库即成为当前企业下的模板库,对该库有读权限的人可使用该模板库新建仓库。
ⅱ. 使用模板库
点击添加库,打开新建弹窗,选择「模板新建」-「自定义模板」,即可使用上一步设置的模板库作为新建的模板。可以选择是否导入模板库的全部分支,如果不勾选,则仅导入默认分支:
点击确定后完成新库创建。
3. 启用代码检测
ⅰ. 准备检测方案
从首页菜单进入「代码检测」-「检测方案」,选择「Java开发规约检测」,如没有已有方案,可新建一个方案,然后选择「Java开发规约检测」。云效也支持其他语言的检测规则包,实际使用时可按需选择。
点击Java开发规约检测的卡片可查看具体检测规则内容:
ⅱ. 启动检测任务
进入上一节创建的代码库中,点击左侧菜单的「代码检测」:
选择期望的检测方案,勾选触发方式,包括「提交触发」和「合并请求触发」,然后勾选同意协议,最后点击新建并执行:
此时将针对默认分支进行一次指定方案下的代码扫描。
检测完成后可以查看检测结果:
点击问题列表可查看问题详情:
4. 设置保护分支与合并卡点
进入设置-「分支设置」,点击「新建保护分支规则」:
设置master为保护分支,勾选不允许任何人直接推送保护分支,且只有管理者可以合并评审:
开启「要求合并前通过代码评审」,将代码评审作为必须通过的卡点;开启「要求合并前通过自动化状态检查」,勾选上一步创建的代码检测任务作为必须运行通过的卡点:
卡点信息配置完成。
5. 设置仓库规范
仓库规范属于高级版功能,新用户可免费试用1个月,如遇以下页面点击免费试用即可使用。
进入设置-「仓库规范」,点击「启用仓库规范」:
建议选择「系统方案」进行体验,也可以自定义方案。以下用「功能分支规范」为例,规则如下:
确定后可见当前系统方案已生效,包括分支命名规范和合并方向规范:
- 分支命名规范限制了分支创建时的命名要求,避免不合规的分支被创建、仓库中分支泛滥的问题。
- 合并方向规范限制了源分支和目标分支的选择,避免不合企业要求的合并被创建。
针对历史中命名不合规的分支,将在分支列表中进行提示:
6. 创建合并请求
基于该库的原 master 分支创建一个命名合规的 feature/A 分支:
切换到新建的分支 feature/A,尝试新建文件:
输入内容后进行提交:
切换至「合并请求」菜单,点击「新建合并请求」,选择 feature/A 合并至 master,该分支名和合并方向都是符合仓库规范的,因此可以完成创建:
可见合并请求中有之前设置的保护分支卡点,包括评审人数、评论数、自动化检查的卡点:
需要依次解决这些卡点才能够完成合并操作,请自行发挥去解决他们吧!
7. 代码相关的自动化规则设置
开发同学一定有共鸣的事情就是:怎么总是忘记更新任务状态啊!
- 代码已经在开发中了,却忘了从待开发改成开发中
- 代码已经发布上线了,却忘了更改状态为已发布
场景一:当任务下面关联代码提交时,系统自动变更任务状态为开发中。
第一步:分支关联任务ID
开发人员在特性分支上提交代码时,可以关联任务,直接去关联项目中已有任务,或者通过#ID的方式进行关联。
第二步:查看关联情况
提交之后,可以在项目中打开任务的“其他”找到“代码”关联项中看到此次的代码提交:
第三步:设置自动化规则
进入到项目空间,点击左下角“设置”按钮,找到“自动化规则”-“新建自动化规则”
规则内容:当任务关联代码提交时,该任务可以自动由「待开发」状态流转为「开发中」状态:
场景二:当任务下面关联合并请求时,系统自动变更任务状态为待评审。
第一步:创建分支合并关联任务
创建分支合并关联开发人员开发完成特性分支后,会将特性分支合入测试分支上,需要进行合并评审。创建分支合并时,可以直接去关联项目中已有任务。
第二步:查看关联情况提交之后,可以在项目中该任务的其他-代码关联项中看到此次的代码合并请求:
提交之后,可以在项目中该任务的其他-代码关联项中看到此次的代码合并请求:
第三步:设置自动化规则
进入到项目空间,点击左下角“设置”按钮,找到“自动化规则”-“新建自动化规则”
规则内容:当任务关联合并请求时,该任务可以自动由「开发中」状态流转为「待评审」状态,并发送站内信信&钉钉消息等给负责人
规则内容:当任务关联合并请求为已通过时,该任务可以自动由「待评审」状态流转为「已评审」状态
规则内容:当任务关联合并请求为已合并时,该特性分支已合并测试分支后,交由测试进行集成测试,该任务可以自动由「已评审」状态流转为「待测试」状态;
当任务关联合并请求为已合并时,系统自动变更任务状态为待测试。同时将该任务负责人变更为测试人员,并发送钉钉消息进行提醒。
8. 代码度量
云效效能度量Insight提供了代码资产度量,打开效能度量Insight,找到“常用报表”,选择“代码度量”。
- 代码库概览:当前时刻已选代码库的代码行总量和安全问题总数;
- 代码变更概览:所选时间段内,所选数据源范围内(如代码库或分支等)的新增/删除代码行数、代码提交次数和各提交平均包含的代码行数;
- 代码变更按人员排序:所选时间段内,各成员提交代码行数的 Top5 数值;
- 代码提交提交人排序:所选时间段内,各成员提交代码次数的 Top5 数值;
- 代码提交时段分布:所选时间区间内,每日各时段的代码提交次数分布,颜色越深表示在该区间的提交次数越多;