zoukankan      html  css  js  c++  java
  • python 统计gitlab代码量

    引言

    需求是公司大领导想要了解每周研发提交的代码量。因为研发人员比较多,想着用 python 做个自动化,定时统计代码量并发送邮件给领导。

    统计gitlab代码

    首先安装第三方库python-gitlab,里面封装了很多操作 gitlab api 的方法,我们只需要调用这些方法即可。

    1、命令安装

    pip3 install python-gitlab

     

    2、获取 gitlab 管理员账号的私有令牌,具体在哪不多说了,百度一下或者找 gitlab 的维护人员。

    3、登录 gitlab 及一些常用方法

    import gitlab
    
    # gitlab 代码仓库地址
    url_gitlab = 'http://xxxx.com.cn/'
    # 上面获取的 gitlab 私有令牌
    private_token= 'saidfhdfhsud'
    
    # 获取 gitlab 可操作对象
    gl = gitlab.Gitlab(self.url_gitlab,private_token=private_token,api_version='4')
    
    # 获取第一页的 project
    projects = gl.projects.list()
    
    # 获取所有的 project
    projects = gl.projects.list(all=True)
    
    # 获取所有 project 的 name 和 id
    for i in gl.projects.list(all=True, as_list=False):
        name = i.name
        id = i.id
    
    # 获取第一页 project 的 name 和 id
    for i in gl.projects.list(page=1):
        name = i.name
        id = i.id
    
    # 根据 id 查找项目
    project = gl.projects.get(id)
    
    # 获取该项目下所有分支
    branches = project.branches.list()    
    
    # 获取指定分支的属性
    branch = project.branches.get('master')
    
    # 获取改项目下所有commits
    commits = project.commits.list()   
    
    # 获取指定commit的info
    commit = project.commits.get('s9dfsa')

    4、统计增量代码

    start_time = '2021-02-20'
    end_time = '2021-02-26'
    # 先把所有项目查出来,all=True 一定要加上。不然查出来的只有第一页项目
    projects = gl.projects.list(all = True)
    # 遍历每一个项目
    for project in projects:
        # 把每个项目下面的所有分支查出来
        branches = project.branches.list()
        # 然后再遍历每一个分支
        for branch in branches:
            # 获取一段时间内,指定分支的 commits
            commits = project.commits.list(all= True,query_parameters={'since': start_time,'until':end_time, 'ref_name': branch.name})
            # 然后再遍历每个提交记录,查询每个提交记录的人和量
            for commit in commits:
                com = project.commits.get(commit.id)
                # 提交commit开发者
                committer_name = com.committer_name
                # 提交代码 增量、删除、总量
                stats = com.stats
                # 增量代码
                additions = stats['additions']

    stats是一个字典,里面有三组key-value。additions 是新增代码,deletions 是删除代码,total 是总量代码(新增+删除)。到这里就可以统计增量、删除 或者 总量代码了,提供一种思路,用 pandas 的 dataframe 数据结构统计比较方便 。

    更多使用方法参考官方文档:https://python-gitlab.readthedocs.io/en/stable/index.html

  • 相关阅读:
    PHP+MySQL实现海量数据导入导出的总结:is_numbric函数的坑
    【PHP开发规范】继承与扩展:PSR-2 编码风格规范
    【PHP开发规范】老生常谈的编码开发规范你懂多少?
    【PHP面试题】通俗易懂的两个面试必问的排序算法讲解:冒泡排序和快速排序
    php数组函数array_column:不用循环就能提取多维数组内容
    php使用urlencode对中文编码而引出的问题:urlencode和rawurlencode的区别
    table-tree vs stock vs whiteboard
    PDF解析
    山灵up4
    Devops之CI/CD
  • 原文地址:https://www.cnblogs.com/shenh/p/14518353.html
Copyright © 2011-2022 走看看