{"id":32460127,"url":"https://github.com/yashwanth2408/neurocode","last_synced_at":"2026-04-29T23:03:07.510Z","repository":{"id":320023762,"uuid":"1080497845","full_name":"Yashwanth2408/neurocode","owner":"Yashwanth2408","description":"🛡️ AI-powered security scanner for automated PR reviews using CodeLlama, Semgrep \u0026 Bandit","archived":false,"fork":false,"pushed_at":"2025-10-21T13:26:22.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-21T15:09:17.767Z","etag":null,"topics":["ai","api","bandit","code-analysis","codellama","devsecops","docker","fastapi","llm","ollama","python","security","security-scanner","semgrep","webhook"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yashwanth2408.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security_scanner.py","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-21T13:04:16.000Z","updated_at":"2025-10-21T13:26:25.000Z","dependencies_parsed_at":"2025-10-21T17:00:18.605Z","dependency_job_id":null,"html_url":"https://github.com/Yashwanth2408/neurocode","commit_stats":null,"previous_names":["yashwanth2408/neurocode"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Yashwanth2408/neurocode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashwanth2408%2Fneurocode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashwanth2408%2Fneurocode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashwanth2408%2Fneurocode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashwanth2408%2Fneurocode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yashwanth2408","download_url":"https://codeload.github.com/Yashwanth2408/neurocode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashwanth2408%2Fneurocode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32447312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"ssl_error","status_checked_at":"2026-04-29T22:10:49.234Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","api","bandit","code-analysis","codellama","devsecops","docker","fastapi","llm","ollama","python","security","security-scanner","semgrep","webhook"],"created_at":"2025-10-26T11:22:11.651Z","updated_at":"2026-04-29T23:03:07.501Z","avatar_url":"https://github.com/Yashwanth2408.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NeuroCode - Python Security Scanner\n\n[![Live Demo](https://img.shields.io/badge/demo-live-success)](https://web-production-15a1.up.railway.app)\n[![Deployment](https://img.shields.io/badge/deployment-active-success)](https://railway.app)\n[![Platform](https://img.shields.io/badge/platform-Railway-blueviolet)](https://railway.app)\n[![Python](https://img.shields.io/badge/python-3.11-blue)](https://www.python.org/)\n[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)\n\n**Live Demo:** [https://web-production-15a1.up.railway.app](https://web-production-15a1.up.railway.app)\n\nA production-ready static application security testing (SAST) tool that analyzes Python code for security vulnerabilities using industry-standard Semgrep and Bandit engines. NeuroCode provides real-time vulnerability detection through an intuitive web interface and REST API, designed for developers and security teams.\n\n![NeuroCode Architecture](docs/images/architecture.png)\n\n---\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Key Features](#key-features)\n- [Demo](#demo)\n- [Architecture](#architecture)\n- [Detection Capabilities](#detection-capabilities)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Usage](#usage)\n  - [Web Interface](#web-interface)\n  - [REST API](#rest-api)\n  - [CI/CD Integration](#cicd-integration)\n- [Project Structure](#project-structure)\n- [Deployment](#deployment)\n- [Performance](#performance)\n- [Security Considerations](#security-considerations)\n- [Limitations](#limitations)\n- [Future Enhancements](#future-enhancements)\n- [Contributing](#contributing)\n- [License](#license)\n- [References](#references)\n- [Author](#author)\n\n---\n\n## Overview\n\nNeuroCode combines two industry-standard security scanning engines—Semgrep and Bandit—to provide comprehensive Python code analysis. The platform serves multiple use cases: manual code review through a web interface, automated pull request scanning via webhooks, and programmatic integration through a REST API.\n\nUnlike general-purpose AI tools like ChatGPT, NeuroCode is purpose-built for enterprise security requirements with deterministic scanning, audit trail support, self-hosting capabilities, and zero data leakage. The tool runs entirely within your infrastructure, ensuring compliance with SOC 2, ISO 27001, and other regulatory frameworks.\n\n### Why NeuroCode?\n\n**Enterprise-Grade Security**\n- Self-hosted deployment with no external data transmission\n- Deterministic results ensuring consistency across scans\n- Audit trail support for compliance requirements\n- HMAC signature verification for webhook security\n\n**Developer-Friendly**\n- Real-time feedback with sub-3-second scan times\n- Line-level precision with exact vulnerability locations\n- Severity-based categorization (HIGH/MEDIUM/LOW)\n- CWE and CVE mapping for standardized reporting\n\n**Automation-Ready**\n- REST API for programmatic access\n- GitHub/GitLab webhook integration\n- Background task processing for large codebases\n- JSON response format for easy parsing\n\n---\n\n## Key Features\n\n### Multi-Engine Scanning\n\n**Semgrep Engine**\n- Pattern-based vulnerability detection using 166+ security rules\n- Supports OWASP Top 10 vulnerability patterns\n- Language-agnostic rule engine with Python-specific optimizations\n- Low false-positive rate through precise pattern matching\n\n**Bandit Engine**\n- Python AST (Abstract Syntax Tree) analysis\n- 68 built-in security checks for Python-specific issues\n- CWE (Common Weakness Enumeration) mapping\n- Detects runtime security issues and code smells\n\n**Combined Analysis**\n- Dual-engine approach provides broader coverage than single-tool solutions\n- Deduplication logic removes redundant findings\n- Aggregated severity scoring across both engines\n- Comprehensive reporting with detailed remediation guidance\n\n### Web Interface\n\n- **Dark-Themed UI**: Modern, responsive interface optimized for developer workflows\n- **Real-Time Analysis**: Instant vulnerability detection with \u003c3 second scan times\n- **Syntax Highlighting**: Code editor with Python syntax highlighting\n- **Interactive Results**: Expandable vulnerability cards with severity badges\n- **Line-Level Precision**: Exact line numbers and code snippets for each finding\n- **Severity Filtering**: Quick filtering by HIGH/MEDIUM/LOW severity levels\n\n![Scan Results](docs/images/scan-results.png)\n\n### REST API\n\n**Core Endpoints**\n- `POST /api/scan` - Submit code for vulnerability scanning\n- `GET /api/health` - Health check with scanner status\n- `POST /webhook/github` - GitHub pull request webhook handler\n- `POST /webhook/gitlab` - GitLab merge request webhook handler\n\n**API Features**\n- JSON request/response format\n- Structured error handling with HTTP status codes\n- CORS enabled for frontend integration\n- Rate limiting support (configurable)\n- Async processing for large scans\n\n**Example Request**\ncurl -X POST https://web-production-15a1.up.railway.app/api/scan\n-H \"Content-Type: application/json\"\n-d '{\n\"code\": \"query = \"SELECT * FROM users WHERE id = \" + user_id\",\n\"language\": \"python\"\n}'  \n\n**Example Response**\n{\n\"success\": true,\n\"results\": {\n\"total_issues\": 1,\n\"severity_breakdown\": {\n\"high\": 0,\n\"medium\": 1,\n\"low\": 0\n},\n\"semgrep_findings\": [],\n\"bandit_findings\": [\n{\n\"test_id\": \"B608\",\n\"issue_severity\": \"MEDIUM\",\n\"issue_text\": \"Possible SQL injection vector through string-based query construction\",\n\"line_number\": 1,\n\"code\": \"query = \"SELECT * FROM users WHERE id = \" + user_id\"\n}\n]\n}\n}\n\n### CI/CD Integration\n\n**Webhook Infrastructure**\n- HMAC-SHA256 signature verification for security\n- GitHub pull request auto-scanning\n- GitLab merge request support (experimental)\n- Background task processing with FastAPI\n- Configurable scan timeout and file limits\n\n**Supported Platforms**\n- GitHub Actions (via webhook or API)\n- GitLab CI (via webhook or API)\n- Jenkins (via REST API)\n- CircleCI (via REST API)\n- Any CI/CD tool supporting HTTP requests\n\n**Integration Architecture**\nPull Request → Webhook → NeuroCode → Scan → Post Comment/Status\n\n---\n\n## Demo\n\n![NeuroCode Demo](docs/images/UI_GIF.gif)\n\nExperience NeuroCode in action with our live demo:\n\n**Try it now:** [https://web-production-15a1.up.railway.app](https://web-production-15a1.up.railway.app)\n\n**Sample vulnerable code to test:**\nimport os\n\nSQL Injection\nuser_id = input()\nquery = \"SELECT * FROM users WHERE id = \" + user_id\n\nCommand Injection\nos.system(\"ping \" + host)\n\nHardcoded Credentials\nPASSWORD = \"admin123\"\nAPI_KEY = \"sk_live_abc123\"\n\n**Expected results:** 3-4 vulnerabilities detected (1 HIGH, 1 MEDIUM, 2 LOW)\n\n---\n\n## Architecture\n\nNeuroCode follows a layered architecture with clear separation of concerns:\n\n![System Architecture](docs/images/architecture.png)\n\n### Component Breakdown\n\n**Layer 1: User Interface**\n- Web Browser: Dark-themed UI with code editor\n- API Clients: curl, Python scripts, CI/CD tools\n\n**Layer 2: API Gateway (main.py)**\n- FastAPI backend handling HTTP requests\n- Endpoints: `/api/scan`, `/api/health`, `/webhook/*`\n- Request validation and error handling\n\n**Layer 3: Scanner Core (security_scanner.py)**\n- `comprehensive_scan()` orchestration function\n- Manages scanner lifecycle and configuration\n- Aggregates results from multiple engines\n\n**Layer 4: Scanning Engines**\n- Semgrep: Pattern-based detection (166+ rules)\n- Bandit: Python AST analysis (68 checks)\n- Parallel execution for performance\n\n**Layer 5: Results Processor**\n- Severity classification (HIGH/MEDIUM/LOW)\n- Line number mapping\n- Deduplication logic\n- CWE ID assignment\n\n**Layer 6: Output**\n- Structured JSON response\n- Frontend-ready format\n- API-consumable structure\n\n---\n\n## Detection Capabilities\n\nNeuroCode identifies 8+ categories of security vulnerabilities with CWE mapping:\n\n| Vulnerability Type | CWE ID | Severity | Detection Engine | Example |\n|--------------------|--------|----------|------------------|---------|\n| SQL Injection | CWE-89 | HIGH/MEDIUM | Bandit, Semgrep | String concatenation in SQL queries |\n| Command Injection | CWE-78 | HIGH | Bandit | `os.system()`, `subprocess.call()` with user input |\n| Code Injection | CWE-94 | HIGH | Bandit, Semgrep | `eval()`, `exec()` with untrusted data |\n| Hardcoded Credentials | CWE-798 | MEDIUM/LOW | Bandit | Passwords, API keys in source code |\n| Weak Cryptography | CWE-327 | MEDIUM | Bandit, Semgrep | MD5, SHA1, weak ciphers |\n| Insecure Deserialization | CWE-502 | HIGH | Bandit | `pickle.loads()` on user data |\n| Path Traversal | CWE-22 | MEDIUM | Semgrep | Unvalidated file path operations |\n| Flask Debug Mode | CWE-489 | LOW | Bandit | `debug=True` in production |\n\n### Vulnerability Examples\n\n**SQL Injection (B608 - MEDIUM)**\nVulnerable\nquery = f\"SELECT * FROM users WHERE id = {user_id}\"\n\nSecure\nquery = \"SELECT * FROM users WHERE id = ?\"\ncursor.execute(query, (user_id,))\n\n**Command Injection (B605 - HIGH)**\nVulnerable\nos.system(f\"ping {host}\")\n\nSecure\nsubprocess.run([\"ping\", host], check=True)\n\n**Hardcoded Credentials (B105 - LOW)**\nVulnerable\nPASSWORD = \"admin123\"\n\nSecure\nPASSWORD = os.getenv(\"DATABASE_PASSWORD\")\n\n---\n\n## Installation\n\n### Prerequisites\n\n- **Python**: 3.11 or higher\n- **pip**: Latest version\n- **Git**: For cloning repository\n- **OS**: Linux, macOS, Windows (with WSL2)\n\n### Local Setup\n\n**1. Clone the repository**\ngit clone https://github.com/Yashwanth2408/neurocode.git\ncd neurocode\n\n**2. Create virtual environment**\npython -m venv venv\n\nLinux/macOS\nsource venv/bin/activate\n\nWindows\nvenv\\Scripts\\activate\n\n**3. Install dependencies**\npip install -r requirements.txt\n\n**4. Verify installation**\npython test_setup.py\n\nExpected output:\n✅ Semgrep installed and working\n✅ Bandit installed and working\n✅ FastAPI configured correctly\n\n**5. Start the application**\npython main.py\n\n**6. Access web interface**\nhttp://localhost:8000\n\n---\n\n## Configuration\n\nNeuroCode uses environment variables for configuration. Create a `.env` file in the project root:\n\n### Basic Configuration\n\nScanner Settings\nENABLE_SEMGREP=true\nENABLE_BANDIT=true\nENABLE_AI_ANALYSIS=false\n\nAPI Server\nAPI_HOST=0.0.0.0\nAPI_PORT=8000\n\n### GitHub Integration (Optional)\n\nGitHub Personal Access Token\nRequired permissions: repo (for private repos), write:discussion\nGITHUB_TOKEN=ghp_your_token_here\n\nWebhook Secret (generate with: openssl rand -hex 20)\nGITHUB_WEBHOOK_SECRET=your_webhook_secret_here  \n\n### GitLab Integration (Optional)\n\nGitLab Personal Access Token\nRequired permissions: api, read_repository\nGITLAB_TOKEN=glpat-your_token_here\n\nGitLab Instance URL (default: https://gitlab.com)\nGITLAB_URL=https://gitlab.com\n\nWebhook Secret\nGITLAB_WEBHOOK_SECRET=your_webhook_secret_here\n\n### Performance Tuning\n\nMaximum file size to scan (KB)\nMAX_FILE_SIZE_KB=500\n\nMaximum files to scan per PR/MR\nMAX_FILES_PER_PR=50\n\nScan timeout (seconds)\nSCAN_TIMEOUT_SECONDS=300\n\n### Configuration File Reference\n\nUse `.env.example` as a template:\ncp .env.example .env\nnano .env # Edit configuration\n\n---\n\n## Usage\n\n### Web Interface\n\n**1. Access the application**\nNavigate to `http://localhost:8000` (local) or your deployed URL\n\n**2. Paste code**\nUse the dark-themed code editor to paste your Python code\n\n**3. Click \"Scan Python Code\"**\nInitiate the security scan\n\n**4. Review results**\nVulnerabilities appear with:\n- Severity badges (HIGH/MEDIUM/LOW)\n- Detailed descriptions\n- Exact line numbers\n- CWE/CVE references\n- Remediation guidance\n\n![Clean Scan Results](docs/images/scan-clean.png)\n\n### REST API\n\n**Health Check**\ncurl https://web-production-15a1.up.railway.app/api/health\n\nResponse:\n{\n\"service\": \"NeuroCode Security Scanner\",\n\"status\": \"running\",\n\"version\": \"1.0.0\",\n\"scanners\": {\n\"semgrep\": true,\n\"bandit\": true,\n\"codellama_ai\": false\n}\n}\n\n**Manual Code Scan**\ncurl -X POST https://web-production-15a1.up.railway.app/api/scan\n-H \"Content-Type: application/json\"\n-d '{\n\"code\": \"import os\\nos.system(user_input)\",\n\"language\": \"python\"\n}'\n\n**Python Integration Example**\nimport requests\n\ndef scan_code(code):\nresponse = requests.post(\n\"https://web-production-15a1.up.railway.app/api/scan\",\njson={\"code\": code, \"language\": \"python\"}\n)\nreturn response.json()\n\nUsage\nresults = scan_code(\"query = 'SELECT * FROM users WHERE id = ' + user_id\")\nprint(f\"Found {results['results']['total_issues']} issues\")\n\n### CI/CD Integration\n\n#### GitHub Actions\n\n**Configure Webhook**\n1. Go to repository **Settings → Webhooks → Add webhook**\n2. **Payload URL**: `https://your-domain.com/webhook/github`\n3. **Content type**: `application/json`\n4. **Secret**: Enter your `GITHUB_WEBHOOK_SECRET`\n5. **Events**: Select \"Pull requests\"\n6. Click **Add webhook**\n\n**Alternative: API Integration**\n\nCreate `.github/workflows/security-scan.yml`:\nname: Security Scan\n\non:\npull_request:\ntypes: [opened, synchronize]\n\njobs:\nscan:\nruns-on: ubuntu-latest\nsteps:\n- uses: actions/checkout@v3\n\n  - name: Scan with NeuroCode\n    run: |\n      curl -X POST https://your-domain.com/api/scan \\\n        -H \"Content-Type: application/json\" \\\n        -d \"{\\\"code\\\":\\\"$(cat your_file.py)\\\",\\\"language\\\":\\\"python\\\"}\"\n\n\n#### GitLab CI\n\nCreate `.gitlab-ci.yml`:\nsecurity_scan:\nstage: test\nscript:\n- |\ncurl -X POST https://your-domain.com/api/scan\n-H \"Content-Type: application/json\"\n-d \"{\"code\":\"$(cat your_file.py)\",\"language\":\"python\"}\"\nonly:\n- merge_requests\n\n#### Jenkins\n\npipeline {\nagent any\nstages {\nstage('Security Scan') {\nsteps {\nscript {\ndef code = readFile('your_file.py')\ndef response = sh(\nscript: \"\"\"\ncurl -X POST https://your-domain.com/api/scan\n-H \"Content-Type: application/json\"\n-d '{\"code\":\"${code}\",\"language\":\"python\"}'\n\"\"\",\nreturnStdout: true\n)\necho response\n}\n}\n}\n}\n}\n\n\n## Performance\n\n### Scan Times\n\nCode less than 100 lines: Semgrep 1-2s, Bandit \u003c1s, Total 2-3s (Typical single file). Code 100-500 lines: Semgrep 2-5s, Bandit 1-2s, Total 3-7s (Module-level scan). Code 500-1000 lines: Semgrep 5-10s, Bandit 2-3s, Total 7-13s (Large file). Code 1000+ lines: Semgrep 10-15s, Bandit 3-5s, Total 13-20s (Very large file).\n\n### Optimization Tips\n\n**1. File Size Limits** - MAX_FILE_SIZE_KB=500 to skip files larger than 500KB\n\n**2. PR Scope Limits** - MAX_FILES_PER_PR=50 to limit files scanned per PR\n\n**3. Timeout Configuration** - SCAN_TIMEOUT_SECONDS=300 for 5 minute timeout\n\n**4. Concurrent Scanning** - Semgrep and Bandit run in parallel for optimal performance\n\n### Scaling Considerations\n\n**Horizontal Scaling** - Deploy multiple instances behind load balancer. Stateless design enables easy scaling. Background task queue for large scans.\n\n**Resource Requirements** - CPU: 1-2 cores (moderate load). Memory: 512MB - 1GB. Storage: less than 100MB (minimal).\n\n## Security Considerations\n\n### Best Practices\n\n**1. Token Management** - Use GitHub/GitLab tokens with minimal permissions. Store tokens in environment variables, never in code. Rotate tokens periodically (every 90 days).\n\n**2. Webhook Security** - Always configure webhook secrets. Verify HMAC signatures on all webhook requests. Use HTTPS for all webhook URLs.\n\n**3. Deployment Security** - Deploy behind HTTPS/TLS. Use environment variables for sensitive configuration. Enable rate limiting in production. Regular security updates for dependencies.\n\n**4. Data Privacy** - Code scanned locally within your infrastructure. No data sent to external services. Self-hosted deployment maintains complete privacy. Compliant with GDPR, CCPA, SOC 2.\n\n### Webhook Signature Verification\n\nNeuroCode automatically verifies webhook signatures: GitHub uses HMAC-SHA256 with X-Hub-Signature-256 header. GitLab uses secret token matching with X-Gitlab-Token header.\n\n## Limitations\n\n**Current Limitations:** 1. Python Only - Currently supports Python code analysis (multi-language support planned). 2. File Size - Maximum 500KB per file (configurable). 3. Public URL Required - Webhooks need publicly accessible endpoint (use ngrok for local testing). 4. AI Analysis - Disabled in production (optional Ollama integration available for local use).\n\n**Known Issues:** False positives may occur in complex code patterns. Some framework-specific security issues may be missed. Large monorepos (10,000+ files) may require optimization.\n\n**Workarounds:** Use .gitignore-style patterns to exclude test files. Configure MAX_FILES_PER_PR for large repositories. Review scan results manually before taking action.\n\n## Future Enhancements\n\n**Planned Features:** Multi-Language Support for JavaScript, TypeScript, Java, Go. Report Generation with PDF/HTML vulnerability reports. JIRA Integration for automatic issue creation from findings. Historical Tracking for vulnerability trends over time. Custom Rule Builder with UI for creating organization-specific rules. Slack/Email Notifications for real-time alerts on critical findings. Dashboard for analytics and metrics visualization. IDE Plugins for VS Code and PyCharm integration. Compliance Reports with SOC 2 and PCI-DSS formatted reports.\n\n**Contribution Ideas:** See CONTRIBUTING.md for ways to contribute\n\n## Contributing\n\nContributions are welcome! Please follow these guidelines:\n\n**1. Fork the repository** - git clone https://github.com/Yashwanth2408/neurocode.git followed by cd neurocode\n\n**2. Create feature branch** - git checkout -b feature/your-feature-name\n\n**3. Make changes** - Follow existing code style. Add tests for new functionality. Update documentation.\n\n**4. Test changes** - python test_multi_scanner.py\n\n**5. Commit changes** - git add . followed by git commit -m \"feat: Add your feature description\"\n\n**6. Push to fork** - git push origin feature/your-feature-name\n\n**7. Create Pull Request** - Provide clear description. Reference any related issues. Ensure CI checks pass.\n\n**Development Setup:** pip install -r requirements-dev.txt if dev dependencies exist\n\n## License\n\nMIT License - Copyright (c) 2025 Yashwanth Balaji - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n## References\n\n**Tools \u0026 Documentation:** Semgrep Official Documentation at https://semgrep.dev/docs/. Bandit Documentation at https://bandit.readthedocs.io/. FastAPI Framework at https://fastapi.tiangolo.com/. Railway Deployment Platform at https://railway.app/.\n\n**Security Standards:** OWASP Top 10 at https://owasp.org/www-project-top-ten/. CWE Common Weakness Enumeration at https://cwe.mitre.org/. CVE Common Vulnerabilities and Exposures at https://cve.mitre.org/.\n\n**Research Papers:** Semgrep: Lightweight Static Analysis at https://semgrep.dev/research/. Python Security Best Practices at https://docs.python.org/3/library/security_warnings.html.\n\n## Author\n\n**Yashwanth Balaji** - Engineering student and security enthusiast focused on building developer-friendly security tools.\n\n**Connect:** GitHub: @Yashwanth2408 at https://github.com/Yashwanth2408. LinkedIn: yashwanth-balaji at https://www.linkedin.com/in/yashwanthbalaji/. Email: yashwanthbalaji24@gmail.com.\n\n**Other Projects:** IMARA at https://github.com/Yashwanth2408/imara - Multi-agent research assistant.\n\n## Acknowledgments\n\n**Built With:** FastAPI at https://fastapi.tiangolo.com/ - Modern Python web framework. Semgrep at https://semgrep.dev/ - Static analysis engine. Bandit at https://bandit.readthedocs.io/ - Python security linter. Railway at https://railway.app/ - Deployment platform.\n\n**Inspired By:** SonarQube, Snyk, and other commercial SAST tools. Open-source security community. Developer-first tooling philosophy.\n\n## Support\n\n**Issues \u0026 Bug Reports:** Open an issue at GitHub Issues https://github.com/Yashwanth2408/neurocode/issues. Provide detailed reproduction steps. Include scan output and logs.\n\n**Feature Requests:** Use GitHub Discussions for feature proposals. Explain use case and expected behavior.\n\n**Questions:** Check existing documentation. Search closed issues. Ask in GitHub Discussions.\n\n## Star History\n\n⭐ Star this repository if you find it useful! Help others discover NeuroCode by starring the project on GitHub.\n\nBuilt with ❤️ using FastAPI, Semgrep, and Bandit. Making Python security accessible to every developer.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashwanth2408%2Fneurocode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyashwanth2408%2Fneurocode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashwanth2408%2Fneurocode/lists"}