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.5.tar.gz (20.8 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.5-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: refactoring_agent-3.12.5.tar.gz
  • Upload date:
  • Size: 20.8 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.5.tar.gz
Algorithm Hash digest
SHA256 d6c4a1c0212acc4a65dd7f430b756ce0d049ecd8d604043683dbbe39feb5ab81
MD5 02aa80ea2ad07e507f6c325c38929b17
BLAKE2b-256 1c7e712151ac56b10a0b588c2a6de1fa2161bbae1688bcfa589f467cd450db47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for refactoring_agent-3.12.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4d194796d06aa2112a915b7fdbaccf7479ed6987e2ef1b39ff79223a300b8834
MD5 529c2a065886afac5d79739cc7c89b5b
BLAKE2b-256 2825b85703000bfa335699faf5208c3f30d037dd08ecd36a116f7d98bcf65e99

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