如何获取GitLab用户在所有仓库的总提交数,contributors接口异常如何解决
GitLab指定用户提交数统计优化方案
已知问题说明
当前使用的仓库贡献者接口存在已知Bug,会出现提交数固定返回1、贡献者列表缺失的问题,目前采用的全量遍历提交匹配用户的方案确实存在API开销过高的缺陷,可采用以下更优方案实现需求:
- 方案1:使用提交接口带过滤参数查询
直接调用GET /projects/:id/repository/commits接口,请求时指定author参数为目标用户的GitLab用户名或绑定的邮箱,搭配per_page(最大可设为100)、page分页参数拉取该用户的提交记录,最终返回的记录总条数即为该用户的提交数。该方案无需拉取全项目所有提交,可减少90%以上的不必要API调用。 - 方案2:使用GraphQL接口精准查询
调用GitLab GraphQL接口,自定义查询字段直接获取指定用户在目标项目下的提交统计值,相比REST API可减少冗余数据传输,同时不受当前贡献者接口Bug的影响,查询效率更高。 - 方案3(私有部署场景适用):直接查询数据库
若使用的是私有部署的GitLab实例,拥有数据库访问权限,可直接查询对应库的events表,统计action=5(对应提交动作)且author_id为目标用户ID的记录总数即可,该方案无API调用开销,性能最优。
内容的提问来源于stack exchange,提问作者Terry Windwalker
相关产品推荐
相关产品推荐

