{"adoption": {"forks": 124, "observed_at": "2026-08-28T04:03:43.998040+00:00", "stars": 1138}, "canonical_url": "https://ross.abutalabs.com/products/airborne", "card": {"archived": false, "artifact_type": "framework", "description": "RSpec driven API testing framework", "domain": ["testing", "apis", "developer-tools"], "enriched": true, "function": ["testing", "e2e-testing", "http-client"], "health_score": 20, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["brooklynDev/airborne"], "name": "brooklynDev/airborne", "platform": ["ruby", "cli"], "pushed_at": "2024-01-16T02:20:26+00:00", "repo": "brooklynDev/airborne", "stars": 1138, "tags": ["rspec", "api-testing", "-validation", "rest", "ruby-gem"], "topics": [], "urls": [], "use_cases": ["test REST API endpoints with RSpec", "validate JSON response types and values", "assert nested JSON structures in API tests", "write API contract tests in Ruby", "verify optional fields in API responses", "match JSON values against regex patterns"], "what_it_is": "Airborne is an RSpec-driven API testing framework for Ruby that provides matchers for validating JSON API responses. It lets developers write expressive tests that check response values and types, including nested structures and optional fields.", "when_to_avoid": ["you're not testing APIs or don't use Ruby/RSpec", "you need full end-to-end browser testing", "you need a framework under active development with frequent releases"], "when_to_choose": ["you're testing JSON APIs from Ruby and already use RSpec", "you need type and value assertions on JSON responses", "you want a lightweight DSL for API contract testing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/airborne", "repo": "brooklynDev/airborne", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "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:03:43.998040+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.998040+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:36:08.158895+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7c14ba10c4bb4d6f17c1883d247b9d4a2150152397de62f2d627dce7fbbd06", "fetched_at": "2026-08-28T04:03:43.998040+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brooklynDev/airborne"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4373, "days_push": 961, "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}}