用途:把 plugins.v2/<plugin_id_lower>/ 或 plugins/<plugin_id_lower>/ 下的单个 MoviePilot 本地插件发布到 GitHub 仓库,并维护其包条目。
主要能力:预览本地与远程差异;推送变更并合并该插件的 package.v2.json 或 package.json 条目;从远程拉取插件文件回本地;在用户明确选择自动创建时创建目标仓库(默认 public)。可复用 MoviePilot 设置中的 GITHUB_TOKEN、REPO_GITHUB_TOKEN 和 PLUGIN_LOCAL_REPO_PATHS。
使用方式:通过 scripts/publish_plugin.py 执行确定性操作,例如 preview、push、pull、create-repo。常用参数包括 --repo、--plugin-id、--local-repo、--package-version,以及 --create-repo-if-missing、--delete-remote、--force、--include、--exclude、--dry-run、--proxy。
适用场景:发布或更新本地插件、同步远程插件代码到本地、对比本地与远程差异、创建插件仓库。
限制与安全规则:推送前应先运行 preview,除非用户明确要求直接推送且已审阅差异;仓库未知时需询问使用已有仓库还是自动创建;仅在用户明确选择自动创建后才执行 create-repo 或 push --create-repo-if-missing;默认排除 .env、config/、data/、cache/、logs/、node_modules/ 等敏感或运行时文件;不得覆盖其他插件的包条目;不得打印 token;拉取时除非使用 --force,否则拒绝覆盖有差异的本地文件。Vue 联邦插件的 dist/assets/ 构建产物应发布。具体插件开发规则见 skills/create-moviepilot-plugin/SKILL.md。