安装并使用 RepoStats 代码仓库数据可视化工具
这是一篇教程式文章,意向各位想要使用 RepoStats 的朋友们详细介绍如何用 RepoStats 获取并展示开源代码仓库的统计数据。
RepoStats 在后续的迭代中会尽力不断简化安装和使用过程,但当前版本的安装和使用,大致需要了解以下知识:
- Docker 基础知识及使用
- Grafana 基础知识及使用
- 了解 Oauth 协议原理
RepoStats Docker 版本安装
RepoStats 提供了基于 Docker 的容器化版本,使其能够运行在 Windows、macOS、Linux 操作系统中。通过 RepoStats 项目主页下载项目代码及相关说明文档(点击文章底部的“阅读原文”即可访问项目主页)
在项目根目录 docker 文件夹中可看到基于 Docker 容器的安装脚本,亦或在 docker 目录中运行 docker-compse 命令即可开始安装,其完整命令如下:
1docker-compose -p repostats -f pull_build.yml --env-file vars.env up -d --build --force-recreate
在执行上述命令之前,可以根据实际情况修改必要的信息,比如:RepoStats 应用本机端口号、Grafana 及 PostgreSQL 本机端口号等,具体内容可以参阅 vars.env 文件。
通过 docker-compse 命令构建的 RepoStats 应用将会(详情可参阅 docker/pull_build.yml 文件):
- 新建名为 network_repostats 的虚拟网络
- 通过 docker pull 命令拉取 repostats 容器镜像 (大约25M)
- 通过 docker pull 命令拉取 Grafana 容器镜像 (大约286M)
- 通过 docker pull 命令拉取 PostgreSQL 容器镜像(大约200M),新建 repostats 数据库并顺序执行 sql/db.sql 、sql/gitee.sql、sql/roles.sql 数据库脚本
- 绑定本机 9103 端口应对 RepoStats 应用 http://localhost:9103 即可访问
- 绑定本机 13000 端口应对 Grafana 应用 http://localhost:13000 即可访问
完成 Docker 安装之后可通过 docker ps 查看容器情况,大致如下:
1[main][~/Codes/GoCodes/repostats/docker]$ ./start_docker_repostats.sh
2Creating network "network_repostats" with driver "bridge"
3Creating repostats_pg ... done
4Creating repostats_app ... done
5Creating repostats_gr ... done
6[main][~/Codes/GoCodes/repostats/docker]$ docker ps
7CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85a901e90e08b grafana/grafana-oss:8.5.0 "/run.sh" 3 seconds ago Up 3 seconds 0.0.0.0:13000->3000/tcp repostats_gr
9ec6d1ce2a575 baratsemet/repostats:1.0 "/app/repostats repo…" 3 seconds ago Up 3 seconds 0.0.0.0:9103->9103/tcp repostats_app
101ed0a5c74b9d postgres:9.6 "docker-entrypoint.s…" 9 seconds ago Up 8 seconds (healthy) 0.0.0.0:15432->5432/tcp repostats_pg
使用浏览器打开:
- RepoStats 管理后端:http://localhost:9103/login
- Grafana 可视化面板:http://localhost:13000
RepoStats 管理后端默认帐号密码如下:
repostats
-2aDzm=0(ln_9^1
Grafana 可视化面板默认帐号密码如下:
admin
admin
配置 Gitee、Grafana 相关信息
RepoStats 使用 Oauth 授权码模式访问 Gitee 授权许可的接口并获取相关数据,因此,在正式开始获取代码仓库相关的统计数据之前,需要在 Gitee 平台新建第三方应用并在 RepoStats 配置相关信息。
在 Gitee 中新建第三方应用
Gitee 提供了非常详细的文档来支持用户新建第三方应用 https://gitee.com/api/v5/oauth_doc#/ 注意:在新建第三方应用过程中,该应用至少需要具备以下权限
新建完成之后,将会产生属于自己的应用。后续的所有请求,都将使用上述应用信息,敬请慎重保存相关信息并不要泄露。
此外,Gitee 平台对每个应用的请求次数,都有一定的配额。据现在的观察情况来看,每个应用24小时之内请求次数超过1万即将受限。
在 RepoStats 中配置第三方应用
通过上一步在 Gitee 平台中新建了属于自己的第三方应用之后,即可在 RepoStats 管理后端中的左侧菜单中选择「Gitee 配置」菜单。将上述过程中获取的第三方应用相关信息填写至此,之后:
点击页面上的「应用授权」按钮:此过程将会打开新的浏览器页面转向到 Gitee 登录界面,通过自己的帐号登录获得授权成功之后,将会跳转到 redirect_url 页面,且在浏览器地址栏中携带 code=xxxxxx
将打开的浏览器页面地址栏中的 code=xxxxx 的值复制出来,并填入 RepoStats 「Gitee 配置」页面中的「授权 Code」,再点击「获取 Token 」即可完成 Gitee Oauth Token 的获取和保存。
此 Token 将会由 RepoStats 管理,并将在快要过期时自动更新。
获取 Grafana Token
已知通过 Docker 安装的 Grafana 默认帐号密码是 admin/admin 之后,在 RepoStats 管理后端的左侧菜单栏中选择「Grafana 配置」,填写入 Grafana 相关信息即可通过「获取 Token」按钮建立连接。
此过程中,RepoStats 将会尝试:
- 在 Grafana 中新建 名为 repostats_api_token 的 Grafana API Key
- 在 Grafana 中新建 名称 RepoStats_PG 的数据源
- 在 Grafana 中新建名称 Gitee 的文件夹
注意:因 Grafana 的限制,新建数据源成功之后,需要登录至 Grafana 并在设置面板中打开对应的数据源,通过「Test & Save」才能完成数据源的保存工作。
查看 Grafana 可视化面板
在 RepoStats 中配置 Gitee 、Grafana 完成之后,即可开始获取 Gitee 平台中的代码仓库信息。
在 RepoStats 管理后端左侧的菜单栏中选择「代码仓库管理」可查看当前需要抓取的代码仓库。点击「添加仓库」按钮并在弹出框中输入 Gitee 代码仓库链接即可将其收录至 RepoStats 中。
需要强调的是:
- RepoStats 支持添加单个代码仓库链接
- 如果添加到链接是个人或组织链接,将会抓取该个人或组织名下所有公开的代码仓库并收录至 RepoStats
添加代码仓库完成之后,即可点击「开始爬取」按钮获取当前列表中所有代码仓库相关信息。如果不选择手动启动爬取功能,则将每个6小时自动爬取 Gitee 平台数据。