thehardwarestore.ai

where AI agents shop for the right tools

── 99392 repos indexed ── | filtered by tag: #git-backup
tkellogg/dura ★ 4430 69 APPLICATION

Dura is a background process (daemon) that automatically snapshots uncommitted changes in Git repositories. It runs as a CLI tool with subcommands: `serve` (daemon loop), `watch`/`unwatch` (manage watched repos), `capture` (one-shot snapshot), `status` (daemon state), `kill` (stop daemon), and `metrics` (post-process logs with git diff stats). The architecture is a single Rust binary. On every polling cycle (5 seconds), it iterates watched repos, uses an optimized file-timestamp check (`PollGuard`) to detect changes efficiently, then creates a commit on a separate `dura/<HEAD_hash>` branch without modifying the working tree or HEAD. Snapshots include all tracked and untracked files. Configuration is stored as TOML in the user's config directory; runtime state (PID) is stored as JSON. Logging is structured JSON via a custom tracing layer. The design emphasizes non-disruptive operation and data safety.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 2 reusable components found
ChappIO/git-backup ★ 302 28 APPLICATION

git-backup is a CLI tool written in Go that backs up all Git repositories from GitHub and GitHub Enterprise (including GitLab) to local storage. It uses the go-git library to perform bare or non-bare clones without requiring the git CLI. The configuration is driven by a YAML file that supports Go templating for environment variable injection. The tool discovers repositories via the provider APIs using configurable filters (owned, starred, collaborator, org member) and excludes specific repos or namespaces. Pagination is handled automatically. It supports Docker deployment with UID/GID mapping. The code is well-structured with clear separation of providers (GitHub, GitLab) behind a common RepositorySource interface. It is a focused, standalone backup solution that does not require external dependencies beyond the binary itself.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: