Skip to content
This repository was archived by the owner on Dec 10, 2025. It is now read-only.

LandfillLand/AstrBot_Plugins_CI

Repository files navigation

AstrBot Plugins CI

本仓库用于维护 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 脚本,按执行顺序拆分为配置、拉取原始数据、准备缓存、获取仓库信息、转换输出、检查差异、提交推送、清理与总结等子目录。

CI 流程概览

  1. configure_git:设置 Git 用户与安全目录。
  2. fetch_original_plugin_data:下载最新 plugins.json,写入 original_plugins.json
  3. load_existing_cache_for_fallback:复制现有 plugin_cache_original.jsonexisting_cache.json 以备回退。
  4. get_github_api_info_for_repositories:遍历插件仓库,调用 GitHub API 获取 stars、updated_at、metadata 版本、logo 等,失败时尽量沿用缓存。
  5. transform_plugin_data:使用 jq 合并原始清单、实时数据与缓存,过滤已删除仓库并生成新的 plugin_cache_original.json
  6. pull_latest_changes_before_checking_rebase_with_autostash:确保分支与远端同步,避免提交冲突。
  7. check_for_changes:校验 JSON 格式并判断是否相较远端有更新。
  8. commit_and_push_changes:仅在检测到差异时推送新的缓存文件。
  9. clean_up / summary:清理临时文件并输出执行总结。

本地调试指南

  1. 确保本地安装 bashcurljq,并准备好具有 repo 权限的 GitHub PAT。

  2. 在仓库根目录按顺序运行:

    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 了。

  3. 验证结果:

    jq 'keys | length' plugin_cache_original.json

    确认输出符合预期后再手动执行 check_for_changescommit_and_push_changes

如何提交插件

插件列表由官方仓库统一维护。请前往 AstrBot 主仓库提交 PR:发布插件指南

本仓库仅负责修改脚本和验证脚本行为,不接受直接修改插件信息的请求。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages