module.exports = { "endpoint": "https://code.mcvsoftware.com/api/v1", // replace it with your actual endpoint "gitAuthor": "Renovate Bot ", "platform": "gitea", "onboardingConfigFileName": "renovate.json", "autodiscover": true, "GITHUB_COM_TOKEN": "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", "optimizeForDisabled": true, "extends": [ "config:recommended", "schedule:earlyMondays" ], "timezone": "America/Mexico_City", "assignees": ["manuelcortez"], "reviewers": ["manuelcortez"], "labels": ["renovate", "dependencies"], // Control de concurrencia "prConcurrentLimit": 10, "branchConcurrentLimit": 8, "packageRules": [ { "description": "Flutter y Dart - agrupar updates menores", "matchManagers": ["pub"], "groupName": "Flutter dependencies", "separateMinorPatch": false, "schedule": ["before 6am on monday"] }, { "description": "Python requirements - agrupar patches", "matchManagers": ["pip_requirements", "pipenv", "poetry"], "matchUpdateTypes": ["patch"], "groupName": "Python patches", "automerge": true }, { "description": "Python minor/major - separados", "matchManagers": ["pip_requirements", "pipenv", "poetry"], "matchUpdateTypes": ["minor", "major"], "separateMajorMinor": true, "excludePackageNames": ["django", "flask"] }, { "description": "Django - major updates con cuidado especial", "matchPackageNames": ["django"], "major": { "automerge": false, "labels": ["breaking-change", "django-major"] }, "minor": { "automerge": false } }, { "description": "JavaScript dev dependencies", "matchManagers": ["npm", "yarn"], "matchDepTypes": ["devDependencies"], "groupName": "JS dev dependencies", "automerge": true, "matchUpdateTypes": ["patch", "minor"] }, { "description": "Docker images - weekly updates", "matchManagers": ["docker-compose", "dockerfile"], "schedule": ["before 6am on monday"], "groupName": "Docker images" }, { "description": "Major updates - requieren review manual", "matchUpdateTypes": ["major"], "automerge": false, "labels": ["major-update", "breaking-change"], "prBody": "🚨 **MAJOR VERSION UPDATE** 🚨\n\nEste PR actualiza {{depName}} de `{{currentVersion}}` a `{{newVersion}}`.\n\n⚠️ **POSIBLES BREAKING CHANGES** - Revisa:\n- [Changelog de {{depName}}]({{sourceUrl}}/releases)\n- [Documentación de migración]({{sourceUrl}})\n- Tests antes de hacer merge\n\n---\n⚡ Generado por Renovate Bot", "addLabels": ["needs-manual-review"] }, { "description": "Security updates - high priority", "matchPackagePatterns": ["*"], "vulnerabilityAlerts": { "enabled": true }, "labels": ["security", "renovate"], "automerge": false } ], // Configuración de automerge "automerge": true, "platformAutomerge": true, "automergeType": "pr", "automergeStrategy": "squash", // Configuración de automerge por tipo de update "major": { "automerge": false, "labels": ["major-update", "breaking-change"], "prPriority": 10 // Alta prioridad para review manual }, "minor": { "automerge": false, "labels": ["minor-update"] }, "patch": { "automerge": true, "labels": ["patch-update"] }, // Configuración de commits y PRs "semanticCommits": "enabled", "commitMessagePrefix": "chore(deps):", "prTitle": "{{#if isPinDigest}}📌 Pin {{depName}} digest{{else}}{{#if isMajor}}🚨 MAJOR: {{else}}{{#if isMinor}}📈 MINOR: {{else}}🔧 PATCH: {{/if}}{{/if}}{{#if groupName}}{{{groupName}}}{{else}}{{depName}}{{/if}}{{#unless groupName}} to {{#if isSingleVersion}}v{{{newVersion}}}{{else}}{{{newValue}}}{{/if}}{{/unless}}{{/if}}", // Mantenimiento de lockfiles "lockFileMaintenance": { "enabled": true, "schedule": ["before 3am on the first day of the month"] }, // Configuración de rebase y conflictos "rebaseWhen": "conflicted", "ignoreTests": false, // Configuración de logs y notificaciones "suppressNotifications": ["prIgnoreNotification"], "gitIgnoredAuthors": ["renovate[bot]"], "includeForks": false, // Limitar a repos que tengan renovate.json "onboarding": false, "requireConfig": "optional" };