添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

需求是公司大领导想要了解每周研发提交的代码量。
因为研发人员比较多,
想着用 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)
# 获取该项目下所有分支python源码扣扣qun:540305994
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 数据结构统计比较方便 。

今天的文章就到这里噜~

咱下篇文章再见啦(✿◡‿◡)

**1.需求:** 需求是公司大领导想要了解每月研发提交的代码,虽然本人也认为代码不代表质。可是现实总是如此的无奈,用来衡如此不可取的方法只会导致更加内卷。 **2.解决思路:** Gitstats :仓库代码统计工具之一,可以按git提交人、提交次数、修改文件数、代码行数、注释在时间维度上进行统计,亦可按各文件类型进行简单的统计,非常方便,适合小团队代码统计分析。 当然还有其他优秀仓库代码统计工具,个人觉得不太友好的地方是需
GitLab 中,你可以在项目的 "Settings" 页面中找到 "Repository statistics" 选项。点击 "Repository statistics" 后,你就可以看到项目中代码的行数统计信息了。这些信息是通过执行 git blame 命令来获取的,它会跟踪每行代码的最后一次修改者。 你也可以使用 GitLab 的 API 来获取项目的代码行数统计信息。例如,你可以使用...
git的代码大多数都是根据命令行统计,或者根据第三方插件统计。但是都不满足我的需求,因为我们代码都由gitlab管理,于是想到了通过gitlab暴露出来的接口获取数据。 第一步,生成私钥 登录你的gitlab申请私钥private_token 第二步,获取当前用户可见的所有项目(即使用户不是成员) 接口地址:gitlab的地址/api/v4/projects/?private_token=xxx 返回参数: "id":219, ####how to run it gunicron -w 1 -b 127.0.0.1:8891 ./server.py 说明: gitlab的hook分为web hook和system hook两种,这里只针对web hook。 gitlab向配置的web hook的url发送http消息,为了实现hook的功能就必须要实现一个简单的服务, 接收后格式化再重新处理,可以转发到其它服务或执行预设脚本 ####FAQ gitlab上的测试hook可以成功,正式适用却不行? 测试是直接发送hook请求,正式环境下使用sidekiq消息服务发送请求, 可能是sidekiq服务运行失败导致,查看sidekiq.log
git的代码大多数都是根据命令行统计,或者根据第三方插件统计。但是都不满足我的需求,因为我们代码都由gitlab管理,于是想到了通过gitlab暴露出来的接口获取数据。 第一步,生成私钥 登录你的gitlab申请私钥private_token 第二步,获取当前用户可见的所有项目(即使用户不是成员) 接口地址:gitlab的地址/api/v4/projects/?private_token=xx...
一.需求分析与解决思路 **1.需求:** 需求是公司大领导想要了解每月研发提交的代码,虽然本人也认为代码不代表质。可是现实总是如此的无奈,用来衡如此不可取的方法只会导致更加内卷。 **2.解决思路:** Gitstats :仓库代码统计工具之一,可以按git提交人、提交次数、修改文件数、代码行数、注释在时间维度上进行统计,亦可按各文件类型进行简单的统计,非常方便,适合小团队代码统计分析。 当然还有其他优秀仓库代码统计工具,个人觉得不太友好的地方是需要c
# 创建 GitLab 实例 gl = gitlab.Gitlab('https://gitlab.com', private_token='your_access_token') # 获取项目列表 projects = gl.projects.list() # 打印项目名称 for project in projects: print(project.name) 请注意,您需要将 "your_access_token" 替换为您的 GitLab 访问令牌。此外,您还需要安装 python-gitlab 库,可以使用以下命令进行安装: pip install python-gitlab 希望这可以帮助您开始使用 python-gitlab。如果您有任何其他问题,请随时问我。 ============================================ Python项目虚拟环境(超详细讲解):https://blog.csdn.net/weixin_50296259/article/details/130738875 资源下载合集:https://blog.csdn.net/weixin_50296259/article/details/130674430 Python GUI文章合集:https://blog.csdn.net/weixin_50296259/article/details/130674350 Oracle数据库文章合集:https://blog.csdn.net/weixin_50296259/article/details/130739064
五种方式:Python中拼接字符串的正确方法 李洋洋8888: 方式2:join不是joiin