Skip to main content

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.

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


def my_handler(snyk_org: SnykOrg, snyk_project: SnykProject, snyk_group: SnykGroup):
    """Example handler using dependency injection."""
    # List all organizations
    for org in snyk_org:
        print(f"Org: {org.name} ({org.slug})")

    # Get projects for an organization
    projects = snyk_project.where("org_id=your-org-id")
    for project in projects:
        print(f"Project: {project.name} - {project.project_type}")

    # List groups
    for group in snyk_group:
        print(f"Group: {group.name}")

Working with Issues

import clearskies
from clearskies_snyk.models import SnykOrgIssue, SnykGroupIssue


def my_handler(snyk_org_issue: SnykOrgIssue, snyk_group_issue: SnykGroupIssue):
    """Example handler using dependency injection."""
    # Get issues for an organization
    org_issues = snyk_org_issue.where("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 = snyk_group_issue.where("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:

import clearskies
from clearskies_snyk.models.v1 import SnykIntegration, SnykWebhook, SnykLicense


def my_handler(snyk_integration: SnykIntegration, snyk_webhook: SnykWebhook):
    """Example handler using dependency injection."""
    # List integrations for an organization
    integrations = snyk_integration.where("org_id=your-org-id")
    for integration in integrations:
        print(f"Integration: {integration.name} ({integration.integration_type})")

    # List webhooks
    webhooks = snyk_webhook.where("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.

Metadata

Release files for clear-skies-snyk 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clear-skies-snyk 2.1.0
File Size Uploaded
clear_skies_snyk-2.1.0.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for clear-skies-snyk 2.1.0
File Interpreter ABI Platform
clear_skies_snyk-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / clear_skies_snyk-2.1.0.tar.gz

Download URL clear_skies_snyk-2.1.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
31492f2aa95aff247c348c3c5a6645ee9336784902ae82dc5dc8d74139c8b78e
BLAKE2b-256 checksum
How to use checksums
8f34ba392aad4319630d56e15ac9849955b9ad37f8a7a3de41854fdab42fe774
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}

Release files / clear_skies_snyk-2.1.0-py3-none-any.whl

Download URL clear_skies_snyk-2.1.0-py3-none-any.whl
Size 167.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2757754d1bc6c72678b1ed901b0bd3beb735b77d675f7db11f0579017359db73
BLAKE2b-256 checksum
How to use checksums
471e06973a4b0940ee4c16225e7c2853e50e43e7d1c3257cbd61e5aa3c480413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.17

2 release files

2.0.16

2 release files

2.0.15

2 release files

2.0.14

2 release files

2.0.10

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page