如何在AOSP私有GitHub仓库中替代repo upload完成代码推送与评审?
AOSP私有模块代码推送与评审的解决方案
问题本质
repo upload默认和AOSP官方Gerrit(android-review.googlesource.com)绑定,你的私有模块托管在GitHub私有仓,用这个命令会直接把私有代码推到公开平台,绝对不能这么操作。
具体解决办法
1. 让repo跳过私有模块的上传
在你的manifest.xml里,给私有模块添加review=""属性,这样repo工具执行repo upload时会自动忽略这个模块:
<project name="your-private-org/your-private-repo" path="path/to/module" remote="github" review="" />
之后执行repo upload只会处理AOSP原生模块的变更,私有模块不会被推送。
2. 用GitHub原生流程处理私有模块
既然是GitHub私有仓,直接用Git命令配合PR流程就行,完全不用依赖repo:
- 提交变更:
git add . && git commit -m "fix: 修复xxx问题" - 推送到私有仓分支:
git push origin feature/xxx - 去GitHub仓库页面手动开PR邀人评审;如果要自动化,写个GitHub Actions脚本,推送后自动创建PR,还能触发CI检查。
3. 搭私有Gerrit适配repo(进阶)
如果想保留repo的统一管理体验,可以自己搭一台私有Gerrit服务器,然后在manifest里给私有模块指定这个Gerrit地址:
<project name="your-private-org/your-private-repo" path="path/to/module" remote="github" review="your-private-gerrit.example.com" />
这样repo upload会把私有模块的变更推送到你的私有Gerrit,既用了repo的批量操作,又不会泄露代码。
总结
- 新手友好方案:给私有模块加
review="",用GitHub PR流程,简单直接。 - 统一管理方案:搭私有Gerrit,适配repo的上传逻辑,保持原有工作流。
内容的提问来源于stack exchange,提问作者Jian Guo
相关产品推荐
相关产品推荐

