{"adoption": {"forks": 411, "observed_at": "2026-08-28T04:05:10.926882+00:00", "stars": 1610}, "canonical_url": "https://ross.abutalabs.com/products/jupyterlab-git", "card": {"archived": false, "artifact_type": "plugin", "description": "A Git extension for JupyterLab", "domain": ["developer-tools", "version-control", "data-science"], "enriched": true, "function": ["version-control", "developer-tools", "plugin-system"], "health_score": 99, "homepage": null, "language": "TypeScript", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["jupyterlab/jupyterlab-git"], "name": "jupyterlab/jupyterlab-git", "platform": ["cross-platform", "python"], "pushed_at": "2026-08-17T06:16:54+00:00", "repo": "jupyterlab/jupyterlab-git", "stars": 1610, "tags": ["jupyterlab-extension", "git", "notebooks", "version-control-ui", "web-server", "nodejs"], "topics": ["jupyterlab", "git", "jupyterlab-extension"], "urls": [], "use_cases": ["track notebook changes with git inside jupyterlab", "commit and push notebooks from jupyterlab ui", "view git diff of jupyter notebooks", "manage branches in jupyterlab", "stage and commit files without leaving jupyterlab", "set up git authentication for remote repos in jupyter"], "what_it_is": "A JupyterLab extension that adds Git version control support to the JupyterLab interface, providing a left-panel UI for staging, committing, branching, and pushing changes. It includes a Python/jupyter-server backend that wraps Git commands and a bundled frontend extension.", "when_to_avoid": ["you use plain Jupyter Notebook classic or another IDE", "you prefer command-line Git workflows", "you need Git features beyond the extension's supported UI operations"], "when_to_choose": ["you use JupyterLab and want integrated Git workflows", "you want a visual Git panel for notebooks and files", "you need to commit/push from a remote Jupyter server"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jupyterlab-git", "repo": "jupyterlab/jupyterlab-git", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "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.926882+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.926882+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:51:14.706681+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a85b40ca75cc25fcadcc964f909c0aca8eef89141c7ccab4f885b8353262c39b", "fetched_at": "2026-08-28T04:05:10.926882+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jupyterlab/jupyterlab-git"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 84}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3361, "days_push": 16, "days_rel": 30, "gap_med": 56, "n_releases_24m": 10}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}