efrecon/Keepalive Workflows

Automatically generates activity on the default git branch when no activity has been recorded for a longer period of time. This avoids workflows to be disabled by GitHub after 60 days of inactivity. By default, this action uses a hidden file within the `.github` directory whenever git activity is required. The path to that file can be controlled through the `liveness` input.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 21, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: efrecon/gh-action-keepalive@958be6ccaacf567f85bbf0facb5ba8344f8e36a8 # v2.0.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
timeoutThe number of seconds of inactivity on the default branch before generating a commit. The default is 41 days, i.e. just above 2/3 of the GitHub inactivity trigger. no3542400
livenessPath (relative to repository) to a file where a marker will be put/actualised whenever activity is required to be generated on the repository. This file is used whenever the `marker` is empty, i.e. in most cases. .github/.github_liveness.txt
tokenGitHub token. The default is the default github token, which is enough to perform a git commit onto the default file from `liveness`. If you want to use a workflow such as the activity marker instead, pass a token with enough privileges to change the content of workflows. In that case, you might want to use the current workflow, i.e. the workflow running the action available at `github.workflow`. no${{ github.token }}
optionsno""
markerName of workflow to use for activity marker. The default is to have an empty marker, in which case this action will use the file from `liveness` when it is necessary to generate activity on the repository to keep it alive. Instead of an empty marker, you can pass the name of a workflow instead, e.g. the value of `github.workflow`, in which case the marker will be added/updated at the end of the workflow that called the action. This requires a GitHub token that is able to change workflows, which the default `github.token` cannot do. no""

no outputs