Skip to main content

Security Remediation Agent for Python codebases

Project description

Refactoring Agent – Security Remediation for Legacy Python

Refactoring Agent is a command-line tool that scans your Python codebase for legacy patterns and security risks, and optionally asks an LLM to propose safe, modern fixes.

It is built for teams who are migrating large, messy, “battle-tested” codebases and want:

  • Static checks for legacy constructs (e.g. raw_input, old print statements)
  • Security scanning for dangerous APIs (eval, exec, os.system, pickle)
  • Optional AI-based refactoring suggestions (OpenAI, Ollama, or a mock provider)
  • CI-friendly CLI and GitHub Actions integration

Features

🛡️ Security Scanning (Enterprise Grade)

Refactoring Agent goes beyond simple linting. It proactively hunts for Critical Vulnerabilities (OWASP Top 10 vectors):

ID Severity Description
security_eval Critical Detects arbitrary code execution via eval().
security_exec Critical Detects dynamic code execution via exec().
security_os_system Critical Flags os.system() which is vulnerable to shell injection.
security_subprocess_shell Critical Detects subprocess.Popen(..., shell=True) – a common RCE vector.
security_pickle_untrusted Critical Blocks pickle.load() on untrusted data (Insecure Deserialization).
security_insecure_random Major Warns about using random for secrets/tokens (suggests secrets module).

🤖 AI-assisted Refactoring & Auto-Fix

The tool can automatically fix issues using LLMs. It supports two modes:

1. Interactive Mode (Default)

Best for local development. The tool shows you a diff for every file and asks for confirmation. ```bash refactor-agent check . --ai-fix ``` Output: Shows diff, then asks Apply this fix to src/main.py? [y/n].

2. Non-Interactive / CI Mode (--yes)

Best for CI/CD pipelines or when you trust the AI. ```bash refactor-agent check . --ai-fix --yes ``` Behavior: Applies all fixes automatically without prompts.

Note: If you run --ai-fix in a CI environment (no TTY) without --yes, the tool will fail with an error to prevent hanging.


Installation

Install from PyPI: ```bash pip install refactoring-agent ```

Quickstart

Initialize configuration: ```bash refactor-agent init ```

Scan the current directory: ```bash refactor-agent check . ```

Generate an HTML report: ```bash refactor-agent check . --html-report report.html ```

Using AI Suggestions

OpenAI provider

```bash export RA_LLM_PROVIDER="openai" export OPENAI_API_KEY="your-openai-key"

refactor-agent check demo_legacy --ai-fix --dry-run ```

Ollama provider (Local LLM)

```bash export RA_LLM_PROVIDER="ollama" export RA_LLM_MODEL="llama3"

refactor-agent check demo_legacy --ai-fix --dry-run ```

Configuration

Refactoring Agent allows fine-grained control over rules via pyproject.toml.

```toml [tool.refactoring-agent.rules]

Strict security

security_eval = "error" security_subprocess_shell = { mode = "error", severity = "critical" }

Relaxed legacy checks (warnings only)

legacy_print = "warn" ```

GitHub Action example

```yaml name: Security Scan on: [push, pull_request] jobs: refactor-agent: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: { python-version: "3.11" } - run: pip install refactoring-agent - name: Run Scan & Auto-Fix (Dry Run) run: | refactor-agent check .
--ai-fix --dry-run
--provider openai --api-key ${{ secrets.OPENAI_KEY }}
--html-report report.html ```

Exit Codes & CI Integration

Refactoring Agent is designed to be CI-friendly.

Exit Code Meaning
0 Success. No blocking issues found (or --soft-fail enabled).
1 Failure. Critical or Major security issues found in error mode.
2 Internal Error. Bad arguments, missing dependencies, or crash.

Blocking vs Non-Blocking

By default, an issue breaks the build (Exit 1) if:

  1. Rule mode is "error" (default for security rules).
  2. Severity is critical or major.

Soft-Fail Mode (--soft-fail)

If you want to run the scan in CI to generate reports (e.g. SARIF/HTML) without breaking the build, use:

```bash refactor-agent check . --html-report report.html --soft-fail ```

In this mode, the tool will output all findings but always exit with code 0 (unless an internal crash occurs).

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

refactoring_agent-3.12.7.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

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

refactoring_agent-3.12.7-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file refactoring_agent-3.12.7.tar.gz.

File metadata

  • Download URL: refactoring_agent-3.12.7.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for refactoring_agent-3.12.7.tar.gz
Algorithm Hash digest
SHA256 8d725e35aaea011941117e8f43d0eb13fd4e5c02aa3782dbf30870efc5c7399f
MD5 637150d23ddb59602db5acf0e63781b3
BLAKE2b-256 8beee2222133d53af8cf448af710d3172a25408954d93c6661b40ee46ad9cfca

See more details on using hashes here.

File details

Details for the file refactoring_agent-3.12.7-py3-none-any.whl.

File metadata

File hashes

Hashes for refactoring_agent-3.12.7-py3-none-any.whl
Algorithm Hash digest
SHA256 4782f5520706d460e05d97169ac093a0eb7aa3f67a780fda6b3681ff5eebc9b0
MD5 385abbbac2ed6317a7b7406145d4f24a
BLAKE2b-256 358d8993a32632d4818b6fe22ef763db84a63027cf05279c563e47f9f6183f4e

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