CODING DevOps 平台在四月里上线了大量新特性,这些更新涉及账号、代码托管、测试管理、制品仓库等多项产品,下文将着重为您介绍其中的亮点功能。
项目协同 | 新增配置方案功能
此功能的适用版本
标准版 ✅ | 高级版 ✅
适用场景
“项目”是串联 CODING DevOps 所有功能的核心单元,不同的团队有着各色差异的协作方案。面对不同职能团队的流转要求:例如产品组对应着“需求调研 → 需求评审 → 产品设计 → 产品开发 → 功能验收”工作流,而美术组对应着“文案设计 → UI 设计 → 原画设计 → 模型设计 → 动画特效设计 → 确认交付”工作流,如何让协作方案模块化,满足不同的职能团队的协作需求?
“配置方案”功能(以下简称方案)能够让已配置好的协作模式得以快速复用,相同的职能团队直接复用团队中的已有方案,省去重复配置的过程;在这一过程中还能够帮助团队管理者统一规范整体的协作流程。
功能简介
配置方案分为全局配置方案与项目配置方案两种类型(下文将简称为全局方案与项目方案),全局方案需在“团队设置中心”中进行创建,定位为团队内经常使用的通用配置方案。项目方案存在于各个项目中,定位更加灵活、响应项目的实际需求而设计的配置方案。
配置方案由协作模式、事项类型、事项属性与工作流四个单位组成,编辑配置方案本质是调整这四个单位,项目管理员可以基于实际协作需求进行调整。
代码仓库 | 新增自定义仓库模板
此功能的适用版本
标准版 ✅ | 高级版 ✅
团队中已有大量的脚手架资源,但是散落在不同的项目中,拉取时总会碰到权限或安全策略上的限制。如何优雅地在站在巨人的肩膀上继续开发呢?使用仓库模板功能让特定仓库作为团队内的公开资源,团队成员无需频繁加入不同的项目,代码仓库在安全层面上仅允许团队内成员拉取。
项目管理员可以将需要被频繁调用的“脚手架”代码仓库直接设为模板仓库,模板的权限默认为团队全体可见,其他开发成员在创建代码仓库时能够快速复用已有的代码沉淀。
在仓库设置中将仓库勾选设为模板仓库。当其他用户新建仓库时可以选择自定义模板下的仓库并完成创建。
代码仓库 | 开启分支状态检查门禁
此功能的适用版本
标准版 ✅ | 高级版 ✅
持续集成的出现得以让代码发布过程变成“所见即所得”,同时也让代码发布的过程变得更加轻松。每次代码变更在引入新功能新特性的同时,有可能蕴含潜在风险。若能够在代码合并入主干前及时检验代码质量,就能够尽早暴露问题,从而在后续开发中进行规避以减少风险的发生,这将极大优化开发效率。
状态检查门禁指的是在每次创建合并请求时,自动以源分支触发持续集成任务,先行验证新增的代码是否能够被正常发布。此前分支状态检查功能仅适用于保护分支,而此次检查功能扩展至所有分支可用。
通过检查后才能够被允许合并至目标分支,尽早暴露问题后快速解决,将风险控制在代码上线阶段。
代码仓库 | 自定义合并提交信息模板
此功能的适用版本
标准版 ✅ | 高级版 ✅
当评审者同意合并请求后,在主干分支都会留下由 Git 自动生成的确认合并信息。但这条信息仅仅只是重复记录 xx 分支已合并到 xx 分支,没有记录到本次合并请求的提交作者与审核者这些更加关键的信息。
如果想让这条记录承载更多关键信息,那么可以前往“代码仓库设置” → “合并请求”中修改合并信息模板,自动添加提交作者、评审者、时间与日期等记录,加强信息的溯源能力。
其他更新内容一览
代码托管
- 新增公钥名称自动补全机制。在仓库设置中导入部署公钥时,自动获取 SSH 公钥后缀的邮箱地址作为公钥名。
- 调整“版本与标签”页。基于用户习惯进行页面优化,拆分原”版本与标签“功能页为版本页、标签页,方便用户更加直观的使用代码标签功能。
- 新增只读分支与批量删除分支功能。只读分支仅允许被拉取,团队中的任何人无法写入或提交合并请求至只读分支中。在分支页中支持批量选择分支后进行删除。
- 新增手动仓库清理功能。随着开发项目的演进,仓库中可能存储大量 Git 缓存文件。项目管理员可以前往仓库设置页进行手动清理,优化仓库占用空间。
- 新增单次仓库上传文件大小限制。为提升代码的拉取速度,增强开发效率,团队管理员可以在团队设置中心限制大文件上传至代码仓库中,大文件改用 Git LFS 方式上传。
- 新增分支模型功能。不同的团队对应着不同的开发习惯,这些开发习惯通常对应着不同的分支工作流设计(Git Flow)。“分支模型”功能可以让用户在创建仓库的同时,按照现有团队工作流快速生成多个分支。
持续集成
新增自动化测试插件。在持续集成中使用插件关联测试管理页中的自动化用例库,还可以设置当自动化测试运行失败时,直接中断持续集成任务,确保测试左移至代码提交环节,做到发布即测试。
知识管理
支持导入 Markdown 格式文件,导入后自动作为知识空间中的文章页面。
项目协同
导入任务及需求等事项时支持导入层级关系,例如导入需求下的子需求、子任务等事项。