本仓库用于维护 AstrBot 插件市场所需的 workflow,通过自动化脚本定期从官方插件清单及 GitHub 仓库同步元信息,生成可直接被 AstrBot 仪表盘消费的 plugin_cache_original.json。
plugins.json:来自 AstrBotDevs/AstrBot_Plugins_Collection 的原始插件清单,只包含作者提交的静态字段。plugin_cache_original.json:CI 产出的增强版清单,在原始数据基础上补充 stars、版本、更新时间、logo 等动态字段,并保留缓存回退逻辑。scripts/transform_plugin_data/:流水线各阶段的 Bash 脚本,按执行顺序拆分为配置、拉取原始数据、准备缓存、获取仓库信息、转换输出、检查差异、提交推送、清理与总结等子目录。
- configure_git:设置 Git 用户与安全目录。
- fetch_original_plugin_data:下载最新
plugins.json,写入original_plugins.json。 - load_existing_cache_for_fallback:复制现有
plugin_cache_original.json到existing_cache.json以备回退。 - get_github_api_info_for_repositories:遍历插件仓库,调用 GitHub API 获取 stars、updated_at、metadata 版本、logo 等,失败时尽量沿用缓存。
- transform_plugin_data:使用 jq 合并原始清单、实时数据与缓存,过滤已删除仓库并生成新的
plugin_cache_original.json。 - pull_latest_changes_before_checking_rebase_with_autostash:确保分支与远端同步,避免提交冲突。
- check_for_changes:校验 JSON 格式并判断是否相较远端有更新。
- commit_and_push_changes:仅在检测到差异时推送新的缓存文件。
- clean_up / summary:清理临时文件并输出执行总结。
-
确保本地安装
bash、curl、jq,并准备好具有repo权限的 GitHub PAT。 -
在仓库根目录按顺序运行:
bash scripts/transform_plugin_data/configure_git/run.sh bash scripts/transform_plugin_data/fetch_original_plugin_data/run.sh bash scripts/transform_plugin_data/load_existing_cache_for_fallback/run.sh bash scripts/transform_plugin_data/get_github_api_info_for_repositories/run.sh bash scripts/transform_plugin_data/transform_plugin_data/run.sh
如需模拟限流,多次运行 action 便好,将近 800 个仓库足够在短时间达到 403 了。
-
验证结果:
jq 'keys | length' plugin_cache_original.json确认输出符合预期后再手动执行
check_for_changes与commit_and_push_changes。
插件列表由官方仓库统一维护。请前往 AstrBot 主仓库提交 PR:发布插件指南。
本仓库仅负责修改脚本和验证脚本行为,不接受直接修改插件信息的请求。