Skip to main content

A comprehensive command-line tool to check security-related issues in your projects, including vulnerability scanning and license compliance checking.

Project description

Security Checker

A comprehensive command-line tool to check security-related issues in your projects, including vulnerability scanning and license compliance checking.

Features

  • Vulnerability Scanning: Check for known security vulnerabilities in your project dependencies
  • License Compliance: Verify and analyze license compatibility of your dependencies
  • Multi-Package Manager Support: Works with Poetry, npm, pnpm, pip (requirements.txt), and Rye
  • Multiple Output Formats: Support for stdout, Slack notifications, and Markdown reports
  • Extensible Architecture: Easy to add new package managers and notification methods

Installation

From PyPI

pip install security-checker

Usage

Security Checker provides two main commands: license for license checking and vuln for vulnerability scanning.

License Checking

Check license compliance of your project dependencies:

# With default settings (all supported package managers)
security-checker license /path/to/your/project

Vulnerability Scanning

Scan for security vulnerabilities in your dependencies:

# With default settings (all supported package managers)
security-checker vuln /path/to/your/project

Configuration

Slack Notifications

To use Slack notifications, set the following environment variables:

export SLACK_BOT_TOKEN="xoxb-your-bot-token"
export SLACK_CHANNEL="#your-channel"

LLM Summary generation requires an OpenAI API key:

export LLM_API_KEY="your-openai-api-key"
export LLM_SUMMARIZE_MODEL="o4-mini"
export LLM_ENDPOINT="https://api.openai.com/v1"

Development

Requirements

  • Python >= 3.10
  • Rye

Setup Development Environment

git clone https://github.com/Ja-sonYun/security-checker.git
cd security-checker

rye sync

Code Quality

This project uses:

  • Ruff: For linting and code formatting
  • Type hints: Full type annotation coverage

Run code quality checks:

ruff check .
ruff format .

Project Structure

src/security_checker/
├── checkers/            # Core checking logic
│   ├── credentials/     # Credential scanning (TODO)
│   ├── licenses/        # License compliance checking
│   └── vulnerabilities/ # Vulnerability scanning
├── notifiers/           # Output and notification handlers
├── vendors/             # Package manager integrations
├── utils/               # Utility functions
└── cli.py               # Command-line interface

Adding New Package Managers

  1. Create a new vendor class in src/security_checker/vendors/
  2. Implement the required traits for license and/or vulnerability checking
  3. Add the vendor to the supported vendors list in cli.py

Adding New Notification Methods

  1. Create a new notifier class in src/security_checker/notifiers/
  2. Extend the NotifierBase class
  3. Add the notifier to the supported notifiers list in cli.py

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

security_checker-0.2.0-py3-none-any.whl (32.2 kB view details)

Uploaded Python 3

File details

Details for the file security_checker-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for security_checker-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 adf048793ba0fabe6042d0db3f0c682230c9a828e5f275a0a1bbc038a878d6ad
MD5 00749a0d1e8e069cc1fb8bf5a2cd4aee
BLAKE2b-256 0df945ddfba01fe49a310896498b60ef7f22c26ccbb30d362e98274020dc10df

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