Snyk module for Clearskies
Project description
clearskies-snyk
A clearskies module for interacting with the Snyk API.
This module provides pre-built models and backends for seamless integration with both the Snyk REST API and the legacy v1 API, allowing you to easily query and manage Snyk resources like organizations, projects, groups, issues, and more.
Features
- REST API Backend (
SnykBackend): Full support for Snyk's JSON:API-compliant REST API with cursor-based pagination - V1 API Backend (
SnykV1Backend): Support for Snyk's legacy v1 API with offset-based pagination - 75+ Pre-built Models: Ready-to-use models for organizations, projects, groups, issues, policies, service accounts, and more
- Automatic Authentication: Configurable via environment variables with support for secret managers
- Automatic Pagination: Seamlessly iterate through large result sets
Installation
pip install clearskies-snyk
Or with uv:
uv add clearskies-snyk
Quick Start
Authentication
Set up authentication using environment variables:
# Option 1: Direct API key
export SNYK_AUTH_KEY=your-snyk-api-key
# Option 2: Secret manager path (recommended for production)
export SNYK_AUTH_SECRET_PATH=/path/to/secret
Basic Usage
import clearskies
from clearskies_snyk.models import SnykOrg, SnykProject, SnykGroup
# List all organizations
for org in SnykOrg():
print(f"Org: {org.name} ({org.slug})")
# Get projects for an organization
projects = SnykProject(org_id="your-org-id")
for project in projects:
print(f"Project: {project.name} - {project.project_type}")
# List groups
for group in SnykGroup():
print(f"Group: {group.name}")
Working with Issues
from clearskies_snyk.models import SnykOrgIssue, SnykGroupIssue
# Get issues for an organization
org_issues = SnykOrgIssue(org_id="your-org-id")
for issue in org_issues:
print(f"Issue: {issue.title} - Severity: {issue.effective_severity_level}")
# Get issues across a group
group_issues = SnykGroupIssue(group_id="your-group-id")
for issue in group_issues:
print(f"Issue: {issue.title}")
Using the V1 API
Some endpoints are only available through the legacy v1 API:
from clearskies_snyk.models.v1 import SnykIntegration, SnykWebhook, SnykLicense
# List integrations for an organization
integrations = SnykIntegration(org_id="your-org-id")
for integration in integrations:
print(f"Integration: {integration.name} ({integration.integration_type})")
# List webhooks
webhooks = SnykWebhook(org_id="your-org-id")
for webhook in webhooks:
print(f"Webhook: {webhook.url}")
Custom Backend Configuration
import clearskies
from clearskies_snyk.backends import SnykBackend
# Custom authentication
backend = SnykBackend(
authentication=clearskies.authentication.SecretBearer(
environment_key="MY_SNYK_KEY",
header_prefix="token ",
)
)
# Custom API version
backend = SnykBackend(api_version="2024-10-15")
Available Models
REST API Models
| Category | Models |
|---|---|
| Organizations | SnykOrg, SnykOrgMember, SnykOrgMembership, SnykOrgUser, SnykOrgInvite |
| Projects | SnykProject, SnykProjectHistory, SnykProjectIgnore, SnykProjectSbom |
| Groups | SnykGroup, SnykGroupMember, SnykGroupMembership, SnykGroupUser, SnykGroupOrgMembership |
| Issues | SnykOrgIssue, SnykGroupIssue |
| Policies | SnykOrgPolicy, SnykOrgPolicyEvent, SnykGroupPolicy |
| Service Accounts | SnykOrgServiceAccount, SnykGroupServiceAccount |
| Apps | SnykOrgApp, SnykOrgAppBot, SnykOrgAppInstall, SnykGroupAppInstall, SnykSelfApp |
| Cloud | SnykCloudEnvironment, SnykCloudResource, SnykCloudScan |
| Containers | SnykContainerImage, SnykCustomBaseImage |
| Settings | SnykOrgSettingsIac, SnykOrgSettingsSast, SnykOrgSettingsOpenSource, SnykGroupSettingsIac |
| Tenants | SnykTenant, SnykTenantMembership, SnykTenantRole |
| Other | SnykCollection, SnykTarget, SnykPackage, SnykAiBom, SnykLearnAssignment, and more |
V1 API Models
| Model | Description |
|---|---|
SnykIntegration |
SCM and CI/CD integrations |
SnykIntegrationSetting |
Integration configuration settings |
SnykWebhook |
Webhook configurations |
SnykLicense |
License information |
SnykDependency |
Project dependencies |
SnykEntitlement |
Organization entitlements |
SnykGroupRoleV1 |
Group roles (v1 format) |
SnykGroupSettings |
Group settings |
SnykGroupTag |
Group tags |
SnykImportJob |
Project import jobs |
Development
To set up your development environment:
# Install uv if not already installed
pip install uv
# Create a virtual environment and install all dependencies
uv sync
# Install dev dependencies
uv pip install .[dev]
# Install pre-commit hooks
uv run pre-commit install
# Run pre-commit on all files
uv run pre-commit run --all-files
Documentation
For full API documentation, visit the Snyk API Documentation.
License
MIT License - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clear_skies_snyk-2.0.2.tar.gz.
File metadata
- Download URL: clear_skies_snyk-2.0.2.tar.gz
- Upload date:
- Size: 793.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62c330ab369e88280f015801c1a1cc13ab132ac3fce14302004a4c33e62ca1af
|
|
| MD5 |
257af7b0e17c72d4d077fe058e8759ce
|
|
| BLAKE2b-256 |
e4c47e66532f005ff110670e1b57f2a82ddd100f3c408946a308c9d40e899dac
|
File details
Details for the file clear_skies_snyk-2.0.2-py3-none-any.whl.
File metadata
- Download URL: clear_skies_snyk-2.0.2-py3-none-any.whl
- Upload date:
- Size: 115.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8406157d76fe847f6fdee43df26f3938ed0a6b9c4e2da157f59899ff5c593a57
|
|
| MD5 |
245880a2680631e3d5e69d96c2bd1592
|
|
| BLAKE2b-256 |
99438c4cbc210806c22c175228535083377146b4040b23c0b9fc42253017c161
|