Skip to content

Comprehensive Reform: Add 45+ MCP Servers, Professional OSINT Toolkit, and GitHub Integration #12

Comprehensive Reform: Add 45+ MCP Servers, Professional OSINT Toolkit, and GitHub Integration

Comprehensive Reform: Add 45+ MCP Servers, Professional OSINT Toolkit, and GitHub Integration #12

Workflow file for this run

name: CI - Test and Lint
on:
push:
branches: [ main, master, develop ]
pull_request:
branches: [ main, master, develop ]
jobs:
test:
name: Test Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pytest pytest-cov pytest-asyncio
- name: Run tests
run: |
# Run all tests in tests directory
python -m pytest tests/ -v --tb=short || true
- name: Test MCP Discovery
run: |
python tests/test_mcp_discovery.py
lint:
name: Lint and Code Quality
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- name: Install linting tools
run: |
python -m pip install --upgrade pip
pip install ruff flake8 black isort mypy
- name: Run Ruff
run: |
ruff check python/ --select E,F,W --ignore E501,F401 || true
- name: Check code formatting with Black
run: |
black --check python/ --line-length 100 || true
- name: Check imports with isort
run: |
isort --check-only python/ --profile black || true
security:
name: Security Scan
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install security tools
run: |
python -m pip install --upgrade pip
pip install bandit safety
- name: Run Bandit security scan
run: |
bandit -r python/ -ll -f json -o bandit-report.json || true
bandit -r python/ -ll || true
- name: Check dependencies for vulnerabilities
run: |
safety check --json || true
- name: Upload security reports
uses: actions/upload-artifact@v4
if: always()
with:
name: security-reports
path: |
bandit-report.json
retention-days: 30