{"adoption": {"forks": 410, "observed_at": "2026-08-28T04:07:32.027672+00:00", "stars": 2951}, "canonical_url": "https://ross.abutalabs.com/products/nogotofail", "card": {"archived": true, "artifact_type": "cli-tool", "description": "An on-path blackbox network traffic security testing tool", "domain": ["security", "penetration-testing", "networking", "developer-tools"], "enriched": true, "function": ["security", "penetration-testing", "networking", "testing"], "health_score": 10, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["google/nogotofail"], "name": "google/nogotofail", "platform": ["python", "cli"], "pushed_at": "2022-10-03T14:56:54+00:00", "repo": "google/nogotofail", "stars": 2951, "tags": ["tls", "ssl", "mitm", "traffic-analysis", "vulnerability-scanning", "linux"], "topics": [], "urls": [], "use_cases": ["test apps for weak TLS/SSL connections", "detect cleartext traffic leaking sensitive data", "find SSL certificate verification bugs", "test for SSL and STARTTLS stripping vulnerabilities", "audit network traffic of Android or IoT devices", "verify HTTPS implementations during security reviews"], "what_it_is": "Nogotofail is an on-path (man-in-the-middle) blackbox network traffic security testing tool built in Python. It detects weak TLS/SSL connections, certificate verification bugs, SSL/STARTTLS stripping, and cleartext traffic on devices and applications.", "when_to_avoid": ["you need a modern actively developed tool (Python 2.7 dependency, sparse releases)", "you need Windows or macOS transparent capture support", "you want automated CI security scanning rather than interactive network testing"], "when_to_choose": ["you need blackbox TLS/SSL vulnerability testing of devices or apps on your network", "you want to detect cleartext and downgrade attacks transparently via iptables on Linux", "you're doing security research or app traffic audits"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nogotofail", "repo": "google/nogotofail", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "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:07:32.027672+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.027672+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:47:36.871442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c35e5561e20e42460b349bceb1f47d5feecdab0146c220661c6ec4afab66ef8b", "fetched_at": "2026-08-28T04:07:32.027672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/nogotofail"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4326, "days_push": 1430, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}