我正在努力将派生到分叉仓库的PR重定向到基础仓库。
说
我有一个名为Base
的基本存储库,该存储库是私有的,并包含一些单元测试。
然后,我从Base
创建了一个名为Forked
的分支仓库,该仓库是公共的。
之后,我对Base
存储库进行了新提交,添加了一些私有单元测试。
如果某人打开了Forked
仓库的PR,我可以借助Base
事件通知repository_dispatch
仓库。有关这些过程的信息,请查看here.
但是,我无法为Base
回购创建自动PR来运行私有单元测试。
我想针对针对Forked
回购的PR运行私有单元测试,并且我不想公开私有单元测试。
我被困在这里,进行了很多研究,但距离还很近。 而且我正在使用JavaCI。
答案 0 :(得分:0)
可能值得再看一下代码的组织方式。我建议将您的私人测试与您的公开代码完全分开。这将简化一些事情,并有助于避免将来发生合并冲突。
我有几个解决方案,但是它们可能会要求您从头开始构建自己的动作。 (我以前没有处理过调度事件,因此您可能需要稍微调整一下我的解释才能使用它。)希望它可以使您朝着正确的方向指出!
在代码公开的情况下,您可以在私有存储库上将操作设置为clone the public code from the pull request,设置测试环境并运行私有测试。但是,这会使您的测试和测试状态保持私有状态,因此可能没什么用。
或者,您可以使用secrets存储专用存储库的凭据,并设置操作以克隆专用测试,设置测试环境并运行专用(和公用?)测试。尽管这会使测试 status 的状态公开,但它有可能使测试不公开。但是,您需要注意避免泄漏测试的输出(例如,测试名称,异常和其他输出),否则某些数据可能会公开。根据测试的设置方式,针对公开测试设置一项操作,针对私有测试设置另一项操作可能更有意义,因为您可以将 all 输出重定向到/dev/null
或等效项。