Skip to main content

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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clear_skies_snyk-2.0.3.tar.gz (795.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clear_skies_snyk-2.0.3-py3-none-any.whl (118.7 kB view details)

Uploaded Python 3

File details

Details for the file clear_skies_snyk-2.0.3.tar.gz.

File metadata

  • Download URL: clear_skies_snyk-2.0.3.tar.gz
  • Upload date:
  • Size: 795.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","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

Hashes for clear_skies_snyk-2.0.3.tar.gz
Algorithm Hash digest
SHA256 58741baa4816277c9a48b59b751bf67c63f2503dd85184e50942f4a537874f36
MD5 2f1c282b8be7fc5fceb6cc91f0772e46
BLAKE2b-256 93d8a694a26f4959b012ba975dda8c4094cf370aea7e9caa0f8b5611c6b22fb7

See more details on using hashes here.

File details

Details for the file clear_skies_snyk-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: clear_skies_snyk-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 118.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","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

Hashes for clear_skies_snyk-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9ef7f3bcde479391eaa65a8f7bf111d9ebd72de4d625e31c4d8b05f52e355bf8
MD5 1dbfdbbaed2c973c0c1c751416e19f7e
BLAKE2b-256 e31214758ea36ad525efd11c832534c77d85bfd8504e7a1d0775d2fcff5f0278

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page