将 Gitee 项目的 Star 数显示到统计图上。
目前开发者最常用的查看 star 趋势的工具一般都是 starchart.cc,比如:
但是这个工具不支持 Gitee 中的仓库,那怎么行!必须安排上!
需要先修改配置 config/config.js
:
将标记为 '本地启动时需要修改该参数'
的部分替换为自己的实际内容
npm run start
# 1. 拉取镜像
docker pull justauth/gitee-stargazers:v1.11
# 2. 自建 redis,可使用 docker 或者使用本地安装(需要保证可被容器访问)
# 3. 运行容器
docker run \
-d \
-p 3000:3000 \
-e GITEE_USERNAME={your gitee username} \
-e GITEE_PASSWORD={your gitee password} \
-e GITEE_CLIENT_ID={your gitee oauth app clientId} \
-e GITEE_CLIENT_SECRET={your gitee oauth app clientSecret} \
-e REDIS_HOST={redis host, default is 127.0.0.1} \
-e REDIS_PORT={redis port, default is 6379} \
-e REDIS_PASSWORD={redis password, required} \
-e REDIS_DB_INDEX={default is 1} \
-e REDIS_EXPIRE={redis cache expire time, default is 3600s} \
-e REDIS_CONNECT_TIMEOUT={redis connect timeout, default is 3000} \
-e CONTRIBUTORS_DIR={Directory for storing contributors' avatars} \
-e PROD=true \
-v /var/log/gitee-stargazers/:/usr/src/app/log/ \
-v /var/gs/contributors/:/usr/src/gs/contributors/ \
--name gitee-stargazers \
justauth/gitee-stargazers:v1.11
GITEE_USERNAME
: 你的 Gitee 账号名GITEE_PASSWORD
: 你的 Gitee 账号密码GITEE_CLIENT_ID
: 你的 Gitee OAuth 应用的 clientIdGITEE_CLIENT_SECRET
: 你的 Gitee OAuth 应用的 clientSecretREDIS_HOST
: redis host,默认 127.0.0.1
REDIS_PORT
: redis 端口号,默认 6379
REDIS_PASSWORD
: redis 密码,必须REDIS_DB_INDEX
: redis 数据库索引,默认 1REDIS_EXPIRE
: redis 缓存的过期时间,可选,默认 3600, 单位 秒REDIS_CONNECT_TIMEOUT
: redis 连接过期时间,可选,默认 3000, 单位秒CONTRIBUTORS_DIR
: 存放贡献者头像文件的路径PROD
: 是否为线上环境,字符串类型,当为 'true' 时, 会将 console 日志写入文件启动 docker 后,可以通过以下命令查看日志:
tail -f /var/log/gitee-stargazers/console-xxx.log
tail -f /var/log/gitee-stargazers/access-xxx.log
新建 docker-compose.yml
version: '3.3'
services:
app:
image: "justauth/gitee-stargazers:v1.11"
container_name: "gitee-stargazers"
volumes:
- /var/log/gitee-stargazers/:/usr/src/app/log/
environment:
# 是否为线上环境,字符串类型,当为 'true' 时, 会将 console 日志写入文件
PROD: "true"
# 你的 Gitee 账号名
GITEE_USERNAME: "xx"
# 你的 Gitee 账号密码
GITEE_PASSWORD: "xx"
# 你的 Gitee OAuth 应用的 clientId
GITEE_CLIENT_ID: "xx"
# 你的 Gitee OAuth 应用的 clientSecret
GITEE_CLIENT_SECRET: "xx"
# redis 连接 host,默认 127.0.0.1
REDIS_HOST: 'redis'
# redis 端口,默认 6379
REDIS_PORT: 6379
# redis 密码,必须,此处的密码为下方 redis 容器启动时指定的密码(--requirepass)
REDIS_PASSWORD: "gs123456"
# redis 连接超时时间,单位秒
REDIS_CONNECT_TIMEOUT: 3
# redis 缓存过期时间,单位秒
REDIS_EXPIRE: 3600
# redis 数据库索引,默认 1
REDIS_DB_INDEX: 2
# 存放贡献者头像文件的路径
CONTRIBUTORS_DIR: /usr/src/gs/contributors
ports:
- "3000:3000"
depends_on:
- redis
links:
- redis
redis:
image: redis
container_name: "gs_redis"
command: redis-server --appendonly yes --requirepass gs123456
ports:
- "6379:6379"
volumes:
- /var/redis/:/data/
将上方 yml
文件中的 environment
,按照注释说明,修改为真实内容后通过 docker-compose
运行项目
docker-compose up -d
浏览器访问:http://localhost:3000/{owner}/{repo} .
例如:http://localhost:3000/fujieid/jap
示例:
项目中使用的密码模式获取 token, 所以需要配置 gitee 的账号密码,如果开发者介意此点,可以单独申请一个 gitee 账号。
OAuth 应用申请的时候 回调地址可以随便填,主要的是应用创建完成后的 clientId
和 clientSecret
expire
参数不建议太低(默认 3600 秒),太低的话容易触发 Gitee 限流,谨记谨记谨记,程序中已经限制了不可低于 3600。
可以通过在 url 后面追加参数(e)的形式指定某一项目的缓存时间(不低于 3600 s),如:http://localhost:3000/{owner}/{repo}?e=10000
,此种方式可以针对那种 star 数比较多的项目,因为短期的 star 增长趋势已经对整体不构成明显影响,为了提高访问速度,可以使用该方式。
注意:如果已经通过http://localhost:3000/{owner}/{repo}
方式获取过数据,则?e=xx
不会重置缓存,在缓存有效期内(1小时)不会重置缓存,只能等原缓存过期后才可使用?e=xx
参数启用新的缓存时间
**console-xxx.log
中会打印出 redis 和 gitee 的账号密码!**请勿公开该文件!
由于受 Gitee 接口限制,目前此项目暂时只能获取到两个月内的 star 数据,获取更多数据的方式,正在和 Gitee 技术沟通。
该问题已经得到解决,再次感谢官方大大的大力支持!
index.html
和 style.css
文件参考并改造自 caarlos0/starcharts项目
docker build -t justauth/gitee-stargazers:v1.11 .
docker push justauth/gitee-stargazers:v1.11
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.