2026-09-01 · 原文发布日
GitHub热榜日报推送到钉钉
n8n模板:每天九点抓GitHub Trending日榜前N个项目及星标数据,可选抓取README截断后交OpenAI兼容接口生成中文要点JSON,渲染成单页HTML上传到htmlhoster得到公开链接,再组装成带摘要和链接的签名消息推到钉钉或飞书群机器人。
原文要点
这是n8n.io上一个免费模板:每天09:00由cron触发,抓取GitHub Trending日榜并解析前N个仓库的星标、分叉、语言、今日新增星数;可选拉取raw.githubusercontent.com上的README并截断到设定字符数;交给OpenAI兼容Chat Completions接口生成中文要点JSON;渲染成单文件HTML报告,经htmlhoster agent上传得到公开链接;最后用签名webhook把摘要、榜首项目和报告链接推到钉钉或飞书群机器人。AI调用失败时回退为原始列表渲染。上传的htmlhoster报告是公开的且受上传限制约束。
这次做成什么
在本站练习中复刻这套「抓取→摘要→发布→推送」链条:先在n8n模板页导入原模板,再用一份本站虚构的仓库数据手动跑通摘要与钉钉消息组装环节,验证字段映射和签名逻辑,最后再放开每日定时。本站不提供可导入JSON,原模板需从n8n.io模板页导入。
准备什么
- 一个可登录的n8n实例,能访问GitHub与raw.githubusercontent.com
- OpenAI兼容接口的token,在n8n建Generic Header Auth凭据
- 钉钉或飞书群机器人webhook地址,启用加签时要有签名密钥
- 一个htmlhoster账号或agent用于上传HTML获取公开链接
具体怎么做
导入并核对模板
在n8n.io/workflows/18961页面点导入到自己的n8n,逐个节点确认:cron触发器每天09:00、HTTP请求拉GitHub Trending、解析节点提取stars/forks/language/今日新增星、可选README抓取与截断长度设置。这些节点名以原模板为准,本站未实测界面。
配置三类凭据
在n8n凭据里新建Generic Header Auth,Header名Authorization、值Bearer 你的token;在配置节点填入兼容接口URL与模型名;把钉钉机器人webhook和加签secret填进推送节点对应字段,飞书同理。
用合成数据手动跑通
先关掉cron,点Execute workflow手动执行。为避免真实抓取失败干扰,可在解析节点后临时接一个Set节点注入下方测试数据,观察摘要节点输出是否为JSON、HTML渲染是否完整、htmlhoster是否返回公开URL。
核对钉钉消息与签名
检查推送节点发出的消息体包含短摘要、top项目列表和报告链接;启用加签时确认timestamp与sign参数按密钥生成,机器人返回errcode为0才算送达。
放开定时并控制成本
确认手动跑通后重新启用cron。按原模板提示调整仓库数量N、是否抓README、README截断字符数来控制运行时长与token消耗,先设小值试运行几天再加大。
可直接复制的材料
注入用的合成仓库测试数据
本站虚构练习数据,用于替代真实抓取结果做手动测试;接入真实流程后删除该Set节点。
[{"rank":1,"name":"demo-org/flow-lens","language":"TypeScript","stars":48210,"forks":3105,"stars_today":612,"readme":"Flow Lens 是一个虚构的可视化工作流调试工具,支持节点级日志回放与数据快照对比。"},{"rank":2,"name":"demo-org/paper-cache","language":"Python","stars":15890,"forks":940,"stars_today":285,"readme":"Paper Cache 是一个虚构的本地文献缓存与引用管理库,提供增量索引命令行。"},{"rank":3,"name":"demo-org/tiny-tuner","language":"Rust","stars":9340,"forks":512,"stars_today":198,"readme":"Tiny Tuner 是一个虚构的嵌入式参数调优框架,主打零依赖单二进制分发。"}]中文要点JSON摘要提示词
本站独立编写的练习提示词,与原模板内置提示词不同;日期由流程注入或让模型填当天。
你是技术趋势编辑。下面是今日GitHub Trending上榜仓库的JSON数据,包含名称、语言、总星数、分叉数、今日新增星数和README节选。请只输出一个JSON对象,不要输出任何其他文字或代码围栏。结构为:{"date":"今天日期YYYY-MM-DD","overview":"一句不超过60字的全榜趋势概述","items":[{"name":"仓库全名","insight":"不超过40字的中文要点,说明它解决什么问题、为何值得关注","tag":"从 工具/框架/库/模型/教程 中选一个"}]},items按输入顺序覆盖全部仓库。输入数据如下:输入与输出示例
本站虚构演示输出,非模型实际返回;字段与输入一一对应。
输入
用上方合成数据中的三条仓库(flow-lens今日+612星、paper-cache今日+285星、tiny-tuner今日+198星)连同README节选一起发给摘要提示词。对应输出
{"date":"2026-09-02","overview":"今日热榜集中在开发者工具链,可视化调试与轻量调优项目涨幅明显。","items":[{"name":"demo-org/flow-lens","insight":"给自动化工作流加上节点级日志回放,排查分支错误更直观","tag":"工具"},{"name":"demo-org/paper-cache","insight":"本地文献缓存加增量索引,适合离线管理引用","tag":"库"},{"name":"demo-org/tiny-tuner","insight":"零依赖单二进制的嵌入式调优框架,部署门槛低","tag":"框架"}]}做完检查这些
- 摘要节点输出是合法JSON且items数量与输入仓库数一致,无代码围栏包裹
- htmlhoster上传后返回可公开访问的http链接,浏览器匿名窗口能打开报告页
- 钉钉机器人返回errcode为0,群里收到的消息包含摘要、top项目和报告链接
- 关闭AI凭据或让接口报错时,流程回退渲染原始仓库列表而不是整体失败
容易卡住的地方
- htmlhoster上的报告是公开的,别把含内部信息的摘要写进HTML;上传量受该平台限制
- 钉钉机器人若开启加签,缺secret或签名算法不对会被拒收,需在机器人设置里核对
- 环境无法访问raw.githubusercontent.com时README抓取会失败,可先关掉该开关跑通主链路
- cron默认每天09:00触发,导入后先手动测试再启用,避免配置没填完就空跑
- 精确token费用与耗时取决于所选模型与N值,本站不做估算
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Summarize GitHub trending repos with OpenAI and share via htmlhoster and DingTalk
- 原作者
- ethandavis
- 原始发布日期
- 2026-09-01T00:39:14.340Z
- 来源
- https://n8n.io/workflows/18961