我创建了一个 GitHub 操作,以防止 GitHub 由于存储库不活动而暂停基于 cronjob 的操作触发器。

GitHub 徽标gautamkrishnar/keepalive-workflow

GitHub 操作,以防止 GitHub 由于存储库不活动而暂停基于 cronjob 的触发器

Keepalive 工作流npm 版本

GitHub 操作,以防止 GitHub 由于存储库不活动而暂停基于 cronjob 的触发器

为什么

如果过去 60 天内存储库中没有提交,GitHub 将暂停 GitHub 操作工作流的计划触发器。除非进行新的提交,否则基于 cron 的触发器不会运行。它在 cronjob 触发的操作下显示消息“此计划的工作流已禁用,因为此存储库中至少 60 天没有活动”。

预览

什么

如果您的 repo 中的最后一次提交是 50 天(默认)之前,此工作流程将自动在您的 repo 中创建一个虚拟提交。这将使 cronjob 触发器保持活动状态,以便它可以无限期地运行,而不会因不活动而被 GitHub 暂停。

如何使用

您可以通过两种方式在 GitHub 操作中使用此库

通过 GitHub Actions(适用于 GitHub Actions 用户)

你可以......

在 GitHub 上查看

为什么

如果过去 60 天内存储库中没有提交,GitHub 将暂停 GitHub 操作工作流的计划触发器。除非进行新的提交,否则基于 cron 的触发器不会运行。它在 cronjob 触发的操作下显示消息“此计划的工作流已禁用,因为此存储库中至少 60 天没有活动”。

[预览](https://res.cloudinary.com/practicaldev/image/fetch/s--uHgBz7TA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent .com/8397274/105174930-4303e100-5b49-11eb-90ed-95a55697582f.png)

什么

如果您的存储库中的最后一次提交是 50 天(默认)之前,则此工作流程将自动在您的存储库中创建一个虚拟提交。

这将使 cronjob 触发器保持活动状态,以便它可以无限期地运行,而不会因不活动而被 GitHub 暂停。

使用方法

您可以通过两种方式在 GitHub 操作中使用此库

通过 GitHub Actions(适用于 GitHub Actions 用户)

您可以在您最喜欢的 GitHub 操作之一之后将库作为一个步骤包含在内。您的工作流文件应该在您的步骤之一中定义结帐操作,因为此库需要 git CLI 才能工作。

name: Github Action with a cronjob trigger
on:
  schedule:
    - cron: "0 0 * * *"

jobs:
  cronjob-based-github-action:
    name: Cronjob based github action
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - # step1
      - # step 2
      - # step n, use it as the last step
      - uses: gautamkrishnar/keepalive-workflow@master # using the workflow with default settings

进入全屏模式 退出全屏模式

我们以Waka Readme为例

name: My awesome readme
on:
  workflow_dispatch:
  schedule:
    # Runs at 12 am UTC
    - cron: "0 0 * * *"

jobs:
  update-readme:
    name: Update this repo's README
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: athul/waka-readme@master
        with:
          WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
      - uses: gautamkrishnar/keepalive-workflow@master # using the workflow with default settings

进入全屏模式 退出全屏模式

通过 JavaScript 库(适用于 GitHub Actions 开发人员)

对于制作出色 GitHub 操作的开发人员,您可以通过从NPM安装它来在基于 javascript 的 GitHub 操作中使用该库。确保您的 GitHub 操作使用 checkout 操作,因为此库需要它作为依赖项。

您还可以要求您的用户将其作为第一部分中提到的附加步骤包括在内。

安装包

通过 NPM 安装:

npm i keepalive-workflow

进入全屏模式 退出全屏模式

通过纱线安装:

yarn add keepalive-workflow

进入全屏模式 退出全屏模式

在自己的GitHub动作源码中使用

const core = require('@actions/core');
const { KeepAliveWorkflow } = require('keepalive-workflow');

// Using the lib
KeepAliveWorkflow(githubToken, committerUsername, committerEmail, commitMessage, timeElapsed)
  .then((message) => {
    core.info(message);
    process.exit(0);
  })
  .catch((error) => {
    core.error(error);
    process.exit(1);
  });

进入全屏模式 退出全屏模式

选项

用于 GitHub 操作

如果您使用通过 GitHub 操作提到的工作流,以下是您可以自定义其行为的选项。

选项

默认值

描述

必需的

gh_token

具有 repo 范围的默认 GitHub 令牌

具有 Repo 范围的 GitHub 访问令牌

commit_message

Automated commit by Keepalive Workflow to keep the repository active

提交到 repo 时使用的提交消息

committer_username

gkr-bot

提交回购时使用的用户名

committer_username

gkr@tuta.io

提交回购协议时使用的电子邮件 ID

time_elapsed

50

从上一次提交到触发新的自动提交所经过的时间(以天为单位)

用于 Javascript 库

如果您使用的是JS库版本的项目,请查阅函数的DocString inlibrary.js查看可用参数列表。

喜欢吗?

希望你喜欢这个项目,别忘了给它一个星⭐。

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