一、开源项目简介

开源代码仓库的 star、fork、commit、pull request、issue 等相关数据,是分析和了解代码仓库的客观依据,这些数据在一定程度上反应了开源项目的受欢迎程度、活跃度、影响力等。

二、开源协议

使用MulanPSL-2.0开源协议

三、界面展示

所有仓库总视图

「开源」开源代码仓库的相关数据统计并可视化展示,全平台打通插图

指定某个仓库的视图

「开源」开源代码仓库的相关数据统计并可视化展示,全平台打通插图1

Admin 后端管理界面

「开源」开源代码仓库的相关数据统计并可视化展示,全平台打通插图2

四、功能概述

RepoStats 致力于解决的痛点问题是:

  1. 开源代码仓库的数据抓取、存储、分析及统计 (当前版本仅支持 Gitee 平台)
  2. 开源代码仓库的相关数据可视化展示
  3. 做到全平台打通,并支持分隔、组合展示

功能说明

  1. 当前版本的 RepoStats 仅支持 Gitee 平台相关数据获取 (后续会持续新增其他平台,国产平台优先考虑)
  2. 管理后台:支持界面化的 Gitee Oauth 配置、Grafana Token 获取配置
  3. 管理后台:支持添加单个仓库、支持批量添加个人帐号及组织帐号下的公开仓库
  4. 管理后台:支持禁用、启用 Gitee 数据抓取(启动抓取除外)
  5. 管理后台:支持 Commit 列表显示及查询、Issue 列表显示及查询、Pull Request 列表显示及查询
  6. Grafana 标签:每个面板均有附带仓库拥有者标签、仓库名称、平台名称等信息支持查询过滤

五、技术选型

统计指标说明

RepoStats 当前版本支持3大类共计21项统计数据可视化结果展示,这些统计数据不能表示一个开源项目的好与坏,仅从数据层面对开源代码仓库进行一定的展示。这些数据指标分类以下三类:

1. 统计汇总

统计汇总 分类中展示的数据,与时间无关,它们代表的是所有项目(Gitee Overview)后者是某个指定的项目的汇总数据结果,其中包括:

  • 仓库统计
  • 当前抓取的仓库总数量、总 Star 人数、总 Fork 人数、总 Watch 人数
  • 基本信息
  • 当前仓库的 Star 人数、Fork 人数、Watch 人数
  • Commit 统计
  • Commit 总数、Commit Author 总数(去重)、Commit Committer 总数(去重)
  • Issue 统计
  • Issue 综述、Issue 总人数、打开状态的 Issue 总数、已关闭状态的 Issue 总数、已拒绝状态的 Issue 总数、处理中的 Issue 总数
  • Issue 状态图
  • 已关闭、已拒绝、打开、处理中 状态的 Issue 占比示意图
  • Pull Request 统计
  • Pull Request 总数、Pull Request 人数、打开状态的 Pull Request 总数、已合并状态的 Pull Request 总数、已关闭状态的 Pull Request 总数
  • Pull Request 状态图
  • 已合并、打开、已关闭 的 Pull Reqeust 占比示意图
  • Issue 处理时间分析
  • 所有 Issue 从 created_at 到 finished_at 的最小耗时、平均耗时、最大耗时,单位:小时
  • Pull Request 合并时间分析
  • 所有 可合并的 Pull Request 从 created_at 到 merged_at 的最小耗时、平均耗时、最大耗时,单位:小时

2. 动态趋势

动态趋势 分类中展示的数据,是 某个时间段内 数据量的动态变化过程,可以通过 Grafana 面板右上角的时间选项查看指定时间范围内的变化趋势,其中包括:

  • Star 趋势图
  • 指定时间范围内,关注仓库的总人数变化趋势
  • Commit 趋势图
  • 指定时间范围内,Commit 提交次数的变化趋势
  • Issue 趋势图
  • 指定时间范围内,新增 Issue 数的变化趋势
  • Pull Request 趋势图 指定时间范围内,新增 Pull Request 数的变化趋势
  • Pull Request 合并时间分析 指定时间范围内,可合并的 Pull Request 从 created_at 到 merged_at 的最小耗时、平均耗时、最大耗时,单位:小时
  • Issue 处理时间分析
  • 指定时间范围内,新增的 Issue 从 created_at 到 finished_at 的最小耗时、平均耗时、最大耗时,单位:小时

3. 数据列表

数据列表 分类中展示的数据,与时间无关,它们代表的是所有项目(Gitee Overview)后者是某个指定的项目的汇总数据结果,其中包括:

  • 仓库列表
  • 所有仓库的明细列表
  • Commit 列表
  • Commit 明细列表
  • Issue 列表 Issue 明细列表
  • Pull Request 列表
  • Pull Request 明细列表
  • Commit Author 排行
  • Commit Auhtor 次数排行
  • Commit Committer 排行 Commit Committer 次数排行

数据抓取策略

RepoStats 启动之后,默认情况下每隔 6小时 抓取一次数据并更新 Grafana 视图面板

Inspired By

  1. CNCF DevStats
  2. cncf/devstatscode

Give Thanks To

由衷感谢以下开源软件、框架等(包括但不限于)

  1. Grafana
  2. gin-gonic/gin
  3. FomanticUI
  4. dchest/captcha
  5. Masterminds/sprig
  6. jmoiron/sqlx
  7. go-ini/ini
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。