Skip to main content

Python Wrapper for GitGuardian's API -- Scan security policy breaks everywhere

Project description

GitGuardian API Client

API client library for the GitGuardian API.

You can check API details here with all the response codes and expected structures on each method.

Requirements

Python 3.5+

Getting started

You can obtain API keys for API usage on your dashboard.

pip

pip3 install --upgrade pygitguardian

pipenv

pipenv install pygitguardian

poetry

poetry add pygitguardian

Examples

Check examples/ for full examples on how to use py-gitguardian.

Scanning text content

API_KEY = os.getenv("GG_API_KEY")
DOCUMENT = """
    import urllib.request
    url = 'http://jen_barber:correcthorsebatterystaple@cake.gitguardian.com/isreal.json'
    response = urllib.request.urlopen(url)
    consume(response.read())"
"""

client = GGClient(api_key=API_KEY)

# Check the health of the API and the API key used.
health_obj, status = client.health_check()

if status != codes[r"\o/"]:  # this is 200 but cooler
    print("Invalid API Key")

try:
    scan_result = client.content_scan(DOCUMENT)
except Exception as exc:
    # Handle exceptions such as schema validation
    traceback.print_exc(2, file=sys.stderr)
    print(str(exc))

print("Scan results:", scan_result.has_secrets, "-", scan_result.policy_break_count)

Scanning multiple files

API_KEY = os.getenv("GG_API_KEY")
client = GGClient(api_key=API_KEY)
# Create a list of dictionaries for scanning
to_scan = []
for name in glob.glob("**/*"):
    with open(name) as fn:
        to_scan.append({"document": fn.read(), "filename": os.path.basename(name)})

scan, status_code = client.multi_content_scan(to_scan)

Transform results to dict or JSON

Any model in py-gitguardian can be turned to a JSON string or a dictionary using the to_dict and to_json methods.

from pygitguardian.models import Detail

detail = Detail("Invalid API Key.")
print(detail.to_dict())
print(detail.to_json())

Dependencies

Py-gitguardian depends on these excellent libraries:

  • requests - HTTP client
  • marshmallow - Request (de)serialization and input validation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygitguardian-1.0.3.tar.gz (8.4 kB view hashes)

Uploaded Source

Built Distribution

pygitguardian-1.0.3-py3-none-any.whl (8.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page