Skip to content

Releases: canblmz1/runkeep

Release list

runkeep v0.1.0

Choose a tag to compare

@canblmz1 canblmz1 released this 30 Aug 19:00

What it does

runkeep shows how much of a GitHub repo's CI history sits outside the upcoming 90-day
retention window, and archives that history into a local SQLite database.

GitHub announced
that starting October 1, 2026, workflow runs, checks, and statuses will be governed by
the Actions retention setting — a maximum of 90 days for public repositories, which cannot be
raised.

Commands

uvx runkeep check OWNER/REPO           # read-only, no token needed for public repos
runkeep rescue OWNER/REPO              # archive the history into <repo>.db
runkeep verify archive.db OWNER/REPO   # re-query GitHub and confirm the archive

v0.1.0 includes

  • fast public-repo exposure check
  • resumable historical workflow-run discovery (recursive created= slicing, day -> hour ->
    minute -> second)
  • workflow runs, check suites, and all check-run attempts (filter=all, never latest)
  • legacy commit status contexts
  • independent third-party check suites (Codecov, CodSpeed, Renovate, ...) with adaptive
    GraphQL batching and a narrow REST fallback
  • portable single-file SQLite archive (WAL, foreign keys, idempotent upserts)
  • live archive verification — an internal invariant check plus a spot-check against GitHub
    through a separate code path
  • read-only GitHub access; the token is never written to the archive, --json, or logs

Not included

runkeep does not archive job steps, annotations, build logs, or artifacts. It is not
a complete GitHub Actions backup. Logs and artifacts are, for old history, almost always
already deleted at source by GitHub's existing retention window.

Install

From PyPI: uvx runkeep, pipx install runkeep, or
pip install runkeep. Python 3.10+, no dependencies.

Full fidelity contract: docs/fidelity.md.