开源治理与运营一体化监测大屏
在线访问地址:https://student.dataease2.fit2cloud.com/#/de-link/tul5QYuJ
💡 提示:点击上方链接即可访问 OpenGov Hub 数据可视化大屏,查看实时开源生态数据。
OpenGov Hub 是一个开源治理与运营一体化监测大屏,旨在通过数据可视化大屏的方式,为开发者、企业OSPO、项目维护者及监管方提供实时、全面的开源生态数据支撑。
在全球开源生态高速扩张、中国开源加速发展的背景下,治理效率、协作质量与风险防控已成为生态高质量发展的核心议题。OpenGov Hub 聚焦全球生态洞察、风险预警、效率诊断、行动落地的全链路需求。
大屏包含以下11个核心可视化模块:
-
开源项目健康度对比图 - 柱状图对比中国与全球均值在健康度核心维度的表现(漏洞修复效率、项目存活周期、风险发现周期、持续维护能力、社区贡献活跃度)
-
协作效率对比图 - 柱状图展示中国与全球基准线在协作效率关键指标上的差异(跨行业协作效率、海外贡献者占比、PR合并效率、多维护者项目占比、项目月均commit数)
-
中国开发者地域分布表 - 表格呈现中国开发者地域分布TOP10省份,包含排名、省份、总人数、全国占比等字段
-
中国行政区划开发者OpenRank排行榜 - 表格展示2024年中国行政区划开发者OpenRank TOP30,揭示各区域开源项目总影响力与人均影响力
-
主题出现次数TOP15柱状图 - 柱状图统计开源项目技术主题的热门程度,展示hacktoberfest、python、AI、LLM等热门技术热点
-
协作效率概况趋势图 - 折线面积图展示issues_closed、issues_new、change_requests、change_requests_accepted的趋势变化(2015-2025年),支持全球/中国TOP5项目切换查看
-
中国开源生态区域分布热力图与条形图 - 热力地图展示中国各省份开发者数量、OpenRank总值、平均OpenRank的分布,以及开发者地域分布TOP10条形图
-
TOP10榜单图表 - 横向条形图展示全球/国内头部开源项目OpenRank榜单与企业活跃度榜单,直观呈现国内外项目与企业在开源生态中的影响力差距
-
热点技术主题词云图 - 词云图以字体大小体现开源技术/社区活动的热度,热门关键词包含hacktoberfest、python、AI、kubernetes等,支持交互查看具体出现次数
-
健康度总览图表 - 左侧为"项目类别×健康维度"热力矩阵(横轴为AI平台、前端框架等类别,纵轴为活跃度、协作效率等维度),右侧为单项目健康度雷达图(五轴对应健康维度),支持项目类别筛选交互
-
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如果使用 output.py 脚本,需要安装以下 Python 包:
pip install pandas openpyxlnpm 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个工作表)
npm run run:hourly输出文件:
output/excel/2024年中国Top10机构24小时贡献行为占比.xlsx(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个工作表:矩阵格式、雷达图、长格式)
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格式便于分析
npm run run:top5 # 生成Top5机构数据
npm run run:process # 处理Excel文件,按年份整合数据注意:需要先确保 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排名数据
npm run run:all所有输出文件保存在 output/ 文件夹中,按格式分类存储:
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排名)
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- 技术热点词数据
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个工作表)
可以在各个脚本文件中修改:
- 仓库列表:修改
repos数组,添加或删除需要分析的仓库 - 指标列表:修改
metrics数组,选择需要拉取的指标 - 输出路径:默认在
output/文件夹下,按格式分类存储到csv/、excel/、json/子文件夹,可在脚本中修改
数据来源于 OpenDigger OSS,通过 HTTP API 拉取各项目的指标数据。
数据来源于 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许可证文件
本项目只依赖以下包:
xlsx- Excel文件读写typescript- TypeScript编译@types/node和@types/xlsx- 类型定义
如果使用 output.py 脚本,需要安装以下 Python 包:
pip install pandas openpyxl| 任务 | 负责人 |
|---|---|
| 初赛PPT | 邵子翀、朱翎融 |
| 数据清洗 | 朱翎融 |
| 大屏制作 | 邵子翀、朱翎融 |
| 复赛PPT | 邵子翀、朱翎融 |
| 数据处理 | 邵子翀 |
| 视频录制 | 朱翎融 |
| 数据报告撰写 | 邵子翀 |
MIT