API client library for the GitGuardian API.
The GitGuardian API puts at your fingertips the power to detect more than 200 types of secrets in any text content, as well as other potential security vulnerabilities.
py-gitguardian can be used to create integrations to scan various data sources, from your workstation's filesystem to your favorite chat application.
You can check API details here
with all the response codes and expected structures on each method.
Requirements
Python 3.8+
Projects using py-gitguardian
Getting started
You can obtain API keys for API usage on your dashboard.
pip
pip3 install --upgrade pygitguardian
pipenv
pipenv install pygitguardian
pdm
pdm add pygitguardian
poetry
poetry add pygitguardian
Examples
Check examples/ for full examples on how to use py-gitguardian.
Scanning text content
API_KEY = os.getenv("GITGUARDIAN_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)
if client.health_check().success:
try:
scan_result = client.content_scan(DOCUMENT)
except Exception as exc:
traceback.print_exc(2, file=sys.stderr)
print(str(exc))
print(scan_result)
else:
print("Invalid API Key")
Scanning multiple files
API_KEY = os.getenv("GITGUARDIAN_API_KEY")
client = GGClient(api_key=API_KEY)
file_paths = (pathlib.Path(name) for name in glob.iglob("**/*", recursive=True))
to_scan = [
{"filename": path.name, "document": path.read_text(errors="replace")}
for path in file_paths
]
scan = 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 clientmarshmallow
- Request (de)serialization and input validation