GitGuardian/py-gitguardian

GitHub: GitGuardian/py-gitguardian

GitGuardian 官方的 Python 客户端库,用于在代码和文本中自动检测机密信息与敏感数据泄漏。

Stars: 88 | Forks: 17

# [py-gitguardian](https://github.com/GitGuardian/py-gitguardian) - GitGuardian API 客户端 [![PyPI](https://img.shields.io/pypi/v/pygitguardian?color=%231B2D55&style=for-the-badge)](https://pypi.org/project/pygitguardian/) [![License](https://img.shields.io/github/license/GitGuardian/py-gitguardian?color=%231B2D55&style=for-the-badge)](LICENSE) [![GitHub stars](https://img.shields.io/github/stars/gitguardian/py-gitguardian?color=%231B2D55&style=for-the-badge)](https://github.com/GitGuardian/py-gitguardian/stargazers) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/GitGuardian/py-gitguardian/test-lint.yml?branch=master&style=for-the-badge) [![Codecov](https://img.shields.io/codecov/c/github/GitGuardian/py-gitguardian?style=for-the-badge)](https://codecov.io/gh/GitGuardian/py-gitguardian/) [GitGuardian API](https://api.gitguardian.com/) 的 API 客户端库。 GitGuardian API 让您能够检测任何文本内容中超过 200 种类型的机密信息(secrets),以及其他潜在的安全漏洞。 **py-gitguardian** 可用于创建集成,以扫描各种数据源,范围涵盖您工作站的文件系统到您喜爱的聊天应用程序。 您可以在此处查看 API 详情[here](https://api.gitguardian.com/docs) 以及每个方法的所有响应码和预期结构。 ## 环境要求 Python 3.8+ ## 使用 `py-gitguardian` 的项目 - [**GitGuardian Shield**](https://github.com/GitGuardian/gg-shield) - 在您的 CI 和 pre-commit 中扫描机密信息(secrets)。 ## 快速开始 您可以在您的[仪表盘](https://dashboard.gitguardian.com/api/v1/auth/user/github_login/authorize?utm_source=github&utm_medium=py_gitguardian&utm_campaign=py1)上获取用于调用 API 的 API 密钥。 **pip** ``` pip3 install --upgrade pygitguardian ``` **pipenv** ``` pipenv install pygitguardian ``` **pdm** ``` pdm add pygitguardian ``` **poetry** ``` poetry add pygitguardian ``` ## 示例 请查看 [examples/](examples/) 以获取有关如何使用 py-gitguardian 的完整示例。 ### 扫描文本内容 ``` # 请不要在源代码中硬编码你的 gg_api_key :) 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) # 检查 API 以及所使用的 API key 的健康状况。 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") ``` ### 扫描多个文件 ``` API_KEY = os.getenv("GITGUARDIAN_API_KEY") client = GGClient(api_key=API_KEY) # 创建用于扫描的 dictionary 列表 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) ``` ### 将结果转换为字典或 JSON `py-gitguardian` 中的任何模型都可以使用 `to_dict` 和 `to_json` 方法转换为 JSON 字符串或字典。 ``` from pygitguardian.models import Detail detail = Detail("Invalid API Key.") print(detail.to_dict()) print(detail.to_json()) ``` ### 依赖项 Py-gitguardian 依赖于以下优秀的库: - `requests` - HTTP 客户端 - `marshmallow` - 请求的序列化/反序列化与输入验证
标签:API客户端, DevSecOps, Python, 上游代理, 代码安全, 无后门, 漏洞枚举, 逆向工具