当前位置: 首页 > article >正文

如何用 GitHub Actions 自部署 GitHub Readme Stats,并统计私有仓库数据

目录背景介绍通过 GitHub Actions 自部署 GitHub Readme Stats如何使用 GitHub Actions 配置统计私有仓库数据1. 生成 Personal Access Token (PAT) 以统计私有仓库**如何生成 Personal Access Token (PAT)**2. 使用 GitHub Secrets 存储 PAT3. 为什么默认配置无法统计私有仓库4. 修改配置以支持私有仓库统计想要更好的阅读体验点击直接这里查看原文背景介绍经常逛 GitHub 的人应该都见过个人主页上的这种统计卡片。这背后常见的实现方案就是GitHub Readme Stats。它的统计原理是通过调用 GitHub API 获取用户的公共或私有数据然后通过动态生成的 SVG 图像呈现出来。但是最近由于用户量的增加GitHub Readme Stats的公共实例在 Vercel 上面临了流量和额度超限的问题导致许多用户无法加载其统计卡片。官方在其 GitHub 仓库的说明中指出这件事有多严重呢比如下面不仅我自己的统计无法显示甚至 GitHub Readme Stats 官方仓库的统计也无法显示了。官方声明中提到虽然公共实例通过缓存来提高稳定性但由于流量高峰和 API 限制卡片显示已经不再稳定。为了避免此问题官方建议用户自行托管服务如 Vercel 或其他平台或者使用GitHub Actions工作流生成卡片并存储在个人仓库中。下面就介绍一种几乎零维护的方案直接用 GitHub Actions 生成静态 SVG同时支持私有仓库统计。通过 GitHub Actions 自部署 GitHub Readme Stats为了避免公共实例的流量限制可以选择通过GitHub Actions自行部署 GitHub Readme Stats。这种方法最简单不需要自行设置服务器相比于自己部署 Vercel 服务它的部署过程更方便。只需要在个人 GitHub 仓库中配置一次 GitHub Actions 工作流GitHub 将自动为你生成并更新统计卡片避免了公共服务的限制。这个方法甚至不需要 fork 官方仓库只需要在自己的 README 仓库也就是与你 GitHub 用户名同名的仓库中新建一个 workflow 即可。比如我的仓库原来只有一个README.md文件现在只需要新建.github/workflows/github-readme-stats.yml填入以下内容name:Update README cardson:schedule:-cron:0 3 * * *# 每天更新一次workflow_dispatch:# 允许手动触发permissions:contents:write# 允许工作流提交生成后的 SVGjobs:build:runs-on:ubuntu-lateststeps:-uses:actions/checkoutv6-name:Generate stats carduses:readme-tools/github-readme-stats-actionv1with:card:statsoptions:username${{github.repository_owner}}show_iconstruepath:profile/stats.svgtoken:${{secrets.GITHUB_TOKEN}}-name:Generate top languages carduses:readme-tools/github-readme-stats-actionv1with:card:top-langsoptions:username${{github.repository_owner}}layoutcompactlangs_count6path:profile/top-langs.svgtoken:${{secrets.GITHUB_TOKEN}}-name:Commit cardsrun:|git config user.name github-actions[bot] git config user.email 41898282github-actions[bot]users.noreply.github.com git add profile/*.svg git commit -m Update README cards || exit 0 git push注意这里生成的图片位置分别是profile/stats.svg和profile/top-langs.svg所以需要你在README.md中把原来对公共实例的引用替换成本仓库里的静态文件例如![Stats](./profile/stats.svg) ![Top Languages](./profile/top-langs.svg)然后提交代码。由于上述配置是每天生成一次所以第一次通常需要你到 GitHub Actions 页面手动触发一次。如何使用 GitHub Actions 配置统计私有仓库数据1. 生成 Personal Access Token (PAT) 以统计私有仓库如果你希望通过GitHub Actions统计私有仓库的数据必须生成一个Personal Access Token (PAT)因为默认工作流中使用的GITHUB_TOKEN更适合当前仓库内的自动化操作并不适合拿来读取你账号下所有私有仓库的统计信息。要统计私有仓库数据更稳妥的做法是使用你自己创建的PAT。如何生成 Personal Access Token (PAT)登录 GitHub访问 GitHub 并登录到你的账户。进入开发者设置在 GitHub 首页右上角点击头像选择Settings。在左侧菜单中选择Developer settings。生成 Personal Access Token在Developer settings中选择Personal access tokens。如果只是为了统计私有仓库建议直接使用Tokens (classic)。点击Generate new token创建一个新的 token。根据 GitHub Readme Stats 官方说明如果要读取私有仓库统计至少需要以下权限repo允许访问私有仓库。read:user访问用户数据用于获取贡献信息等。官方文档还提到fine-grained token在这个场景下对私有贡献统计并不理想因此这里更推荐 classic PAT。生成并保存 Token设置Token description例如 “GitHub Stats Token”并选择所需的权限。点击Generate token生成后保存好这个 Token。注意PAT生成后只能在此页面显示一次因此请务必将其保存好。如果丢失你将无法查看这个 Token只能重新生成。2. 使用 GitHub Secrets 存储 PAT为了避免将PAT直接暴露在工作流文件中这将会泄露敏感信息我们使用GitHub Secrets来存储 Token。GitHub Secrets是加密存储的环境变量它可以在 GitHub Actions 中安全地使用而不会被公开。进入仓库的 Settings在 GitHub README 这个仓库也就是与你用户名同名的仓库页面点击右上角的Settings。创建新的 Secret在左侧菜单中选择Secrets and variables→Actions。点击New repository secret。在Name中输入GH_TOKEN这是我们后续在工作流文件中使用的环境变量名称。在Value中粘贴你生成的Personal Access Token (PAT)。点击Add secret保存。在 GitHub Actions 中使用 Secret你可以通过${{ secrets.GH_TOKEN }}来引用在Secrets中存储的 Token。3. 为什么默认配置无法统计私有仓库上面官方给出的基础配置无法统计私有仓库数据是因为在那个配置中使用的是token: ${{ secrets.GITHUB_TOKEN }}根据 GitHub Readme Stats 官方文档默认的GITHUB_TOKEN仅适用于公开统计如果要统计私有仓库则需要改用带repo和read:user权限的PAT。4. 修改配置以支持私有仓库统计为了确保 GitHub Actions 能统计私有仓库的数据我们需要修改配置文件使用Personal Access Token (PAT)并将其存储在GitHub Secrets中。以下是完整的工作流配置name:Update README cardson:schedule:-cron:0 6 * * *# 每天早上6点更新workflow_dispatch:# 允许手动触发permissions:contents:write# 允许 GitHub Actions 写入仓库内容jobs:build:runs-on:ubuntu-lateststeps:-uses:actions/checkoutv6-name:Generate stats carduses:readme-tools/github-readme-stats-actionv1with:card:statsoptions:username${{github.repository_owner}}show_iconstruepath:profile/stats.svgtoken:${{secrets.GH_TOKEN}}# 使用 GitHub Secrets 中存储的 PAT-name:Generate top languages carduses:readme-tools/github-readme-stats-actionv1with:card:top-langsoptions:username${{github.repository_owner}}layoutcompactlangs_count6path:profile/top-langs.svgtoken:${{secrets.GH_TOKEN}}-name:Commit cardsrun:|git config user.name github-actions[bot] git config user.email 41898282github-actions[bot]users.noreply.github.com git add profile/*.svg git commit -m Update README cards || exit 0 git push配置解析permissions: contents: write确保 GitHub Actions 有权限将生成的卡片推送到仓库。token: ${{ secrets.GH_TOKEN }}使用存储在 GitHub Secrets 中的PAT允许读取私有仓库统计数据。top-langs额外生成语言分布卡片避免只生成总览 stats 卡片。cron: 0 6 * * *设置工作流每天凌晨六点自动更新统计卡片。这种方法也有缺点就是更新不够及时比如我的配置是一天一次。但是因为这个方法实在太简单太方便了足以抵消这些缺点。

