Skip to main content
Glama

MCP Memory Service

detect_breaking_changes.sh3.57 kB
#!/bin/bash # scripts/pr/detect_breaking_changes.sh - Analyze API changes for breaking changes # # Usage: bash scripts/pr/detect_breaking_changes.sh <BASE_BRANCH> [HEAD_BRANCH] # Example: bash scripts/pr/detect_breaking_changes.sh main feature/new-api set -e BASE_BRANCH=${1:-main} HEAD_BRANCH=${2:-$(git branch --show-current)} if [ -z "$BASE_BRANCH" ]; then echo "Usage: $0 <BASE_BRANCH> [HEAD_BRANCH]" echo "Example: $0 main feature/new-api" exit 1 fi if ! command -v gemini &> /dev/null; then echo "Error: Gemini CLI is not installed" exit 1 fi echo "=== Breaking Change Detection ===" echo "Base branch: $BASE_BRANCH" echo "Head branch: $HEAD_BRANCH" echo "" # Get API-related file changes echo "Analyzing API changes..." api_changes=$(git diff $BASE_BRANCH...$HEAD_BRANCH -- \ src/mcp_memory_service/tools.py \ src/mcp_memory_service/web/api/ \ src/mcp_memory_service/storage/base.py \ 2>/dev/null || echo "") if [ -z "$api_changes" ]; then echo "✅ No API changes detected" echo "" echo "Checked paths:" echo "- src/mcp_memory_service/tools.py (MCP tools)" echo "- src/mcp_memory_service/web/api/ (Web API endpoints)" echo "- src/mcp_memory_service/storage/base.py (Storage interface)" exit 0 fi echo "API changes detected. Analyzing for breaking changes..." echo "" # Check diff size and warn if large diff_lines=$(echo "$api_changes" | wc -l) if [ $diff_lines -gt 200 ]; then echo "⚠️ Warning: Large diff ($diff_lines lines) - analysis may miss changes beyond model context window" echo " Consider reviewing the full diff manually for breaking changes" fi # Analyze with Gemini (full diff, not truncated) result=$(gemini "Analyze these API changes for BREAKING CHANGES ONLY. A breaking change is: 1. **Removed** function, method, class, or HTTP endpoint 2. **Changed function signature**: parameters removed, reordered, or made required 3. **Changed return type**: incompatible return value structure 4. **Renamed public API**: function, class, endpoint renamed without alias 5. **Changed HTTP endpoint**: path or method changed 6. **Removed configuration option**: environment variable or config field removed NON-BREAKING changes (ignore these): - Added new functions/endpoints (backward compatible) - Added optional parameters with defaults - Improved documentation - Internal implementation changes - Refactoring that preserves public interface For each breaking change, provide: - Severity: CRITICAL (data loss/security) / HIGH (blocks upgrade) / MEDIUM (migration effort) - Type: Removed / Signature Changed / Renamed / etc. - Location: File and function/endpoint name - Impact: What breaks for users - Migration: How users should adapt API Changes: \`\`\`diff $api_changes \`\`\` Output format: If breaking changes found: ## BREAKING CHANGES DETECTED ### [SEVERITY] Type: Location **Impact:** <description> **Migration:** <instructions> If no breaking changes: No breaking changes detected.") echo "$result" echo "" # Check severity if echo "$result" | grep -qi "CRITICAL"; then echo "🔴 CRITICAL breaking changes detected!" exit 3 elif echo "$result" | grep -qi "HIGH"; then echo "🟠 HIGH severity breaking changes detected!" exit 2 elif echo "$result" | grep -qi "MEDIUM"; then echo "🟡 MEDIUM severity breaking changes detected" exit 1 elif echo "$result" | grep -qi "breaking"; then echo "⚠️ Breaking changes detected (unspecified severity)" exit 1 else echo "✅ No breaking changes detected" exit 0 fi

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/doobidoo/mcp-memory-service'

If you have feedback or need assistance with the MCP directory API, please join our Discord server