RepoStats
开源代码仓库的 star、fork、commit、pull request、issue 等相关数据,是分析和了解代码仓库的客观依据,这些数据在一定程度上反应了开源项目的受欢迎程度、活跃度、影响力等。
RepoStats 致力于解决的痛点问题是:
- 开源代码仓库的数据抓取、存储、分析及统计
- 开源代码仓库的相关数据可视化展示
- 做到全网、全平台平台打通,并支持分隔、组合展示
功能说明
- 支持平台:当前版本的 RepoStats 仅支持 Gitee 平台相关数据获取
- 管理后台:支持界面化的 Gitee Oauth 配置、Grafana Token 获取配置
- 管理后台:支持添加单个仓库、支持批量添加个人帐号及组织帐号下的公开仓库
- 管理后台:支持禁用、启用 Gitee 数据抓取(启动抓取除外)
- 管理后台:支持 Commit 列表显示及查询、Issue 列表显示及查询、Pull Request 列表显示及查询
- Grafana 标签:每个面板均有附带仓库拥有者标签、仓库名称、平台名称等信息支持查询过滤
https://www.repostats.cn
路线图
安装及配置说明
1. 使用 Docker 环境
启动 Docker 镜像前请注意查看 docker/vars.env
文件,并根据自己的实际情况调整需要的参数(eg:本地端口号等)。启动 docker/start_docker_repostats.sh
可以通过 Docker 环境将所有依赖安装并启动。该命令将:
- 拉取 repostats 镜像(本地构建可查看
docker/repostats.Dockerfile
文件)
- 通过
docker/pull_build.yml
其他描述内容构建 Grafana
和 PostgreSQL
镜像及服务,并对其运行状态做判断,再启动其他必要服务 (本地构建镜像请查阅 local_build.yml
)
- 构建名为
network_repostats
的虚拟网络供上述服务使用
- 开启本机
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
数据库说明
- 请在
PostgreSQL
数据库中创建名称 repostats
的数据库
- 请分别 顺序执行
sql/db.sql
、sql/gitee.sql
、sql/roles.sql
创建必要的表及视图等
启动参数说明
repostats [-c config_file]
使用前置条件
RepoStats 启动成功之后,请使用帐号密码登录 Admin 管理后台。管理后台默认的账户名密码信息如下:
repostats
-2aDzm=0(ln_9^1
在开始爬取 Gitee 数据并向 Grafana 推送相关统计结果之前,需要对其进行一定的配置:
- 在 Admin 管理界面中的
Gitee 配置
页面根据提示配置必要的 Oauth 参数
从而保证能够正常获取 Gitee 相关数据
- 在 Admin 管理界面中的
Grafana 配置
页面中根据提示配置必要的 Grafana 参数
从而确保能够与 Grafana 进行通信
- 上一步骤中,与 Grafana 通信成功之后,需要在 Grafana 操作页面中对数据源进行一次
Test & Save
才能保证数据源正常 (这个问题暂时似乎是没办法处理的,后续会想办法处理)
- 在 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_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 次数排行
Contributor License Agreement
在 第一次提交 Pull Request 时 ,请您在 Pull Request 内容中明确写明「本人自愿接受并签署 《RepoStats Contributor License Agreement》」,并在 Pull Request 信息中附带该协议链接信息。
Inspired By
- CNCF DevStats
- cncf/devstatscode
Give Thanks To
由衷感谢以下开源软件、框架等(包括但不限于)
- Grafana
- gin-gonic/gin
- FomanticUI
- dchest/captcha
- Masterminds/sprig
- jmoiron/sqlx
- go-ini/ini
RepoStats News
- 2022-06-01 RepoStats 代码仓库数据可视化工具,路线图发布
- 2022-05-11 RepoStats v1.1 正式发布,开源代码仓库数据可视化工具
- 2022-04-27 安装并使用 RepoStats 代码仓库数据可视化工具
- 2022-04-26 RepoStats v1.0 发布,开源代码仓库统计数据可视化
RepoStats
开源代码仓库的 star、fork、commit、pull request、issue 等相关数据,是分析和了解代码仓库的客观依据,这些数据在一定程度上反应了开源项目的受欢迎程度、活跃度、影响力等。
RepoStats 致力于解决的痛点问题是:
功能说明
https://www.repostats.cn
路线图
安装及配置说明
1. 使用 Docker 环境
启动 Docker 镜像前请注意查看
docker/vars.env
文件,并根据自己的实际情况调整需要的参数(eg:本地端口号等)。启动docker/start_docker_repostats.sh
可以通过 Docker 环境将所有依赖安装并启动。该命令将:docker/repostats.Dockerfile
文件)docker/pull_build.yml
其他描述内容构建Grafana
和PostgreSQL
镜像及服务,并对其运行状态做判断,再启动其他必要服务 (本地构建镜像请查阅local_build.yml
)network_repostats
的虚拟网络供上述服务使用9103
端口应对 RepoStats 工具、启动13000
端口应对 Grafana 工具,启动15432
应对 PostgreSQL 数据库2. 通过
Makefile
构建构建 linux 平台对应的可执行文件:
压缩 linux 平台对应的可执行文件(压缩可执行文件需要 upx 支持):
3. 使用各系统分发版本
通过 Release 下载对应平台的分发版并启动运行,启动之前请确保
repostats.ini
配置文件中各项内容的正确性数据库说明
PostgreSQL
数据库中创建名称repostats
的数据库sql/db.sql
、sql/gitee.sql
、sql/roles.sql
创建必要的表及视图等启动参数说明
使用前置条件
RepoStats 启动成功之后,请使用帐号密码登录 Admin 管理后台。管理后台默认的账户名密码信息如下:
在开始爬取 Gitee 数据并向 Grafana 推送相关统计结果之前,需要对其进行一定的配置:
Gitee 配置
页面根据提示配置必要的Oauth 参数
从而保证能够正常获取 Gitee 相关数据Grafana 配置
页面中根据提示配置必要的Grafana 参数
从而确保能够与 Grafana 进行通信Test & Save
才能保证数据源正常 (这个问题暂时似乎是没办法处理的,后续会想办法处理)代码仓库列表
页面中,根据界面提示添加想要关注的代码仓库截图分享
所有仓库总视图
指定某个仓库的视图
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_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 次数排行
Contributor License Agreement
在 第一次提交 Pull Request 时 ,请您在 Pull Request 内容中明确写明「本人自愿接受并签署 《RepoStats Contributor License Agreement》」,并在 Pull Request 信息中附带该协议链接信息。
Inspired By
Give Thanks To
由衷感谢以下开源软件、框架等(包括但不限于)
RepoStats News