极狐GitLab x 每刻|将代码管理做到极致,让200万用户的报销、审计更省心


杭州每刻科技有限公司成立于 2015 年,是一家领先的智能云财务产品和解决方案服务商。迄今为止,已服务超过 3000 家企业及行政事业单位,其中上市公司超过 350 家,用户规模超过 200 万,覆盖全球 180 多个国家及地区。

作为 toB SaaS 企业,每刻将快速迭代、动态演进、灵活安全作为保障客户体验及产品先进性的重要策略,其高效增长的背后,除了敏捷型研发团队,还有高质量代码资产这个撬起强大力量的杠杆。

用每刻 CTO 孙勤的话来说:

 

“在极狐GitLab 代码提交推送规则、分支协作和保护策略等功能支撑下,每刻将研发标准和规范沉淀至工具侧,实现稳定可靠的代码资产管理,解放人才的生产力和创造力。”

 

1

 

01 担心“迁”一发动全身?

2022 年,每刻从国内某知名源代码管理工具丝滑迁移至极狐GitLab。

本次迁移由极狐GitLab CS 团队支持,在制定迁移计划后,利用极狐GitLab 专门研发的迁移工具,分批次进行,不需要其研发团队投入额外时间做任何变更。

在每刻最为关心的 CI 工具集成上,极狐GitLab 凭借强大的 API ,通过简单配置即完成与原 CI 工具的集成,并确保了迁移前后数据完整性和业务功能一致性。 

如今,极狐GitLab 支持每刻研发中心 150 人的开发作业,管理并保护着每刻 700 多万行代码,近 200 个项目, 2 周一次产品版本迭代、日常高频小功能发布。通过极狐GitLab 源代码管理功能建立研发共识、规范协作流程,既让研发人员降低认知负担,专注于业务开发,也成为持续高质量交付产品的保障。

 

02 1个项目=N个仓库×N次配置?

 

“一天啥事没干,都耗在 gitignore 上了……”这句话估计说出了被文件审核逼疯的管理员的心声。

文件审核确实是研发日常工作中的高频场景。试想,没有建立推送规则的团队,就需要通过人工审核是否存在 “没有必要上传的文件”,它们在 Git 仓库当中占据大量空间,并且不论项目经过多少次迭代,都会一直停留在 Git 仓库当中,占据磁盘资源,比如 Java 编译出来的 class 文件、中间结果、配置文件、二进制文件等;或者需要熟悉 Git 语法或规则的成员,为每一个仓库都专门配置 .gitignore 文件,1 个项目= N 个仓库 x N 次配置,花费大量时间,也只能拦截已知的文件,也许有人提交 Word 或 MP4 视频……防不胜防。

为帮助研发团队减少人工操作成本,规范提交,极狐GitLab 推出推送规则功能,用户可灵活配置符合团队需求的硬性限制,包括提交信息的格式、提交邮箱以及单文件大小的限制等。

每刻应用极狐GitLab 推送规则,通过 “禁止的文件名” 推送限制功能,防止无效文件(诸如编译中间产物、本地调试所用的 jks 文件、最终制品等)被上传到远端仓库,占据大量存储空间,导致仓库爆仓,同时提升了仓库可维护性。并且,极狐GitLab 推送规则可以基于单个项目、单个 Group 来设置,如果在 Group 进行设置,可以做到一次配置(Group 配置),多仓库生效。

另一个对仓库友好的限制,是 “最大文件大小”,等于或超过此文件大小的添加或更新文件的推送将被拒绝,以确保仓库合理存储。

此外,极狐GitLab 推送规则功能,还可以帮助用户避免将诸如凭证文件和 SSH 私钥之类的 Secret 提交给版本控制系统,保障信息安全。

能交给工具解决的问题,就让工具来解决吧。如此下来,每刻研发团队避免了重复劳动,能够专注于更有价值的研发创新。

 

03 苦命名久矣?

开发人员苦命名久矣。

团队协作项目中,多位开发人员需要经常提交代码去修复 bug 或者实现新功能,而此后往往有一次又一次的优化、变更或 bug。“彰显个性” 的命名,日渐庞大的分支,会让团队直面灵魂拷问:

这是新功能分支,还是 bug 修复分支?傻傻分不清,需要阅读代码才能解答。
查找靠猜关键字,好不容易找到了,发现又双叒叕重名了!
还有代码被覆盖、误删除等 “代码刺客” 事件……

并且,在追溯问题时,面对盘根错节、成千上万条分支,往往令人心力交瘁。

而在每刻这里,完全是另外一番风景。

尽管协作人数众多,产品迭代频繁,分支数量增长迅速,但在极狐GitLab 分支管理功能下,研发团队开发行为一致,研发数据格式一致,因为极狐GitLab 分支管理树立了清晰有效的 “规矩”

极狐GitLab 分支管理要求所有分支名称必须与此正则表达式匹配才能被推送。如果此字段为空,则允许任何分支名称;
创建需求/缺陷修复/紧急补丁应使用「feature|bugfix|hotfix」开头,可以一键创建符合规范的分支,开发人员再也不用为分支命名发愁;
通过需求分支和合并请求草稿功能,可方便地为需求人员创建需求分支,暂存代码修改;
中文需求(Issue)可自动转化为拼音分支名,例如:feature:SMS登录 ➡️  1-feature-sms-deng-lu。

 

04 开放与安全可兼得?

“财务服务于业务,财务数据集源于各个业务系统,要求财务产品能够灵活集成本地或者云上业务系统,才能更好地实现业财税数字一体化。” 孙勤表示。

极狐GitLab 开源开放,强大的 API ,兼容广泛产品生态,轻松实现系统之间的相互集成,灵活打造自动化场景,能够大幅提升企业集成效率,降低研发成本。

“同时,财务类产品涉及企业经营数据,尤其关注数据安全性和保密性。” 孙勤补充说道。

极狐GitLab 在研发安全和产品安全两方面都实现了数据安全保障:

一方面,极狐GitLab DevSecOps 功能与源代码托管、CI/CD 无缝 “集成”,当有代码变更的时候,嵌入到 CI/CD 中的安全扫描功能会自动进行扫描,并最终展示到 Merge Request 中,方便研发看到当前提交代码的状态,包括构建结果、测试结果以及安全扫描等。一切操作都在同一个平台上进行,真正实现了安全测试手段的 “左移” 与安全数据的 “左移”。

另一方面,极狐GitLab SaaS 自身承担高可靠容灾搭建,用户无感知即可得到稳定系统;7 x 24 h 支持服务,确保及时解决问题,为每刻尤为关注的数据安全再增一份安心。