是不是快下班了?工作结尾了吗?

编程开发

极狐 GitLab Issue 统计的思路分享

2022年09月30日 15:12:57 · 本文共 792 字阅读时间约 2分钟 · 1,211 次浏览
极狐 GitLab Issue 统计的思路分享

极狐GitLab创作营 JIHULAB 101活动中,设置了多个奖项,其中包括最勤奋的极小蜂奖项(大疆 机甲大师 RoboMaster S1),考核标准就是发布篇章最多的作者前3名获奖。

本次活动在极狐 GitLab SaaS 平台上提交 Issue 的形式进行参与,审核通过后管理员将给 issue 打一个 label 标签 101::DONE,我就在想如何统计出每个人通过的数量,这样好提前之前自己是否获得了最勤劳的极小蜂奖。

<

官方或自托管

如果你能拿到数据库,直接喊程序员,数据库一条SQL就搞定了。

思路一:导出到数据库直接写SQL或Excel

对我来说,最简单的方式,就是导入数据库,用SQL的方式,把统计的工作交给数据库引擎来做。

在极狐 GitLab 上有导出按钮,可以直接导出CSV数据,然后再用数据库工具进行导入,这部分很简单,就不用写教程了吧。

gitlab issue 导出

然后一条SQL搞定:

SELECT
    author_username,
    COUNT( 1 ) AS cnt 
FROM
    a_jhlab101 
WHERE
    labels LIKE '%DONE%' 
GROUP BY
    author_username 
ORDER BY
    cnt DESC

又或者,你很熟悉Excel,直接用Excel打开CSV文件,进行数据统计,我对Excel不是很熟悉,就不表演了,但我知道这是可行的。


思路二:基于API接口查询

极狐 GitLab 有很完善的API接口,几乎可以做任何你想做的事,如果统计是一个经常进行的工作,那么写程序进行重复性的统计就很方便了。

首先,我们需要知道有哪些人提交了 issue,那么就需要查询 issue 接口,拿到作者的用户名:

https://jihulab.com/api/v4/projects/16944/issues

注意翻页哦,拿到作者用户名以后进行去重,得到用户名列表,然后调用统计接口:

https://jihulab.com/api/v4/projects/16944/issues_statistics?labels=101::DONE&author_username=renfei

这里参数我传了两个,一个是用户名、一个是标签,就可以拿到每个用户名的总数了。


你还有什么好的思路?欢迎评论讨论哦

商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://www.renfei.net/posts/1003532
评论与留言

以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。

微信搜一搜:任霏博客