Skip to content

Ziccc1/Openrank-OpenGov-Hub

Repository files navigation

OpenGov Hub

开源治理与运营一体化监测大屏

🔗 访问大屏

在线访问地址https://student.dataease2.fit2cloud.com/#/de-link/tul5QYuJ

💡 提示:点击上方链接即可访问 OpenGov Hub 数据可视化大屏,查看实时开源生态数据。

📊 大屏简介

OpenGov Hub 是一个开源治理与运营一体化监测大屏,旨在通过数据可视化大屏的方式,为开发者、企业OSPO、项目维护者及监管方提供实时、全面的开源生态数据支撑。

核心定位

在全球开源生态高速扩张、中国开源加速发展的背景下,治理效率、协作质量与风险防控已成为生态高质量发展的核心议题。OpenGov Hub 聚焦全球生态洞察、风险预警、效率诊断、行动落地的全链路需求。

大屏功能模块

大屏包含以下11个核心可视化模块:

  1. 开源项目健康度对比图 - 柱状图对比中国与全球均值在健康度核心维度的表现(漏洞修复效率、项目存活周期、风险发现周期、持续维护能力、社区贡献活跃度)

  2. 协作效率对比图 - 柱状图展示中国与全球基准线在协作效率关键指标上的差异(跨行业协作效率、海外贡献者占比、PR合并效率、多维护者项目占比、项目月均commit数)

  3. 中国开发者地域分布表 - 表格呈现中国开发者地域分布TOP10省份,包含排名、省份、总人数、全国占比等字段

  4. 中国行政区划开发者OpenRank排行榜 - 表格展示2024年中国行政区划开发者OpenRank TOP30,揭示各区域开源项目总影响力与人均影响力

  5. 主题出现次数TOP15柱状图 - 柱状图统计开源项目技术主题的热门程度,展示hacktoberfest、python、AI、LLM等热门技术热点

  6. 协作效率概况趋势图 - 折线面积图展示issues_closed、issues_new、change_requests、change_requests_accepted的趋势变化(2015-2025年),支持全球/中国TOP5项目切换查看

  7. 中国开源生态区域分布热力图与条形图 - 热力地图展示中国各省份开发者数量、OpenRank总值、平均OpenRank的分布,以及开发者地域分布TOP10条形图

  8. TOP10榜单图表 - 横向条形图展示全球/国内头部开源项目OpenRank榜单与企业活跃度榜单,直观呈现国内外项目与企业在开源生态中的影响力差距

  9. 热点技术主题词云图 - 词云图以字体大小体现开源技术/社区活动的热度,热门关键词包含hacktoberfest、python、AI、kubernetes等,支持交互查看具体出现次数

  10. 健康度总览图表 - 左侧为"项目类别×健康维度"热力矩阵(横轴为AI平台、前端框架等类别,纵轴为活跃度、协作效率等维度),右侧为单项目健康度雷达图(五轴对应健康维度),支持项目类别筛选交互

  11. 24小时开源贡献行为分布图 - 折线图呈现国内头部机构单日开源贡献时段特征,清晰展示凌晨2-4时、清晨6-9时的"双高峰"分布规律

项目结构

OpenGov Hub/
├── src/                      # 源代码目录
│   ├── scripts/              # 数据收集脚本(TypeScript)
│   │   ├── fetch_issue_pr_data.ts        # Issue/PR数据拉取
│   │   ├── fetch_leaderboard_data.ts     # Open Leaderboard数据拉取
│   │   ├── fetch_top5_orgs.ts            # Top5机构数据
│   │   ├── generate_hourly_activity_data.ts  # 24小时行为数据
│   │   ├── health_overview_from_oss.ts   # 健康度总览
│   │   ├── oss_dashboard_fetch.ts        # 数据大屏数据拉取
│   │   ├── oss_rows_to_csv.ts           # CSV转换
│   │   └── process_excel_by_year.ts      # Excel按年份处理
│   └── utils.ts              # 工具函数库
├── lib/                      # 编译输出目录(TypeScript编译后的JavaScript文件)
│   ├── scripts/              # 编译后的脚本文件
│   └── utils.js
├── output/                   # 输出数据文件夹
│   ├── csv/                  # CSV格式数据
│   │   ├── leaderboard_china_top10_companies_2024.csv
│   │   ├── leaderboard_china_top10_repos_2024.csv
│   │   ├── leaderboard_global_top10_companies_2024.csv
│   │   ├── leaderboard_global_top10_repos_2024.csv
│   │   ├── oss_pr_issue_data.csv
│   │   ├── oss_rows.csv
│   │   └── tech_wordcloud_data.csv
│   ├── excel/                # Excel格式数据
│   │   ├── 2024年中国Top10机构24小时贡献行为占比.xlsx
│   │   ├── health_overview.xlsx
│   │   ├── leaderboard_top10_2024.xlsx
│   │   ├── oss_issue_data.xlsx
│   │   ├── oss_pr_data.xlsx
│   │   └── tech_wordcloud_data.xlsx
│   └── json/                 # JSON格式数据
│       ├── leaderboard_top10_2024.json
│       ├── oss_dashboard_data.json
│       ├── oss_pr_issue_data.json
│       └── tech_wordcloud_data.json
├── output.csv                # 技术热点词云图原始数据(Python脚本输入)
├── output.py                 # 技术热点词云图数据生成脚本(Python)
├── package.json              # 项目依赖配置
├── package-lock.json         # 依赖锁定文件
├── tsconfig.json             # TypeScript编译配置
├── .gitignore                # Git忽略配置
├── LICENSE                   # MIT许可证
└── README.md                 # 项目说明文档

