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 GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 21, 2026
- License
- MIT
Pinned Snippet
uses: efrecon/gh-action-keepalive@958be6ccaacf567f85bbf0facb5ba8344f8e36a8 # v2.0.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| timeout | The 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. | no | 3542400 |
| liveness | Path (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 |
| token | GitHub 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 }} |
| options | — | no | "" |
| marker | Name 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 | "" |
Outputs
no outputs