{"adoption": {"forks": 320, "observed_at": "2026-08-28T04:05:35.927374+00:00", "stars": 1784}, "canonical_url": "https://ross.abutalabs.com/products/dvcs-ripper", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Rip web accessible (distributed) version control systems: SVN/GIT/HG...", "domain": ["security", "penetration-testing", "version-control", "developer-tools"], "enriched": true, "function": ["web-scraping", "security", "penetration-testing", "cli", "version-control"], "health_score": 20, "homepage": null, "language": "Perl", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["kost/dvcs-ripper"], "name": "kost/dvcs-ripper", "platform": ["cli"], "pushed_at": "2024-07-19T12:49:07+00:00", "repo": "kost/dvcs-ripper", "stars": 1784, "tags": ["dvcs", "source-code-disclosure", "git-ripping", "svn-ripping", "pentest-tools", "recon", "command-line", "linux", "macos", "perl", "docker"], "topics": [], "urls": [], "use_cases": ["download a leaked .git folder from a website during a pentest", "rip exposed .svn directories from a web server", "recover source code from a misconfigured .hg or .bzr directory", "test whether a site exposes version control metadata", "extract repository history from web-accessible VCS folders"], "what_it_is": "dvcs-ripper is a set of Perl command-line tools that download (rip) web-accessible version control repositories such as GIT, SVN, Mercurial, Bazaar, and CVS from exposed servers, even when directory browsing is disabled. It is primarily used in penetration testing to recover source code and history from misconfigured web servers.", "when_to_avoid": ["you need a general-purpose web scraper rather than VCS-specific ripping", "you are not authorized to test the target system", "you need a GUI or automated scanning platform"], "when_to_choose": ["you are doing a security assessment and found exposed .git/.svn/.hg directories", "you need to reconstruct a repository without directory listing enabled", "you want a lightweight Perl tool with no heavy dependencies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dvcs-ripper", "repo": "kost/dvcs-ripper", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "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:35.927374+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.927374+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:24:15.639624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9841fd3c7a7cefc67e72f429d6549ebbe2818b9280a48ecc0138ab89dd6bcd87", "fetched_at": "2026-08-28T04:05:35.927374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kost/dvcs-ripper"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5062, "days_push": 775, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}