python-gitlab 统计代码行数
需求:根据时间段,统计各个研发提交的代码行
实现逻辑:调用原生gitlab接口太复杂,引用python-gitlab 获取commit详情,然后进行统计
===============================================
简单代码
import gitlab
client = gitlab.Gitlab('http://xxxxxx:8080/', private_token='ziKtexMN5Zfj37qRGLsW', timeout=5, api_version='')
client.auth()
project = client.projects.list()
for pro in project:
print(pro)
commits = pro.commits.list(since='2019-08-11T00:00:00Z', ref_name='dev')
for c in commits:
print(pro.commits.get(c.id))
返回结果:

python-gitlab api 文档:https://python-gitlab.readthedocs.io/en/stable/gl_objects/commits.html
------------------2019.10.08 补充 踩坑---------------------
一、commit数量不对
如果不带all=True,每个项目最多返回20个commit;没注意看文档,踩了坑;
如果想返回某个时间段的全部commit,应该如是写:
commits = pro.commits.list(all=True, query_parameters={'since': '2019-09-01T00:00:00Z', 'ref_name': 'dev'})
二、merge导致重复统计
merge会自动生成一条commit,导致重复统计。接口好像没有参数可以过滤,此处通过message来排除
for com in commits:
c = pro.commits.get(com.id)
if ('Merge' in c.message) and ('into dev' in c.message):
print('跳过merge产生的commit:{},{}'.format(c.short_id, c.message))
else:
# print('正常commit:{},{}'.format(c.short_id, c.message))
-------------- 2019年12月2日 踩坑--------------------
三、test 分支 commit数量明显少很多
原因:增量拉取,只拉取昨天的commits;如果是merge N天的commits,那就会漏掉N-1天的数据
解决办法:增量拉取前60天的commits
python-gitlab 统计代码行数的更多相关文章
- python统计代码行数
以前写了一个java的统计代码行数的小程序,最近在看python,于是就参考前辈的代码,写了一个统计文件夹下面各种程序的代码的小程序,这里贴出来供大家参考 参考链接: https://gist.git ...
- Eclipse统计代码行数
开发过程中,经常需要统计代码行数,这时可以通过Eclipse的Search功能来实现. 步骤: 1.在Package Explorer中选中需要统计的包: 2.单击菜单Search-->File ...
- 在Flash Builder或者Eclipse统计代码行数的方法
在Flash Builder或者Eclipse统计代码行数的方法如下图菜单栏--搜索--搜索文件
- 【Linux】常用命令-统计代码行数
公司人员流动大,经常有新的维护任务,交接时喜欢看看新来的模块的代码量,那么问题来了, 如何统计代码行数? 1,最先想到的肯定是 wc. wc -l *.h 将查看[当前目录]下头文件的代码行数,输出结 ...
- c#统计代码行数
小编,已经快学了两年编程了.昨天突发奇想,想统计下这些年到底写过多少行代码,于是做了一个这个小程序来统计代码行数.老规矩,先上图. 比较惭愧,写了两年只有2万多行.那我们还是进入下一项吧. 界面搭建我 ...
- 【未解决】对于使用Windows的IDEA进行编译的文件,但无法在Linux系统中统计代码行数的疑问
在我学习使用Windows的IDEA的过程中,将代码文件转移到Linux虚拟机当中,但无法在Linux系统中统计代码行数. 注意:拷贝进虚拟机的文件均能编译运行. 具体过程如下: root@yogil ...
- Visual Studio 统计代码行数
介绍一种简单的统计代码行数的小技巧, 使用正则表达式,用VS强大的查找功能 b[^:b#/]+.$ 最后结果:
- 用django统计代码行数+注释行数
实现统计代码行数: 1.首先在url.py中配置 from django.conf.urls import url from django.contrib import admin from app0 ...
- cloc 统计代码行数工具
cloc 统计代码行数工具 官网地址:http://cloc.sourceforge.net/ 下载完成后 会生成一个.exe文件 需要修改文件名为 cloc.exe 然后把这个文件拷贝到需要统计的根 ...
- Linux下统计代码行数
使用wc统计代码行数 最近写了一些代码,想统计一下代码的行数,在eclipse中好像没这功能,网上搜了一下才发现原来Linux有一个统计文件行数的命令wc.使用wc可以打印出每个文件和总文件的行数.字 ...
随机推荐
- Java并发指南11:解读 Java 阻塞队列 BlockingQueue
解读 Java 并发队列 BlockingQueue 转自:https://javadoop.com/post/java-concurrent-queue 最近得空,想写篇文章好好说说 java 线程 ...
- java安全学习-环境准备/基础知识
补java的坑,开始! 1.Intellij一些快捷键 intell常用快捷键: ctrl+n 快速查找定位类的位置 ctrl+q 快速查看某个类的文档信息 shift + F6 快速类.变量重命名 ...
- Flutter移动电商实战 --(34)列表页_小BUG的修复
当高粱酒的子类没有数据返回的时候就会报错. 解决接口空数据报错的问题 没有数据的时候,给用户一个友好的提示, 我们没有数据的时候还要告诉用户,提示一下他没有数据,在我们的右侧列表的build方法内去判 ...
- jQuery源码解读----part 2
分离构造器 通过new操作符构建一个对象,一般经过四步: A.创建一个新对象 B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象) C.执行构造函数中的代码 D.返回这个新对象 最后一点 ...
- LC 898. Bitwise ORs of Subarrays
We have an array A of non-negative integers. For every (contiguous) subarray B = [A[i], A[i+1], ..., ...
- Ubuntu16.04安装vmware pro 15激活码
VMware Workstation Pro 15 激活许可证UY758-0RXEQ-M81WP-8ZM7Z-Y3HDAVF750-4MX5Q-488DQ-9WZE9-ZY2D6UU54R-FVD91 ...
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_15-webpack研究-webpack-dev-server-程序调试
webpack把我们的js文件都打包了.所以不能用chrome的调试工具. 打包生成的js文件比较乱无法跟踪. 配置好了以后就可以让浏览器查看到打包后的源代码 在源代码这里加一个debuuger 这里 ...
- linux简单命令6---挂载
- [dart学习]第六篇:流程控制语句
经过前面的基础知识了解学习,我们今天可以进入语句模块啦. dart主要有以下流程控制语句: if-else for循环 while和do-while循环 break和continue switch-c ...
- ME21N屏幕格式配置路径
物料管理->采购->采购订单->定义屏幕层的屏幕格式