相关文章:

如何用 GitHub Actions 自部署 GitHub Readme Stats,并统计私有仓库数据

目录背景介绍通过 GitHub Actions 自部署 GitHub Readme Stats如何使用 GitHub Actions 配置统计私有仓库数据1. 生成 Personal Access Token (PAT) 以统计私有仓库**如何生成 Personal Access Token (PAT)**:2. 使用 GitHub Secrets 存储 PAT3. 为什么默认配置无法…...

s10_团队协议设计:为什么多智能体协作不能只靠发消息

团队协议设计:为什么多智能体协作不能只靠发消息 很多人第一次做多智能体协作时,直觉都是:只要能让队友之间互相发消息,团队就算搭起来了。 这个想法不算错,但只对了一半。 s09 确实已经把“常驻队友 文件邮箱 线…...

多层循环神经网络|Multi-layer RNNs

----------------------------------------------------------------------------------------------- 这是我在我的网站中截取的文章,有更多的文章欢迎来访问我自己的博客网站rn.berlinlian.cn,这里还有很多有关计算机的知识,欢迎进行留言或…...

QMCDecode终极解决方案:突破QQ音乐加密格式限制的完全指南

QMCDecode终极解决方案:突破QQ音乐加密格式限制的完全指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默…...

猫抓浏览器资源嗅探扩展完全指南:从新手到高手的蜕变之路

