{"library":"python-gerrit-api","title":"Python Gerrit API Client","description":"python-gerrit-api is a Python wrapper for the Gerrit REST API, enabling programmatic interaction with Gerrit Code Review. It is currently at version 3.1.0 and is actively maintained, with frequent releases often including dependency updates and minor enhancements.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install python-gerrit-api"],"cli":null},"imports":["from gerrit import GerritClient"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom gerrit import GerritClient\n\nGERRIT_HOST = os.environ.get('GERRIT_HOST', 'http://review.example.com')\nGERRIT_USERNAME = os.environ.get('GERRIT_USERNAME', 'your_username')\nGERRIT_PASSWORD = os.environ.get('GERRIT_PASSWORD', 'your_http_password')\n\ntry:\n    # Initialize the Gerrit client with HTTP Basic Authentication\n    client = GerritClient(\n        base_url=GERRIT_HOST,\n        username=GERRIT_USERNAME,\n        password=GERRIT_PASSWORD\n    )\n\n    # Example: List projects\n    projects = client.projects.list(limit=5)\n    print(f\"Successfully connected to Gerrit. Found {len(projects)} projects:\")\n    for project in projects:\n        print(f\"- {project['name']}\")\n\n    # Example: Get a specific change (replace with a real change ID/number)\n    # Note: Gerrit REST API often expects the 'id' of a change, not just the change number.\n    # You might need to fetch a list of changes first to get an ID.\n    # change = client.changes.get('12345') # Example change number\n    # print(f\"Change {change['id']}: {change['subject']}\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n    print(\"Please ensure GERRIT_HOST, GERRIT_USERNAME, and GERRIT_PASSWORD are set correctly.\")","lang":"python","description":"This quickstart demonstrates how to initialize the `GerritClient` and perform a basic operation, such as listing projects. It uses environment variables for authentication credentials, which is recommended for security. Ensure your Gerrit instance uses HTTP Basic Authentication and you have an HTTP password configured (not an SSH password).","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"3.1.0","pypi_latest":"3.1.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.1,"avg_import_s":0.58,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.57,"mem_mb":9.9,"disk_size":"21.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.39,"mem_mb":9.9,"disk_size":"22M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.69,"mem_mb":10.9,"disk_size":"24.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.63,"mem_mb":10.9,"disk_size":"24M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.64,"mem_mb":11.4,"disk_size":"15.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.9,"import_time_s":0.65,"mem_mb":11.4,"disk_size":"16M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.63,"mem_mb":11.7,"disk_size":"15.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.9,"import_time_s":0.62,"mem_mb":11.7,"disk_size":"16M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.52,"mem_mb":9.5,"disk_size":"21.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"python-gerrit-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.45,"mem_mb":9.5,"disk_size":"22M"}]}}