Code Monkey home page Code Monkey logo

py-gitguardian's Introduction

py-gitguardian - GitGuardian API Client

PyPI License GitHub stars GitHub Workflow Status Codecov

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.7+

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

poetry

poetry add pygitguardian

Examples

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

Scanning text content

# please don't hardcode your gg_api_key in source code :)
API_KEY = os.getenv("GITGUARDIAN_API_KEY")
DOCUMENT = """
    import urllib.request
    url = 'http://jen_barber:[email protected]/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.
if client.health_check().success:
    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_result)
else:
    print("Invalid API Key")

Scanning multiple files

API_KEY = os.getenv("GITGUARDIAN_API_KEY")
client = GGClient(api_key=API_KEY)

# Create a list of dictionaries for scanning
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 client
  • marshmallow - Request (de)serialization and input validation

py-gitguardian's People

Contributors

agateau-gg avatar alina-tuholukova-gg avatar amascia-gg avatar dependabot[bot] avatar ericfourrier avatar gg-hh avatar ixion avatar jeremyds avatar jguer avatar moverest avatar paul-gitguardian avatar pierrelalanne avatar ppetit-gitguardian avatar sayrus avatar sofienm avatar sylvain-baud-gg avatar walz avatar xblanchot-gg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.