安装并使用 RepoStats 代码仓库数据可视化工具

这是一篇教程式文章,意向各位想要使用 RepoStats 的朋友们详细介绍如何用 RepoStats 获取并展示开源代码仓库的统计数据。

RepoStats 在后续的迭代中会尽力不断简化安装和使用过程,但当前版本的安装和使用,大致需要了解以下知识:

  1. Docker 基础知识及使用
  2. Grafana 基础知识及使用
  3. 了解 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 文件):

  1. 新建名为 network_repostats 的虚拟网络
  2. 通过 docker pull 命令拉取 repostats 容器镜像 (大约25M)
  3. 通过 docker pull 命令拉取 Grafana 容器镜像 (大约286M)
  4. 通过 docker pull 命令拉取 PostgreSQL 容器镜像(大约200M),新建 repostats 数据库并顺序执行 sql/db.sql 、sql/gitee.sql、sql/roles.sql 数据库脚本
  5. 绑定本机 9103 端口应对 RepoStats 应用 http://localhost:9103 即可访问
  6. 绑定本机 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

使用浏览器打开:

  1. RepoStats 管理后端:http://localhost:9103/login
  2. 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 将会尝试:

  1. 在 Grafana 中新建 名为 repostats_api_token 的 Grafana API Key
  2. 在 Grafana 中新建 名称 RepoStats_PG 的数据源
  3. 在 Grafana 中新建名称 Gitee 的文件夹

注意:因 Grafana 的限制,新建数据源成功之后,需要登录至 Grafana 并在设置面板中打开对应的数据源,通过「Test & Save」才能完成数据源的保存工作。

查看 Grafana 可视化面板

在 RepoStats 中配置 Gitee 、Grafana 完成之后,即可开始获取 Gitee 平台中的代码仓库信息。

在 RepoStats 管理后端左侧的菜单栏中选择「代码仓库管理」可查看当前需要抓取的代码仓库。点击「添加仓库」按钮并在弹出框中输入 Gitee 代码仓库链接即可将其收录至 RepoStats 中。

需要强调的是:

  1. RepoStats 支持添加单个代码仓库链接
  2. 如果添加到链接是个人或组织链接,将会抓取该个人或组织名下所有公开的代码仓库并收录至 RepoStats

添加代码仓库完成之后,即可点击「开始爬取」按钮获取当前列表中所有代码仓库相关信息。如果不选择手动启动爬取功能,则将每个6小时自动爬取 Gitee 平台数据。

下载使用

  1. 官网 https://www.repostats.cn
  2. Github https://github.com/barats/RepoStats
  3. Gitee https://gitee.com/barat/repostats
  4. Gitlink https://www.gitlink.org.cn/baladiwei/repostats
版权声明:本站所有内容,未经书面授权禁止一切形式的转载、摘录及摘抄,违者依法追究其相关责任。

相关文章