Skip to content

xjn2005/Github-Annual-Report

Repository files navigation

GitHub年度报告生成器

GitHub Languages Release

一个基于Flask的Web应用,用于生成GitHub用户的年度报告,展示用户的仓库统计数据和编程语言使用情况。

功能特性

  • 自动获取指定GitHub用户的所有公共仓库数据
  • 分析用户使用的编程语言分布
  • 统计总Star数和Fork数
  • 找出最受欢迎的仓库
  • 使用Pyecharts生成交互式美化图表
  • 使用Seaborn生成静态美化图表
  • 支持GitHub API令牌认证,避免速率限制
  • 响应式设计,适配不同设备

安装依赖

  1. 确保已安装Python 3.7或更高版本
  2. 安装项目依赖:
pip install -r requirements.txt

运行项目

  1. 在项目根目录下运行:
python app.py
  1. 打开浏览器,访问 http://localhost:5000
    alt text

使用方法

  1. 在首页输入GitHub用户名
  2. (可选)输入GitHub API令牌,以避免API速率限制
  3. 点击"生成报告"按钮
  4. 等待报告生成完成,查看分析结果和图表

配置选项

通过环境变量配置

  • GITHUB_USERNAME: 默认的GitHub用户名(可选)
  • GITHUB_TOKEN: 默认的GitHub API令牌(可选)

示例:

GITHUB_USERNAME=your_username GITHUB_TOKEN=your_token python app.py

通过URL参数配置

在首页直接输入用户名,或者通过URL参数传递:

http://localhost:5000?username=your_username

注意事项

  1. 如果不提供GitHub API令牌,可能会受到GitHub API的速率限制
  2. 仅能获取公共仓库的数据
  3. 确保输入的GitHub用户名正确无误
  4. 在生产环境中运行时,请移除代码中的debug=True设置

生成的报告内容

  • 总仓库数量
  • 使用的编程语言种类
  • 编程语言分布统计
  • 总Star数和Fork数
  • 最受欢迎的仓库(按Star数排序)
  • 月度提交统计
  • 仓库类型分布
  • 周几提交活跃度

项目结构

GitHubAnnualReport/
├── app.py                  # Flask主应用程序(路由和请求处理)
├── config.py               # 配置模块(常量和配置管理)
├── exceptions.py           # 自定义异常类
├── github_client.py        # GitHub API客户端(API交互逻辑)
├── report_generator.py     # 报告生成器(数据分析和报告生成)
├── chart_generator.py     # 图表生成器(可视化图表生成)
├── requirements.txt        # 依赖列表
├── README.md               # 项目说明文档
└── templates/
    └── index.html          # 前端页面

代码架构说明

项目采用模块化设计,遵循Google Python Style Guide:

  • app.py: Flask应用主入口,处理HTTP请求和响应
  • config.py: 集中管理所有配置项和常量
  • exceptions.py: 定义自定义异常类,提供清晰的错误处理
  • github_client.py: 封装GitHub API调用,处理认证和错误
  • report_generator.py: 分析数据并生成Markdown格式报告
  • chart_generator.py: 使用Pyecharts生成交互式图表和Seaborn生成静态美化图表

这种设计提高了代码的可维护性、可测试性和可扩展性。

开发说明

主要依赖

  • Flask: Web框架
  • requests: HTTP请求库
  • pandas: 数据分析
  • matplotlib: 图表渲染基础库
  • pyecharts: 交互式图表生成库
  • seaborn: 静态美化图表生成库
  • plotly: 数据可视化

开发环境搭建

  1. 克隆项目:
git clone <repository-url>
cd GitHubAnnualReport
  1. 创建虚拟环境:
python -m venv venv
  1. 激活虚拟环境:

    • Windows: venv\Scripts\activate
    • Linux/Mac: source venv/bin/activate
  2. 安装依赖:

pip install -r requirements.txt
  1. 运行项目:
python app.py

许可证

MIT License

About

This project generates an interactive annual report for GitHub users, displaying statistics about their repositories, commits, and contributions using GitHub's API. It provides insights through dynamic charts and graphs, allowing users to analyze their GitHub activity over the past year.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors