{"adoption": {"forks": 120, "observed_at": "2026-08-28T04:05:10.532540+00:00", "stars": 1607}, "canonical_url": "https://ross.abutalabs.com/products/gitjacker", "card": {"archived": false, "artifact_type": "cli-tool", "description": "🔪 :octocat: Leak git repositories from misconfigured websites", "domain": ["security", "penetration-testing", "developer-tools", "web-development"], "enriched": true, "function": ["security", "penetration-testing", "http-client", "developer-tools"], "health_score": 53, "homepage": null, "language": "Go", "license": "Unlicense", "license_family": "permissive", "maturity": "active", "member_repos": ["liamg/gitjacker"], "name": "liamg/gitjacker", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2025-12-05T02:29:17+00:00", "repo": "liamg/gitjacker", "stars": 1607, "tags": ["git-exposure", "red-team", "offensive-security", "vulnerability-exploitation", "misconfigured-sites", "linux", "macos"], "topics": ["git", "pentesting", "penetration-testing", "hacking", "red-team"], "urls": [], "use_cases": ["recover a git repository leaked from a misconfigured website", "test whether my site accidentally exposes its .git directory", "extract source code during an authorized pentest", "download exposed .git folders without directory listing enabled", "red team tooling for information disclosure findings"], "what_it_is": "Gitjacker is a Go CLI tool that downloads and reconstructs git repositories from websites where the .git directory has been mistakenly exposed, even without directory listings. It is intended for educational and authorized penetration testing use.", "when_to_avoid": ["you don't have authorization to test the target website - this is illegal", "you need a general web vulnerability scanner rather than a git-specific leak tool", "you want to defend against exposure rather than exploit it - use a scanner or server config hardening instead"], "when_to_choose": ["you need to exploit or verify exposed .git directories on a target you're authorized to test", "you want a simple single-binary tool that works even when directory listings are disabled", "you're doing red team or security assessment work involving information disclosure"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gitjacker", "repo": "liamg/gitjacker", "role": "main", "score": 48}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.532540+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:51:48.058213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db16aee207a031465bf74ef058a4dc86986f05bbac188eb611bed20e776e8785", "fetched_at": "2026-08-28T04:05:10.532540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liamg/gitjacker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 55, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2170, "days_push": 272, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 48, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}