防止计划的 GitHub 操作被禁用

Mat*_*ski 8 github github-api github-actions

我是一些 Julia GitHub 存储库的维护者,这些存储库通过 cron 使用 GitHub Actions 进行夜间 CI 运行。其中一些软件包几个月都没有得到维护,但在生态系统中使用,我想让它们保持活跃。GitHub 的当前政策是在 60 天内没有发生存储库活动时禁用这些操作。

我想知道是否有定义什么存储库活动是为了防止操作被禁用。这是评论一个问题那么简单吗?还是需要将提交推送到主分支?

其次,有没有人找到保持存储库活跃的好解决方案?我正在考虑创建一个每 59 天运行一次的 Lambda 函数,并执行某种形式的存储库活动以保持活动状态。我只找到了这个HackerNews帖子,它提出了这个问题,但是没有评论:

默认情况下,在公共存储库的分支和连续 60 天没有活动的公共存储库中,计划工作流将被禁用。我们对 GitHub Actions 的使用政策进行了两项更改。这些变化将使 GitHub Actions 能够随着我们从 GitHub 社区看到的令人难以置信的采用而扩展。这是一个快速概述:

  1. 从今天开始,默认情况下将在公共存储库的新分支中禁用计划工作流。

  2. 在连续 60 天没有活动的公共存储库中,计划工作流将被禁用。

jac*_*eo7 5

我也在寻找解决方案,我在 GitHub Marketplace 上遇到了一个插件,它可能就是您正在寻找的。唯一的缺点是它会为您的存储库创建“虚拟提交”,这取决于您的偏好,您可能会或可能会不满意。

Keepalive 工作流程:https://github.com/marketplace/actions/keepalive-workflow


Mat*_*ski 1

我无法找到此问题的解决方案。相反,我对这个问题实施了一个有希望的临时解决方案。

https://github.com/invenia/KeepActionsAlive

此包使用 AWS SAM 部署 Lambda 函数。该函数每 59 天运行一次,为您的组织收集所有非分叉、非存档的存储库。然后,它将为所有非手动禁用的工作流启用工作流REST API 端点。内置功能可以支持组织外部的存储库。

这是非常初级的,但对于那些已经使用 AWS 的人来说,这应该有助于解决问题。

  • 愚蠢的问题...这似乎应该在发生之前重置 60 天超时,因为您已将其设置为 59 天。我想发送“enable”命令会重置它,即使它当前仍然处于启用状态?另外,如果是这种情况,您是否可以从存储库本身运行此 Python 脚本作为另一个操作来重置所有操作,或者 GitHub 是否足够聪明以阻止其工作。 (2认同)