gitea-statistical-ranking产品系统

我要开发同款
SeaNRoCK2026年01月20日
15阅读

技术信息

语言技术
PythonShellRedisLinux
系统类型
Linux
行业分类
企业服务
开源地址
https://gitee.com/seanrocks/gitea-statistical-ranking
授权协议
MIT许可
开源组织
gitee(oschina)、github
演示地址
https://github.com/seanrocks/gitea-statistical-ranking

作品详情

行业场景

gitea没有相关能让领导一目了然所有员工提交代码情况的统计排名,我用python利用linux定时任务crontab通过git命令拉取当日所有项目代码统计好员工信息提交于gitea上供领导每天查看的有人git提交工作内容情况进行展示。

功能介绍

### run_gitea_stats.sh 脚本功能
**脚本位置**:`/home/gitea/statics/run_gitea_stats.sh`
**功能特点**:
- 解决定时任务中的 Python 环境问题
- 支持手动执行和定时任务两种模式
- 自动记录执行日志
- 手动执行时实时显示输出
- 运行前需手动调整gs.env参数,否则默认只跑当天。

### 手动执行模式
```bash
cd /home/gitea/statics
./run_gitea_stats.sh manual
```

**执行流程**:
1. 切换到工作目录 `/home/gitea/statics`
2. 记录开始时间到 `cron.log`
3. 实时显示执行进度(使用 `tee` 命令)
4. 执行 `gitea_stats.py`
5. 记录执行状态(成功/失败)到 `cron.log`
6. 输出同时保存到 `gitea_stats.log`

### 定时任务模式
**定时任务配置**:
```bash
30 17 * * * /home/gitea/statics/run_gitea_stats.sh
```
最终生成.md文件提交到git上,可以登录gitea在页面浏览

项目实现

## 文件结构
/home/gitea/statics/
├── __init__.py
├── config.py # 配置管理
├── redis_cache.py # Redis 缓存
├── git_operations.py # Git 操作
├── gitea_api.py # Gitea API
├── stats_collector.py #

## 模块说明

### config.py - 配置管理

- 从 gs.env 文件加载配置
- 验证必需参数
- 支持多种认证方式

### redis_cache.py - Redis 缓存

- 管理 Redis 连接
- 提供缓存读写接口
- 自动处理连接失败(降级为无缓存模式)

### git_operations.py - Git 操作

- Git 仓库克隆和更新
- 支持本地缓存目录
- 自动检测和修复浅克隆
- Git 提交记录查询
- 代码行数统计
- 自动认证

### gitea_api.py - Gitea API

- 获取用户列表(过滤禁用用户)
- 获取仓库列表(支持分页)
- 获取提交记录
- 支持多种认证方式

### stats_collector.py - 统计收集

- 收集所有仓库和用户的统计数据
- 使用 Redis 缓存提升性能
- 支持时间范围过滤
- 自动过滤无效数据

### report_generator.py - 报告生成

- 生成文本格式报告
- 导出 JSON 格式数据
- 显示贡献度和具体人名
- 支持仓库贡献者列表(用竖线分割)

### gitea_stats.py - 主程序

- 协调所有模块
- 处理时间范围参数
- 生成统计报告
- 导出 JSON 数据

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论