猫抓浏览器资源嗅探扩展完全指南:从新手到高手的蜕变之路 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 网络上丰富的视频、音频和图片…...

RPA文件深度解析与高效提取指南:从原理到实战的完整解决方案

RPA文件深度解析与高效提取指南:从原理到实战的完整解决方案 【免费下载链接】unrpa A program to extract files from the RPA archive format. 项目地址: https://gitcode.com/gh_mirrors/un/unrpa 问题定位:RPA文件的技术挑战与解决方案 识别…...

香橙派3B部署OpenClaw(提供完整的教程文档)

OpenClaw 安装与配置指南 系统要求 Node.js 版本:≥ 22.0操作系统:Windows 10、MacOS 12 或 Linux(Ubuntu 20.04、Debian 11)硬件要求:RAM 最低 2GB(推荐 4GB),磁盘空间至少 500Mb(推荐 1GB 以…...

告别乱码!用.editorconfig一劳永逸解决Unity团队编码冲突(附完整配置)

告别乱码!用.editorconfig一劳永逸解决Unity团队编码冲突(附完整配置) 团队协作开发Unity项目时,最令人头疼的问题之一莫过于编码格式不统一导致的乱码。想象一下这样的场景:你精心编写的C#脚本在同事的电脑上打开时&a…...

DAMOYOLO-S模型Android端集成实战:移动端实时检测应用开发

DAMOYOLO-S模型Android端集成实战:移动端实时检测应用开发 如果你是一名Android开发者,想在自己的App里加入实时物体检测功能,比如识别摄像头里的猫猫狗狗、车辆行人,但又担心模型太大、速度太慢,那今天这个实战项目就…...

华硕笔记本合盖不休眠解决方案:GHelper智能模式完全指南

华硕笔记本合盖不休眠解决方案:GHelper智能模式完全指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, …...

火灾现场的无人机防御系统

2026年,XPrize参赛团队将继续角逐,力争防控灾害于萌芽阶段。在外行人眼中,眼前这架Alta X无人机要完成的似乎并不是一项特别复杂的任务。这架翼展超2米的黑色大型四旋翼无人机停在草坪上,起落架两个撑脚之间挂着一个注满水的红色气…...

支持向量机避坑指南:当你的SVM分类效果差时该检查这5个参数

支持向量机避坑指南:当你的SVM分类效果差时该检查这5个参数 在机器学习实践中,支持向量机(SVM)因其出色的分类性能而广受欢迎,但许多开发者在调参过程中常常陷入困境。本文将深入剖析影响SVM性能的五大关键参数&#x…...

RevokeMsgPatcher革新性防撤回解决方案:让重要消息不再消失

RevokeMsgPatcher革新性防撤回解决方案:让重要消息不再消失 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitco…...

别死记硬背!用‘丢失’和‘保留’的视角,5分钟搞懂线性代数里的秩-零化度定理

别死记硬背!用‘丢失’和‘保留’的视角,5分钟搞懂线性代数里的秩-零化度定理 线性代数里那些抽象的概念和公式,是不是总让你头疼不已?尤其是那个看起来莫名其妙的秩-零化度定理:dim(ker T) dim(im T) dim(V)。别担心…...

用快马平台实践vibe coding:五分钟生成你的音乐心情可视化原型

今天想和大家分享一个特别有趣的小项目——用InsCode(快马)平台快速实现音乐心情可视化网页。这个项目的灵感来源于vibe coding理念,也就是通过编程直接表达当下的情绪和氛围。整个过程就像用代码画画一样直观,特别适合创意型开发者。 项目构思 我想要做…...

从白炽灯到LED:聊聊那些“不听话”的非线性元件(附特性曲线解读)

从白炽灯到LED:聊聊那些“不听话”的非线性元件(附特性曲线解读) 记得我第一次用电阻给LED限流时,那颗蓝色LED在我眼前发出"啪"的一声轻响就永远熄灭了。那时我才明白,电路世界里不是所有元件都像电阻那样&q…...

实战应用:用快马生成生产级服务器巡检与故障排查工具,告别xshell单点操作

最近在团队里负责服务器运维工作,经常需要处理各种突发故障。每次打开xshell手动敲命令排查问题,不仅效率低,还容易遗漏关键检查项。于是我用InsCode(快马)平台开发了一个自动化巡检工具,彻底告别了单点操作的时代。分享下这个实战…...

国产AI编程越级Claude,Qwen3.6-Plus发布:你该知道的3件事

国产AI,在代码这件事上,赢了阿里4月2日发布了Qwen3.6-Plus,新一代大模型。在最权威的编程评测(SWE-bench Verified)里,它的表现超越了Claude 3.7 Sonnet——2倍,甚至3倍。不是"接近"&…...

用Notepad++打开PLY文件:手把手教你读懂三维点云与网格数据的‘源代码’

用Notepad打开PLY文件:手把手教你读懂三维点云与网格数据的‘源代码’ 当你第一次拿到一个PLY文件时,可能会感到困惑——这个看似普通的文本文件,如何承载复杂的三维世界?就像程序员通过阅读源代码理解软件逻辑一样,我…...

终极视频修复指南:如何用Untrunc免费恢复损坏的MP4、MOV视频文件

终极视频修复指南:如何用Untrunc免费恢复损坏的MP4、MOV视频文件 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc …...

突破系统壁垒:APK Installer实现Windows运行安卓应用的技术方案

突破系统壁垒:APK Installer实现Windows运行安卓应用的技术方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 随着跨平台应用需求的增长,Wind…...

BaiduPCS-Web完全指南:彻底告别百度网盘限速的终极解决方案

BaiduPCS-Web完全指南:彻底告别百度网盘限速的终极解决方案 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 还在为百度网盘令人绝望的下载速度而烦恼吗?当你急需下载重要文件时,几十KB/s的…...

为你的项目量身定制,基于快马ai生成openclaw实战集成安装方案

最近在做一个图像处理相关的项目,需要在Ubuntu服务器上集成OpenClaw来处理图像数据,同时还要和OpenCV协同工作。整个过程踩了不少坑,今天就把我的实战经验分享给大家,特别是如何利用InsCode(快马)平台来快速生成定制化的安装方案。…...

循环神经网络:浅析RNN、LSTM与BiLSTM的算法思想

NLP-AHU-015 本文配图LSTM部分搬运了Understanding LSTM Networks -- colahs blog 循环神经网络是深度学习领域中处理序列数据的核心架构,通过引入循环连接机制,使网络能够处理具有时间依赖关系的序列数据。然而,传统RNN在长序列训练中面临…...

AgentCPM-Report开源模型教程:Pixel Epic在科研团队中的协作部署实践

AgentCPM-Report开源模型教程:Pixel Epic在科研团队中的协作部署实践 1. 项目介绍与核心价值 Pixel Epic是一款基于AgentCPM-Report大模型构建的创新型研究报告辅助工具。它将枯燥的科研工作流程转化为充满游戏化体验的交互过程,让团队成员在轻松愉悦的…...

2026.4.5

线段树&#xff0b;lazy标记#include<bits/stdc.h> using namespace std; #define int long long #define N 100004 int num[N],tree[4*N],n,q,ans; int len[4*N],lazy[4*N]; char op; int a1,a2,a3; void updata(int xx) {tree[xx]tree[xx*2]tree[xx*21];len[xx]len[xx*…...

IEEE LaTeX投稿被要求修改?手把手教你用color宏包高亮新增参考文献(附代码)

IEEE LaTeX投稿返修指南&#xff1a;精准高亮新增参考文献的实战方案 收到期刊审稿意见要求"高亮修改部分"时&#xff0c;许多研究者会陷入格式调整的困境——特别是当需要标记新增参考文献而又不破坏IEEE模板严谨的排版规范时。传统方法要么会改变文献条目整体格式&…...

OpenClaw技能扩展指南:安装Qwen3-4B驱动的内容处理模块

OpenClaw技能扩展指南&#xff1a;安装Qwen3-4B驱动的内容处理模块 1. 为什么需要技能扩展&#xff1f; 上周我整理项目文档时&#xff0c;面对十几个Markdown文件的手动合并操作&#xff0c;突然意识到&#xff1a;OpenClaw的默认能力可能无法满足深度内容处理需求。这正是技…...

使用VESTA快速生成XRD标准图谱:从CIF文件到可视化分析

1. 从零开始&#xff1a;获取CIF文件与VESTA基础操作 搞材料研究的朋友们应该都遇到过这种情况&#xff1a;手头有套晶体结构数据&#xff0c;想快速验证下XRD图谱是否匹配理论值。这时候VESTA就是你的神器。我第一次用这软件时&#xff0c;被它的可视化效果惊艳到了——原来晶…...

Omni-Vision Sanctuary在VMware虚拟机中的隔离部署方案

Omni-Vision Sanctuary在VMware虚拟机中的隔离部署方案 1. 为什么需要虚拟机隔离部署 在AI模型的实际应用中&#xff0c;环境隔离是个经常被忽视但非常重要的问题。想象一下&#xff0c;你正在开发一个基于Omni-Vision Sanctuary的视觉分析系统&#xff0c;突然因为某个依赖库…...