GitGuardian/py-gitguardian
GitHub: GitGuardian/py-gitguardian
GitGuardian 官方的 Python 客户端库,用于在代码和文本中自动检测机密信息与敏感数据泄漏。
Stars: 88 | Forks: 17

# [py-gitguardian](https://github.com/GitGuardian/py-gitguardian) - GitGuardian API 客户端
[](https://pypi.org/project/pygitguardian/)
[](LICENSE)
[](https://github.com/GitGuardian/py-gitguardian/stargazers)

[](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, 上游代理, 代码安全, 无后门, 漏洞枚举, 逆向工具