Github操作:叉式仓库发生PR时,向基本仓库创建拉取请求

时间:2020-01-22 18:06:30

标签: github pull-request github-actions

我正在努力将派生到分叉仓库的PR重定向到基础仓库。

我有一个名为Base的基本存储库,该存储库是私有的,并包含一些单元测试。 然后,我从Base创建了一个名为Forked的分支仓库,该仓库是公共的。 之后,我对Base存储库进行了新提交,添加了一些私有单元测试。

如果某人打开了Forked仓库的PR,我可以借助Base事件通知repository_dispatch仓库。有关这些过程的信息,请查看here.

但是,我无法为Base回购创建自动PR来运行私有单元测试。

我想针对针对Forked回购的PR运行私有单元测试,并且我不想公开私有单元测试。

我被困在这里,进行了很多研究,但距离还很近。 而且我正在使用JavaCI。

1 个答案:

答案 0 :(得分:0)

可能值得再看一下代码的组织方式。我建议将您的私人测试与您的公开代码完全分开。这将简化一些事情,并有助于避免将来发生合并冲突。

我有几个解决方案,但是它们可能会要求您从头开始构建自己的动作。 (我以前没有处理过调度事件,因此您可能需要稍微调整一下我的解释才能使用它。)希望它可以使您朝着正确的方向指出!

在代码公开的情况下,您可以在私有存储库上将操作设置为clone the public code from the pull request,设置测试环境并运行私有测试。但是,这会使您的测试和测试状态保持私有状态,因此可能没什么用。

或者,您可以使用secrets存储专用存储库的凭据,并设置操作以克隆专用测试,设置测试环境并运行专用(和公用?)测试。尽管这会使测试 status 的状态公开,但它有可能使测试不公开。但是,您需要注意避免泄漏测试的输出(例如,测试名称,异常和其他输出),否则某些数据可能会公开。根据测试的设置方式,针对公开测试设置一项操作,针对私有测试设置另一项操作可能更有意义,因为您可以将 all 输出重定向到/dev/null或等效项。