Deploy Public

🚢 一键同步私有代码至开源仓库

自动化同步私有仓库至公开镜像,自动处理PR创建、合并与Release同步,适合开源代码发布流程。

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

使用说明

核心用法

deploy-public 是一个专用于私有仓库向公开仓库同步的自动化脚本工具。用户通过 CLI 执行 bash scripts/deploy-public.sh /path/to/private-repo org/public-repo,工具会自动完成以下操作:

1. 克隆与隔离:将目标公开仓库克隆至临时目录
2. 智能过滤复制:复制私有仓库全部内容,自动排除 ai/ 目录(可能包含敏感AI提示词或内部文档)和 .git/ 目录

3. 自动化PR流程:创建新分支、提交变更、推送至远程、发起Pull Request

4. 强制合并策略:使用常规合并(regular merge),禁用 squash 以保持完整提交历史

5. Release 同步:从私有仓库的 GitHub Releases 拉取发布说明,同步至公开仓库对应版本

依赖要求

  • git、gh (GitHub CLI)、bash 环境
  • 需预先创建公开仓库,且命名遵循 *-private 对应规则
  • 必须先于 wip-release 创建 Release 后执行,否则公开 Release 将为空

显著优点

  • 流程标准化:将开源发布工作流封装为单一命令,降低人工操作失误
  • 敏感信息隔离:通过 ai/ 目录硬编码排除机制,防止内部AI提示词泄露
  • Release 一致性:自动同步发布说明,避免手动复制粘贴的遗漏
  • 历史完整性:强制 regular merge 保留完整提交记录,便于追溯

潜在局限

  • 硬编码路径依赖ai/ 排除规则为固定实现,无法通过配置扩展其他敏感路径
  • 单仓库绑定:每次调用仅处理一对公私仓库,大规模多仓库场景需外部编排
  • GitHub 生态锁定:依赖 gh CLI 和 GitHub Releases,不支持 GitLab、Gitee 等平台
  • 无冲突处理机制:若公开仓库存在未预期变更,可能引发合并冲突导致失败

适合人群

  • 采用 private development + public release 模式的开源维护者
  • 需要在发布前审核代码、但希望自动化后续同步步骤的 DevOps 工程师
  • 使用 GitHub 作为主力平台,且已建立规范 Release 流程的技术团队

常规风险

| 风险点 | 说明 |
|--------|------|
| **敏感信息泄露** | 若开发者误将机密文件置于 `ai/` 外,同步后将公开暴露;建议配合 pre-push hook 扫描 |
| **Release 顺序依赖** | 未执行 `wip-release` 直接运行会导致公开 Release 空笔记,需人工补全 |
| **权限配置** | gh CLI 需具备目标仓库的 write 权限及 PR 合并权限,令牌泄露风险 |
| **临时目录残留** | 异常中断可能遗留临时克隆目录,需定期清理 `/tmp` 或对应路径 |

> 安全提示:该技能报告为系统占位生成,未执行实际安全扫描,生产环境使用前建议进行 SAST 审计和 secrets 扫描。

Deploy Public 内容

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