Skip to content

开源代码仓库的 star、fork、commit、pull request、issue 等相关数据统计并可视化展示

License

Notifications You must be signed in to change notification settings

barats/RepoStats

Repository files navigation

RepoStats

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

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

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

功能说明

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

https://www.repostats.cn
Docker Pulls

路线图

roadmap

安装及配置说明

1. 使用 Docker 环境

启动 Docker 镜像前请注意查看 docker/vars.env 文件,并根据自己的实际情况调整需要的参数(eg:本地端口号等)。启动 docker/start_docker_repostats.sh 可以通过 Docker 环境将所有依赖安装并启动。该命令将:

  1. 拉取 repostats 镜像(本地构建可查看 docker/repostats.Dockerfile 文件)
  2. 通过 docker/pull_build.yml 其他描述内容构建 GrafanaPostgreSQL 镜像及服务,并对其运行状态做判断,再启动其他必要服务 (本地构建镜像请查阅 local_build.yml)
  3. 构建名为 network_repostats 的虚拟网络供上述服务使用
  4. 开启本机 9103 端口应对 RepoStats 工具、启动 13000 端口应对 Grafana 工具,启动 15432 应对 PostgreSQL 数据库

2. 通过 Makefile 构建

构建 linux 平台对应的可执行文件:

make build-linux

压缩 linux 平台对应的可执行文件(压缩可执行文件需要 upx 支持):

make compress-linux

3. 使用各系统分发版本

通过 Release 下载对应平台的分发版并启动运行,启动之前请确保 repostats.ini 配置文件中各项内容的正确性

[repostats]
debug = false
admin_port = 9103


[postgres]
host = localhost
port = 15432
user = postgres
password = DePmoG_123
database = repostats
max_open_conn = 20
max_idle_conn = 5

[grafana]
host = localhost
port = 13000
user = admin
password = admin

数据库说明

  1. 请在 PostgreSQL 数据库中创建名称 repostats 的数据库
  2. 请分别 顺序执行 sql/db.sqlsql/gitee.sqlsql/roles.sql 创建必要的表及视图等

启动参数说明

repostats [-c config_file]

使用前置条件

RepoStats 启动成功之后,请使用帐号密码登录 Admin 管理后台。管理后台默认的账户名密码信息如下:

repostats
-2aDzm=0(ln_9^1

在开始爬取 Gitee 数据并向 Grafana 推送相关统计结果之前,需要对其进行一定的配置:

  1. 在 Admin 管理界面中的 Gitee 配置 页面根据提示配置必要的 Oauth 参数 从而保证能够正常获取 Gitee 相关数据
  2. 在 Admin 管理界面中的 Grafana 配置 页面中根据提示配置必要的 Grafana 参数 从而确保能够与 Grafana 进行通信
  3. 上一步骤中,与 Grafana 通信成功之后,需要在 Grafana 操作页面中对数据源进行一次 Test & Save 才能保证数据源正常 (这个问题暂时似乎是没办法处理的,后续会想办法处理)
  4. 在 Admin 管理界面中的 代码仓库列表 页面中,根据界面提示添加想要关注的代码仓库

截图分享

所有仓库总视图 所有仓库总视图

指定某个仓库的视图
指定某个仓库的视图

Admin 后端管理界面 Admin 后端管理界面

统计指标说明

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_atfinished_at 的最小耗时、平均耗时、最大耗时,单位:小时

  • Pull Request 合并时间分析
    所有 可合并的 Pull Request 从 created_atmerged_at 的最小耗时、平均耗时、最大耗时,单位:小时

2. 动态趋势

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

  • Star 趋势图
    指定时间范围内,关注仓库的总人数变化趋势

  • Commit 趋势图
    指定时间范围内,Commit 提交次数的变化趋势

  • Issue 趋势图
    指定时间范围内,新增 Issue 数的变化趋势

  • Pull Request 趋势图
    指定时间范围内,新增 Pull Request 数的变化趋势

  • Pull Request 合并时间分析
    指定时间范围内,可合并的 Pull Request 从 created_atmerged_at 的最小耗时、平均耗时、最大耗时,单位:小时

  • Issue 处理时间分析
    指定时间范围内,新增的 Issue 从 created_atfinished_at 的最小耗时、平均耗时、最大耗时,单位:小时

3. 数据列表

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

  • 仓库列表
    所有仓库的明细列表

  • Commit 列表
    Commit 明细列表

  • Issue 列表
    Issue 明细列表

  • Pull Request 列表
    Pull Request 明细列表

  • Commit Author 排行
    Commit Auhtor 次数排行

  • Commit Committer 排行 Commit Committer 次数排行

Contributor License Agreement

第一次提交 Pull Request 时 ,请您在 Pull Request 内容中明确写明「本人自愿接受并签署 《RepoStats Contributor License Agreement》」,并在 Pull Request 信息中附带该协议链接信息。

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

RepoStats News

  1. 2022-06-01 RepoStats 代码仓库数据可视化工具,路线图发布
  2. 2022-05-11 RepoStats v1.1 正式发布,开源代码仓库数据可视化工具
  3. 2022-04-27 安装并使用 RepoStats 代码仓库数据可视化工具
  4. 2022-04-26 RepoStats v1.0 发布,开源代码仓库统计数据可视化