研发管理者如何7步规范管理企业代码资产?

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
云效 DevOps 制品仓库,基础版人数 不受限
云效 DevOps 代码管理,基础版人数 不受限
简介: 本教程向您展示如何在云效上设置代码仓库模板,如何设置研发协作规范,如何启动代码检测,以及如何设置保护分支与合并卡点、如何实现研发工作与需求的自动化消息通知、如何度量代码数据?

推荐阅读对象:企业技术管理者、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 数值;
  • 代码提交时段分布:所选时间区间内,每日各时段的代码提交次数分布,颜色越深表示在该区间的提交次数越多;

上一篇:快速入门下一篇:管理者、新团队成员如何在云效上初始化工作流

相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
相关文章
No module named ‘PyQt5.QtWebEngineWidgets‘
No module named ‘PyQt5.QtWebEngineWidgets‘
676 0
|
Rust 算法 安全
【密码学】一文读懂HMAC
本文将来聊一聊基于哈希函数的消息认证码,在此之前,先来科普一下什么是 「消息认证码」 (MAC), 先来看一个简单的栗子
2284 0
【密码学】一文读懂HMAC
|
新零售 测试技术 持续交付
阿里如何定义团队的研发效能?
作者:何勉,阿里巴巴研发效能部资深技术专家 相关阅读:都996了,研发效能还是提不起来,关键在这里 因为身处研发效能部,我接触了公司很多产品技术团队。他们几乎都把研发效能提升列为了本财年的重要目标,大部分还为此成立专项。
19139 2
阿里如何定义团队的研发效能?
|
11月前
|
机器学习/深度学习 数据采集 DataWorks
数据分析经典案例重现:使用DataWorks Notebook 实现Kaggle竞赛之房价预测,成为数据分析大神!
Python是目前当之无愧的数据分析第一语言,大量的数据科学家使用Python来完成各种各样的数据科学任务。本文以Kaggle竞赛中的房价预测为例,结合DataWorks Notebook,完成数据加载、数据探索、数据可视化、数据清洗、特征分析、特征处理、机器学习、回归预测等步骤,主要Python工具是Pandas和SKLearn。本文中仅仅使用了线性回归这一最基本的机器学习模型,读者可以自行尝试其他更加复杂模型,比如随机森林、支持向量机、XGBoost等。
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能革命:提升测试效率与质量的新篇章
随着人工智能技术的不断成熟,其在软件测试领域的应用正逐渐改变传统测试方式。本文将探讨AI在软件测试中的应用现状、优势以及面临的挑战,并通过具体案例分析展示AI如何提高测试效率和质量。最后,我们将讨论未来AI在软件测试中的发展趋势及其对人类测试工程师角色的影响。
1081 4
|
11月前
|
人工智能 算法 自动驾驶
新视角设计下一代时序基础模型,Salesforce推出Moirai-MoE
**Moirai-MoE:时间序列预测的新突破** Salesforce Research团队提出了Moirai-MoE模型,通过稀疏混合专家(MoE)技术,解决了传统时间序列预测方法中存在的频率不可靠和非平稳性问题。该模型在39个数据集上的实验结果表明,其性能优于现有基础模型,具有更高的创新性和泛化能力。论文地址:https://arxiv.org/abs/2410.10469
376 4
|
敏捷开发 小程序 持续交付
【规范】Git分支管理,看看我司是咋整的
本文介绍了Git分支管理规范的重要性及其在企业中的应用。通过规范化的分支管理,可加速团队协作、确保代码质量、维护主分支稳定,并支持敏捷开发。文中详细描述了主分支(如master、develop)和辅助分支(如feature、hotfix)的作用,并提供了实际开发流程示例,包括开发前、开发中、提测、预生产和部署上线等阶段的操作方法。旨在帮助团队提高效率和代码质量。
3734 0
【规范】Git分支管理,看看我司是咋整的
|
机器学习/深度学习 测试技术 PyTorch
轻量级网络——MobileNetV3
轻量级网络——MobileNetV3
1297 0
轻量级网络——MobileNetV3
|
存储 算法 网络虚拟化
交换机的工作原理(含实例,华为ensp操作)
交换机的工作原理(含实例,华为ensp操作)
490 0
|
前端开发 JavaScript Shell
手写 git hooks 脚本(pre-commit、commit-msg)
手写 git hooks 脚本(pre-commit、commit-msg)
1270 0