一种基于Gitlab的代码开发量精确统计方法与流程

文档序号:30183877发布日期:2022-05-26 16:32阅读:1291来源:国知局
一种基于Gitlab的代码开发量精确统计方法与流程
一种基于gitlab的代码开发量精确统计方法
技术领域
1.本发明涉及代码开发量统计、软件度量领域,特别涉及一种基于gitlab的代码开发量精确统计方法。


背景技术:

2.gitlab是当前使用最广泛的开源代码管理工具,代码开发量统计是软件度量领域中重要的组成部分,统计团队或个人代码开发量是提升软件开发效率的有效方法。
3.当前代码开发量统计存在以下问题:
4.1)gitlab用户信息没有规范,与公司人员系统信息对应不上,代码开发量统计无法精确到个人或团队;
5.2)相同功能的代码重复多次提交,存在人为造假的问题;
6.3)目前普遍以代码行数为维度来统计代码开发量,但不同语言的风格不一致(同样的功能,不同的行数),不能较好的体现真实的代码开发量;
7.4)代码中存在注释、空行等无效代码,真实代码开发量统计不准确。
8.本专利针对这一场景,创新地提出了一种基于gitlab的代码开发量精确统计方法,有效的解决了以上几个问题,提升了代码开发量统计的精确性。


技术实现要素:

9.本发明要解决的技术问题是克服现有技术的缺陷,提供一种基于gitlab的代码开发量精确统计方法。
10.本发明提供了如下的技术方案:
11.本发明提供一种基于gitlab的代码开发量精确统计方法,包括以下步骤:
12.s1、获取公司人力系统的员工信息,包括用户名、邮箱等;
13.s2、在代码提交阶段对gitlab用户信息进行规范性校验:
14.1).判断gitlab用户信息与人力系统的员工信息是否匹配;
15.2).若校验不通过,则拒绝代码提交,并给出整改方式(正确的用户名和邮箱);
16.3).若校验通过,则允许提交代码至代码管理工具;
17.s3、通过gitlab接口的方式获取代码提交信息,包括代码提交人信息、代码内容和行数;
18.s4、对所有文件的代码行内容进行重复性判断:
19.1).将所有代码文件的代码行内容作为一个集合;
20.2).依次判断每个代码行内容与其他代码行内容是否重复;
21.3).对重复度较高的代码文件进行重构,来提升代码健壮性;
22.s5、对所有文件的代码行内容进行无效性判断:
23.1).根据不同的代码类型设置不同的无效代码忽略规则,如代码注释、空行、包引用、打印语句等;
24.2).依次判断每个代码行内容是否为无效代码;
25.s6、根据员工信息,按团队或个人,统计代码开发量:
26.1).忽略被标记为无效代码的代码行;
27.2).若统计团队代码开发量,则团队所有的重复代码,仅计算一次;若统计个人代码开发量,则个人所有的重复代码,仅计算一次;
28.3).从代码行数和代码字节数两个维度,统计代码开发量。
29.与现有技术相比,本发明的有益效果如下:
30.1.在代码提交阶段将gitlab用户信息和公司人力系统的员工信息进行匹配校验,拒绝不规范用户提交,不仅实现了代码开发量统计精确到个人或团队,也增强了代码的可追溯性(追溯到具体个人);
31.2.通过对所有代码文件的代码行进行重复性判断,忽略重复的代码行,不仅避免了人为造假行为、提高了代码开发量统计的准确性,也可以对重复度较高的代码进行重构来提升代码的健壮性;
32.3.根据不同代码语言类型设置不同的忽略规则,将包引用、打印语句等也作为无效代码,增强了代码开发量统计的真实性;
33.4.从代码行数和代码字节数两个维度,统计代码开发量,解决了不同语言的风格不一致的问题(同样的功能,不同的行数),增强了代码开发量统计的真实性。
附图说明
34.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
35.图1是本发明的系统模块图;
36.图2是本发明的实施流程图;
37.图3是本发明的获取公司人力系统的员工信息;
38.图4是本发明的对gitlab用户信息进行规范性校验,不通过的情况;
39.图5是本发明的对gitlab用户信息进行规范性校验,通过的情况;
40.图6是本发明的通过gitlab接口的方式获取代码提交信息;
41.图7是本发明的对代码行内容进行重复性判断;
42.图8是本发明的对代码行内容进行无效性判断;
43.图9是本发明的代码开发量统计的真实代码量。
具体实施方式
44.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。其中附图中相同的标号全部指的是相同的部件。
45.实施例1
46.如图1-9,本发明提供如图1所示,本发明提供一种基于gitlab的代码开发量精确统计方法,包括以下流程步骤(如图2所示):
47.s1、获取公司人力系统的员工信息,包括用户名、邮箱等(如图3所示)。
48.s2、在代码提交阶段对gitlab用户信息进行规范性校验:
49.1).判断gitlab用户信息与人力系统的员工信息是否匹配;
50.2).gitlab用户信息(张三,123456@qq.com)与人力系统的员工信息无法匹配,校验不通过,拒绝代码提交,并给出整改命令(git config
‑‑
global user.email,git config
‑‑
global user.name)(如图4所示);
51.3).gitlab用户信息(测试,test123@bestpay.com.cn)校验通过,允许提交代码至代码管理工具(如图5所示)。
52.s3、通过gitlab接口的方式获取代码提交信息,包括代码提交人信息、代码内容和行数(如图6所示)。
53.s4、对所有文件的代码行内容进行重复性判断:
54.1).将所有代码文件的代码行内容作为一个集合;
55.2).依次判断每个代码行内容与其他代码行内容是否重复,其中第17~21行与第25~29行代码内容重复(如图7所示)。
56.3).对重复度较高的函数get_yops_db(第16~21行)和函数get_cicd_db(第24~29行)进行重构,来提升代码健壮性。
57.s5、对所有文件的代码行内容进行无效性判断:
58.1).根据不同的代码类型设置不同的无效代码忽略规则,如代码注释、空行、包引用、打印语句等;
59.2).依次判断每个代码行内容是否为无效代码,其中注释行为第1~3行,空行为第4、10、13、22、30行,包引用行为第5~9行,打印语句行为第20、28行(如图8所示)。
60.s6、根据员工信息(测试,test123@bestpay.com.cn),统计代码开发量:
61.3).忽略被标记为无效代码的代码行,注释行为第1~3行,空行为第4、10、13、22、30行,包引用行为第5~9行,打印语句行为第20、28行;
62.2).重复代码行第17~21行与第25~29行仅计算一次;
63.3).从代码行数维度,真实代码开发量的总行数为11行(第11~12、14~19、21、23/24行)(如图9所示)。
64.从代码字节数维度,将上述11行代码字节数求和,得出真实代码开发量的总字节数为326字节。
65.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1