关注的项目太多,每次都要手动去看有没有更新。
写了个 agent,每小时检查一次我 star 的项目,有新 release 就推送到微信。
技术栈:
- GitHub API 拉取 release 列表
- Redis 记录上次检查的版本
- 微信模板消息推送
const axios = require('axios');
const Redis = require('ioredis');
const redis = new Redis();
async function checkReleases() {
const repos = await getStarredRepos();
for (const repo of repos) {
const releases = await axios.get(
`https://api.github.com/repos/${repo}/releases`
);
const latest = releases.data[0];
const lastVersion = await redis.get(`release:${repo}`);
if (latest.tag_name !== lastVersion) {
await sendNotification(repo, latest);
await redis.set(`release:${repo}`, latest.tag_name);
}
}
}
现在每天能收到 5-10 条更新通知,不会再错过重要版本了。