Deploy Public

🚢 私有代码一键开源,自动同步发布

一键将私有仓库代码同步至公开镜像,自动创建 PR、合并并同步发布说明,适合开源项目的双仓维护流程。

收藏
2.9k
安装
1.4k
版本
1.9.63
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

deploy-public 是一个 Bash 脚本工具,专为实现「私有开发 → 公开发布」的仓库同步流程而设计。使用时只需执行一行命令,指定本地私有仓库路径及目标公开仓库(格式:org/repo-name),脚本即可自动完成以下操作:克隆公开仓库临时副本 → 将私有仓库代码(自动排除 ai/ 与 .git 目录)覆盖复制 → 创建新分支并推送 → 在 GitHub 发起 Pull Request → 执行常规合并(非 squash)→ 同步 GitHub Releases 的发布说明。

显著优点

  • 流程标准化:将原本分散的手动操作(复制文件、创建 PR、合并、同步 release)封装为单一命令,降低人为操作失误风险。
  • Release 同步能力:能够从私有仓库的 GitHub Release 中提取发布说明并同步至公开仓库,确保变更日志的连续性。
  • 轻量依赖:仅依赖 git、GitHub CLI (gh) 和 bash,无额外运行时环境要求。
  • 开源友好:采用 MIT 许可,允许自由修改和分发。

潜在缺点与局限性

  • 强制依赖顺序:必须先完成私有仓库的 PR 合并并运行 wip-release 创建 release,才能执行 deploy-public;若顺序颠倒,公开仓库的 release notes 将为空。
  • 硬编码排除规则:ai/ 目录被强制排除,若用户需要保留该目录或自定义排除规则,需修改源码。
  • 合并策略固定:仅支持 regular merge,不支持 squash 或 rebase 合并,可能与部分团队的 Git 工作流冲突。
  • 无冲突处理机制:若公开仓库存在与私有仓库冲突的修改,脚本未提供自动冲突解决逻辑。
  • 首次 setup 需手动:要求公开仓库已存在于 GitHub,不支持自动创建远程仓库。

适合人群

  • 采用「私有开发 + 公开镜像」双仓模式的开源项目维护者
  • 需要定期将内部代码脱敏后发布到公开仓库的开发者
  • 已使用 GitHub CLI 并熟悉命令行操作的 DevOps 工程师

常规风险

  • Token 权限风险:依赖 gh CLI 的认证状态,若使用个人访问令牌,需确保具备目标仓库的写入及 PR 合并权限。
  • 敏感信息泄露:虽然排除 ai/ 目录,但若私有仓库其他位置包含敏感信息(如密钥、内部配置),复制操作将导致泄露。
  • Release 数据丢失风险:若未按正确顺序执行,公开仓库的 release notes 将为空,影响用户感知。
  • 临时目录残留:脚本使用临时目录克隆公开仓库,若执行中断可能产生残留文件。

Deploy Public 内容

手动下载zip · 5.7 kB
deploy-public.shtext/x-shellscript
请选择文件