极狐GitLab创作营 JIHULAB 101活动中,设置了多个奖项,其中包括最勤奋的极小蜂奖项(大疆 机甲大师 RoboMaster S1),考核标准就是发布篇章最多的作者前3名获奖。本次活动在极狐 GitLab SaaS 平台上提交 Issue 的形式进行参与,审核通过后管理员将给 issue 打一个 label 标签 101::DONE,我就在想如何统计出每个人通过的数量,这样好提前之前自己是否获得了最勤劳的极小蜂奖。<官方或自托管如果你能拿到数据库,直接喊程序员,数据库一条SQL就搞定了。思路一:导出到数据库直接写SQL或Excel对我来说,最简单的方式,就是导入数据库,用SQL的方式,把统计的工作交给数据库引擎来做。在极狐 GitLab 上有导出按钮,可以直接导出CSV数据,然后再用数据库工具进行导入,这部分很简单,就不用写教程了吧。
然后一条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这里参数我传了两个,一个是用户名、一个是标签,就可以拿到每个用户名的总数了。
你还有什么好的思路?欢迎评论讨论哦