{"adoption": {"forks": 348, "observed_at": "2026-08-28T04:08:41.827734+00:00", "stars": 4315}, "canonical_url": "https://ross.abutalabs.com/products/gradle-play-publisher", "card": {"archived": false, "artifact_type": "plugin", "description": "GPP is Android's unofficial release automation Gradle Plugin. It can do anything from building, uploading, and then promoting your App Bundle or APK to publishing app listings and other metadata.", "domain": ["mobile-development", "android-tools"], "enriched": true, "function": ["deployment", "build-tool", "developer-tools"], "health_score": 100, "homepage": null, "language": "Kotlin", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Triple-T/gradle-play-publisher"], "name": "Triple-T/gradle-play-publisher", "platform": ["jvm", "cli"], "pushed_at": "2026-08-26T21:50:25+00:00", "repo": "Triple-T/gradle-play-publisher", "stars": 4315, "tags": ["gradle-plugin", "google-play", "release-automation", "app-bundle", "apk", "play-store-publishing", "automation", "android"], "topics": ["android-development", "play-store", "gradle-plugin", "gpp", "mobile", "android", "apps", "automation", "deployment", "gradle-play-publisher", "publishing"], "urls": [], "use_cases": ["upload an app bundle or apk to google play from gradle", "automate android release pipeline in ci", "promote a staged rollout to production track", "publish play store listings and metadata from files", "manage in-app products and subscriptions via api", "upload internal sharing builds for testing"], "what_it_is": "Gradle Play Publisher is an unofficial Gradle plugin that automates Android app releases to the Google Play Store. It handles building, uploading, and promoting App Bundles or APKs, as well as publishing store listings, metadata, in-app products, and subscriptions.", "when_to_avoid": ["you need guaranteed support or timely issue resolution, since the project is in maintenance mode", "you prefer a GUI-driven release process via the Play Console", "you don't build Android apps with Gradle"], "when_to_choose": ["you want fully automated Play Store releases from your Gradle build or CI", "you need to manage store listings, in-app products, or rollouts as code", "you use product flavors and need flexible multi-track publishing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gradle-play-publisher", "repo": "Triple-T/gradle-play-publisher", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "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:08:41.827734+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.827734+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:46.237303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4e44d65e6aeec647cecf47c7310fb8061a63cc810113588e08804874ccb7d65", "fetched_at": "2026-08-28T04:08:41.827734+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Triple-T/gradle-play-publisher"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 97}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4409, "days_push": 7, "days_rel": 22, "gap_med": 29.0, "n_releases_24m": 7}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}