{"library":"pygitguardian","title":"pygitguardian","description":"pygitguardian is the official Python client library for the GitGuardian API, allowing developers to detect over 200 types of secrets and other security vulnerabilities in text content. It is actively developed with frequent releases, currently at version 1.29.0.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install pygitguardian"],"cli":null},"imports":["from pygitguardian import GGClient","from pygitguardian.models import Detail"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom pygitguardian import GGClient\nfrom pygitguardian.models import ScanResult\n\n# It is highly recommended to use environment variables for API keys.\n# Replace 'YOUR_GITGUARDIAN_API_KEY' with your actual environment variable name if different.\napi_key = os.environ.get('GITGUARDIAN_API_KEY', '')\n\nif not api_key:\n    print(\"Error: GITGUARDIAN_API_KEY environment variable not set.\")\n    exit(1)\n\nclient = GGClient(api_key=api_key)\n\ndocument_to_scan = \"\"\" \nThis is some example content.\nIt might contain sensitive information like a password: mysecretpassword123\nor an API key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\"\"\"\n\ntry:\n    # Check the health of the API and the API key used first\n    health_check_result = client.health_check()\n    if not health_check_result.success:\n        print(f\"API Health Check failed: {health_check_result.detail}\")\n        exit(1)\n    print(\"API Health Check successful.\")\n\n    scan_result: ScanResult = client.content_scan(document_to_scan)\n\n    if scan_result.has_secrets:\n        print(\"Secrets found in the document!\")\n        for incident in scan_result.incidents:\n            print(f\"  Incident type: {incident.type}\")\n            for pb in incident.policy_breaks:\n                print(f\"    Policy Break: {pb.occurrence.value}\")\n    else:\n        print(\"No secrets found in the document.\")\n\nexcept Exception as e:\n    print(f\"An error occurred during scan: {e}\")\n","lang":"python","description":"Initializes the GGClient with an API key sourced from an environment variable and performs a content scan for secrets. It includes a health check and prints detected incidents. API keys should always be handled securely, ideally via environment variables, to prevent exposure.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"1.30.0","pypi_latest":"1.30.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.8,"avg_import_s":0.9,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.82,"mem_mb":14.3,"disk_size":"23.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":2.5,"import_time_s":0.57,"mem_mb":14.3,"disk_size":"24M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.18,"mem_mb":15.6,"disk_size":"25.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":2.6,"import_time_s":1.02,"mem_mb":15.6,"disk_size":"26M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.03,"mem_mb":15.3,"disk_size":"26.1M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":2.9,"import_time_s":1.03,"mem_mb":15.3,"disk_size":"27M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.99,"mem_mb":15.7,"disk_size":"25.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":2.9,"import_time_s":0.95,"mem_mb":16.5,"disk_size":"26M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.79,"mem_mb":13.9,"disk_size":"22.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pygitguardian","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":2.9,"import_time_s":0.65,"mem_mb":13.9,"disk_size":"23M"}]}}