Skip to main content

Pentesterra DevGuard — pre-push security audit CLI agent

Project description

Pentesterra DevGuard

Pre-push security audit CLI agent for developers.

Installation

pip install pentesterra-devguard

Or download the pre-built archive:

curl -LO https://www.pentesterra.com/devguard.tar.gz
pip install devguard.tar.gz

Quick Start

# 1. Initialize with your API key (get it from Pentesterra dashboard)
pentesterra-devguard init

# 2. Run a scan in your project directory
cd /path/to/your/project
pentesterra-devguard scan

# 3. View results
pentesterra-devguard results <scan_id>

Commands

Command Description
init Configure API URL and DevGuard API key
scan [path] Collect project data and submit a security scan
status <scan_id> Check scan status
results <scan_id> View detailed scan results
projects List registered projects
scans List recent scans
quota View quota usage
update Download and install the latest CLI version

Auto-update

The CLI checks for updates on every scan (at most once per 24 hours) and shows a notice when a newer version is available:

ℹ  DevGuard v1.X.X is available — run: pentesterra-devguard update

Updates are downloaded from api.pentesterra.com, SHA256-verified before installation, and applied via pip.

VS Code / Cursor / Windsurf Extension

DevGuard is also available as an IDE extension.

Option A — VS Code Marketplace (recommended, auto-updates)

code --install-extension pentesterra.pentesterra-devguard

Marketplace installs update automatically through VS Code's built-in update mechanism.

Option B — Download .vsix from our site (also auto-updates)

# VS Code
code --install-extension devguard.vsix

# Cursor
cursor --install-extension devguard.vsix

# Windsurf
windsurf --install-extension devguard.vsix

Download: https://www.pentesterra.com/devguard.vsix

When installed from our site, the extension checks for updates automatically (once per 24 hours) and offers a one-click update with SHA256 integrity verification.

Zero-setup

The extension automatically downloads and installs the CLI on first use — no separate pip install required. On subsequent launches the extension verifies the CLI is present; if not found, it prompts to install.

The extension uses the CLI as a subprocess for all analysis — same Python core, same detection quality.

Scan Options

pentesterra-devguard scan . --project my-app --mode deep --no-wait
  • --project, -p — Project alias (default: directory name)
  • --mode, -mstandard or deep
  • --wait/--no-wait — Wait for analysis to complete (default: wait)
  • --timeout — Max seconds to wait (default: 120)
  • --dry-run — Show payload without uploading

JSON Output

All commands support --json for machine-readable output (used by IDE extensions):

pentesterra-devguard --json scan .
pentesterra-devguard --json results <scan_id>
pentesterra-devguard --json quota

Output format:

{"ok": true, "data": {...}}
{"ok": false, "error": "message", "code": "NOT_CONFIGURED"}

What Gets Collected

Privacy-first: No source code is ever transmitted.

  • Dependencies — Package names and versions from lockfiles (npm, pip, go, ruby, php, rust)
  • Secrets metadata — Type, file path, line number, masked value (actual secrets are NOT sent)
  • Misconfigurations — Known config issues (Dockerfile, .env, docker-compose)
  • Project metadata — Tech stack hints, file count

Supported Lockfiles

  • package-lock.json, yarn.lock (Node.js)
  • requirements.txt, Pipfile.lock, poetry.lock (Python)
  • go.sum (Go)
  • Gemfile.lock (Ruby)
  • composer.lock (PHP)
  • Cargo.lock (Rust)

For Developers: Publishing to PyPI

Prerequisites

# Install build tools
pip install build twine

Setup (one-time)

Create publish_config.ini:

[pypi]
api_token = pypi-your-token-here

Get your token from: https://pypi.org/manage/account/token/

Note: publish_config.ini is already in .gitignore and won't be committed.

Quick Publish

# 1. Update version in pentesterra_devguard/__init__.py
# 2. Publish (PyPI + website artifacts)
python build_release_assets.py

This will:

  • Build wheel + source distribution → Publish to PyPI
  • Build devguard.tar.gz + devguard.vsix for the website
  • Update API configs with SHA256 checksums

To skip PyPI publication:

python build_release_assets.py --skip-pypi

Automated Release Script

./release.sh 1.3.56

The script will:

  1. Update version in __init__.py
  2. Show git status for review
  3. Ask for confirmation
  4. Build and publish to PyPI
  5. Verify publication

Publish Options

# Full release (PyPI + website artifacts) — DEFAULT
python build_release_assets.py

# Only website artifacts (no PyPI)
python build_release_assets.py --skip-pypi

# Only PyPI (skip tar.gz/vsix)
python build_release_assets.py --skip-tar --skip-vsix --skip-config

Build core

python -m build
pip install ./dist/pentesterra_devguard-1.3.51.tar.gz 

Documentation

  • PYPI_PUBLISH.md — Detailed publishing guide
  • RELEASE_CHECKLIST.md — Step-by-step release checklist
  • QUICK_PUBLISH.txt — Quick reference card

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

pentesterra_devguard-1.3.70.tar.gz (285.7 kB view details)

Uploaded Source

Built Distribution

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

pentesterra_devguard-1.3.70-py3-none-any.whl (279.9 kB view details)

Uploaded Python 3

File details

Details for the file pentesterra_devguard-1.3.70.tar.gz.

File metadata

  • Download URL: pentesterra_devguard-1.3.70.tar.gz
  • Upload date:
  • Size: 285.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for pentesterra_devguard-1.3.70.tar.gz
Algorithm Hash digest
SHA256 bc47e5d7a9462271ad7a2dbe959d11590b5805560d728f1c31abb05fc683995d
MD5 23b590223671627188e6f3028103278c
BLAKE2b-256 73feb7d5a13edb3018f9ee47212902ac68fb57f034277d3df6cb54c7560b7e47

See more details on using hashes here.

File details

Details for the file pentesterra_devguard-1.3.70-py3-none-any.whl.

File metadata

File hashes

Hashes for pentesterra_devguard-1.3.70-py3-none-any.whl
Algorithm Hash digest
SHA256 b7d380b8cce5c8ad82467ba74cd67f206929b69fd0ca43e946a0987b658106f7
MD5 81c126092351708802f58202ee59a36c
BLAKE2b-256 eceb46d6c5b59d5ee83b8086ef1c64152f5704c5d08fcf8387ffc37bbeac6f14

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