注意:当前项目结构为数据后端部分,大屏前端通过 DataEase 平台实现,访问链接见上方"访问大屏"部分。

安装

项目依赖安装

# 安装 Node.js 依赖
npm install

# 编译 TypeScript 代码
npm run build

Python 依赖安装(可选,用于技术热点词云图数据生成)

如果使用 output.py 脚本,需要安装以下 Python 包:

pip install pandas openpyxl

使用方法

1. 生成 Issue/PR 数据

npm run run:issuepr

输出文件:

  • output/json/oss_pr_issue_data.json - JSON格式数据
  • output/csv/oss_pr_issue_data.csv - CSV格式数据
  • output/excel/oss_issue_data.xlsx - Issue数据(Excel格式,6个工作表)
  • output/excel/oss_pr_data.xlsx - PR数据(Excel格式,6个工作表)

2. 生成 24小时行为数据

npm run run:hourly

输出文件:

  • output/excel/2024年中国Top10机构24小时贡献行为占比.xlsx(3个工作表)

3. 生成健康度总览

注意:需要先运行数据大屏数据拉取和CSV转换:

npm run run:dashboard  # 生成 output/json/oss_dashboard_data.json
npm run run:csv       # 生成 output/csv/oss_rows.csv
npm run run:health    # 生成 output/excel/health_overview.xlsx

输出文件:

  • output/excel/health_overview.xlsx(3个工作表:矩阵格式、雷达图、长格式)

4. 提取 Open Leaderboard 数据

npm run run:leaderboard    # 提取2024年全球Top10和中国Top10项目OpenRank和企业活跃度数据

输出文件:

  • output/excel/leaderboard_top10_2024.xlsx - Top10项目和企业数据(Excel格式)
  • output/json/leaderboard_top10_2024.json - Top10项目和企业数据(JSON格式)
  • output/csv/leaderboard_*.csv - Top10项目和企业数据(CSV格式,多个文件)

功能说明

  • 从 Open Leaderboard OSS 获取项目和企业排行榜数据
  • 提取2024年全球Top10和中国Top10项目OpenRank
  • 提取2024年全球Top10和中国Top10企业活跃度
  • 保存为Excel格式便于分析

5. 其他脚本

npm run run:top5      # 生成Top5机构数据
npm run run:process   # 处理Excel文件,按年份整合数据

6. 生成技术热点词云图数据(Python脚本)

注意:需要先确保 output.csv 文件存在于 OpenGov Hub 根目录下。

# 方式1:直接运行 Python 脚本
python output.py

# 方式2:使用 npm script
npm run run:wordcloud-py

输出文件

  • output/json/tech_wordcloud_data.json - JSON格式数据
  • output/csv/tech_wordcloud_data.csv - CSV格式数据
  • output/excel/tech_wordcloud_data.xlsx - Excel格式(2个工作表)

功能说明

  • output.csv 中读取仓库的 topics 字段
  • 统计所有技术热点词的出现次数
  • 按出现次数排序,生成前15排名数据

7. 一键运行所有脚本

npm run run:all

输出文件说明

所有输出文件保存在 output/ 文件夹中,按格式分类存储:

JSON 格式数据 (output/json/)

  • oss_pr_issue_data.json - PR和Issue数据(包含所有原始数据和错误信息)
  • oss_dashboard_data.json - 数据大屏原始数据
  • oss_pr_issue_data.json - PR和Issue数据(JSON格式)
  • leaderboard_top10_2024.json - 2024年Top10项目和企业数据
  • tech_wordcloud_data.json - 技术热点词数据(前15排名)

CSV 格式数据 (output/csv/)

  • oss_pr_issue_data.csv - PR和Issue数据(扁平化表格)
  • oss_rows.csv - 扁平化CSV数据(健康度总览的输入文件)
  • leaderboard_china_top10_companies_2024.csv - 2024年中国Top10企业数据
  • leaderboard_china_top10_repos_2024.csv - 2024年中国Top10项目数据
  • leaderboard_global_top10_companies_2024.csv - 2024年全球Top10企业数据
  • leaderboard_global_top10_repos_2024.csv - 2024年全球Top10项目数据
  • tech_wordcloud_data.csv - 技术热点词数据

Excel 格式数据 (output/excel/)

  • oss_issue_data.xlsx - Issue数据(6个工作表)
    • 工作表1:世界原始数据
    • 工作表2:世界按年份聚合
    • 工作表3:世界时间均值
    • 工作表4:中国原始数据
    • 工作表5:中国按年份聚合
    • 工作表6:中国时间均值
  • oss_pr_data.xlsx - PR数据(Excel格式,同上6个工作表)
  • 2024年中国Top10机构24小时贡献行为占比.xlsx - 24小时行为数据(3个工作表)
    • 工作表1:汇总数据(所有仓库合并后的24小时占比)
    • 工作表2:各机构汇总(每个机构的汇总数据)
    • 工作表3:各仓库详细数据(每个仓库的详细数据)
  • health_overview.xlsx - 健康度总览(3个工作表)
    • 工作表1:矩阵格式(健康维度为行,项目类别为列,用于热力图)
    • 工作表2:radar(项目类别为行,健康维度为列,用于雷达图)
    • 工作表3:长格式(按类别分组的长格式数据)
  • leaderboard_top10_2024.xlsx - 2024年Top10项目和企业数据(4个工作表)
  • tech_wordcloud_data.xlsx - 技术热点词数据(2个工作表)

自定义配置

可以在各个脚本文件中修改:

  1. 仓库列表:修改 repos 数组,添加或删除需要分析的仓库
  2. 指标列表:修改 metrics 数组,选择需要拉取的指标
  3. 输出路径:默认在 output/ 文件夹下,按格式分类存储到 csv/excel/json/ 子文件夹,可在脚本中修改

数据源

OpenDigger OSS

数据来源于 OpenDigger OSS,通过 HTTP API 拉取各项目的指标数据。

Open Leaderboard

数据来源于 Open Leaderboard,这是一个基于 GitHub 数据的开源排行榜项目,提供企业、项目和开发者的活跃度和影响力排名。

数据获取方式

Open Leaderboard 的数据存储在 OSS 上,可以通过以下 URL 格式直接获取:

https://oss.x-lab.info/open_leaderboard/open_rank/{type}/{region}/{filename}.json

示例

// 获取2024年中国项目排行榜
const url = 'https://oss.x-lab.info/open_leaderboard/open_rank/repo/chinese/2024.json';

// 获取2024年全球企业排行榜
const url = 'https://oss.x-lab.info/open_leaderboard/open_rank/company/global/2024.json';

// 获取2024年12月中国开发者排行榜
const url = 'https://oss.x-lab.info/open_leaderboard/open_rank/user/chinese/202412.json';

项目文件说明

核心脚本文件

  • src/scripts/ - 包含所有数据收集脚本(TypeScript)
    • fetch_issue_pr_data.ts - Issue/PR数据拉取脚本
    • generate_hourly_activity_data.ts - 24小时行为数据生成
    • health_overview_from_oss.ts - 健康度总览计算
    • oss_dashboard_fetch.ts - 数据大屏数据拉取
    • oss_rows_to_csv.ts - CSV格式转换
    • fetch_top5_orgs.ts - Top5机构数据拉取
    • process_excel_by_year.ts - Excel文件按年份处理
    • fetch_leaderboard_data.ts - Open Leaderboard数据提取示例
  • output.py - 技术热点词云图数据生成脚本(Python)
    • output.csv 读取数据(文件需位于 OpenGov Hub 根目录)
    • 统计技术热点词出现次数,生成前15排名数据

工具文件

  • src/utils.ts - 工具函数库
    • readFileAsObj() - 读取并解析JSON文件
    • formatDate() - 日期格式化函数
    • getLogger() - 日志记录器
    • waitFor() - 异步等待函数

配置文件

  • package.json - 项目依赖和脚本配置
  • tsconfig.json - TypeScript编译配置
  • .gitignore - Git版本控制忽略文件配置
  • .editorconfig - 编辑器代码风格配置(可选)
  • .npmrc - npm包管理器配置(可选)

文档文件

  • README.md - 项目主要说明文档
  • LICENSE - MIT许可证文件

依赖说明

Node.js 依赖

本项目只依赖以下包:

  • xlsx - Excel文件读写
  • typescript - TypeScript编译
  • @types/node@types/xlsx - 类型定义

Python 依赖(用于技术热点词云图)

如果使用 output.py 脚本,需要安装以下 Python 包:

pip install pandas openpyxl

团队分工

任务 负责人
初赛PPT 邵子翀、朱翎融
数据清洗 朱翎融
大屏制作 邵子翀、朱翎融
复赛PPT 邵子翀、朱翎融
数据处理 邵子翀
视频录制 朱翎融
数据报告撰写 邵子翀

License

MIT

相关链接

About

OpenGov Hub: An all-in-one open source governance dashboard. Built on OpenDigger ecosystem, it provides real-time project visualization, multi-dimensional analysis, AI risk alerts (18→24h), and natural language interaction. Enables data-driven governance for China's open source ecosystem.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors