{"owner":"renovatebot","repo":"renovate","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"files":{"AGENTS.md":"# AGENTS.md\n\nThis file provides guidance for AI agents working in this repository.\n\n## What is Renovate?\n\nRenovate is an automated dependency update tool that scans repositories for dependency files, checks for newer versions via datasources, and creates pull requests to update them. It supports 90+ package managers and multiple hosting platforms (GitHub, GitLab, Bitbucket, Azure DevOps, Gitea, Forgejo, Gerrit, etc.).\n\n## Development Documentation\n\nThe **./docs/development/** directory contains detailed documentation for developers, like style guides, testing guidelines, and configuration options.\n\nALWAYS READ ./docs/development/best-practices.md for guidance on code style.\n\n## Architecture\n\nRenovate is an automated dependency update tool. The runtime flow is:\n\n```mermaid\nflowchart TD\n    entry[\"lib/renovate.ts\\nEntry Point\"]\n    global[\"Global Worker\\nOrchestration & Autodiscovery\"]\n    init[\"Init\\nClone repo, read config\"]\n    extract[\"Extract\\nScan dependency files\"]\n    lookup[\"Lookup\\nFetch versions & compare\"]\n    update[\"Update\\nWrite changes, create PRs\"]\n    finalize[\"Finalize\\nPrune branches, update cache\"]\n\n    platform([Platform])\n    manager([Manager])\n    datasource([Datasource])\n    versioning([Versioning])\n\n    entry --> global\n    global --> init\n    init --> extract\n    extract --> lookup\n    lookup --> update\n    update --> finalize\n\n    global -. \"autodiscover repos\" .-> platform\n    init -. \"clone, read config\" .-> platform\n    extract -. \"parse dep files\" .-> manager\n    lookup -. \"fetch releases\" .-> datasource\n    lookup -. \"compare versions\" .-> versioning\n    update -. \"update dep files\" .-> manager\n    update -. \"create/update PRs\" .-> platform\n    finalize -. \"prune branches\" .-> platform\n    finalize -- \"next repository\" --> init\n```\n\n### Module System (`lib/modules/`)\n\nFour module categories, each with many implementations:\n\n- **manager/** — Detects and updates dependency files (npm, maven, dockerfile, go-mod, cargo, etc.). Each manager extracts dependencies from specific file types and knows how to update them.\n- **datasource/** — Fetches version/release information from registries (npm registry, Docker Hub, GitHub releases, PyPI, etc.).\n- **versioning/** — Parses and compares version strings per ecosystem (semver, docker, maven, pep440, etc.).\n- **platform/** — Interacts with Git hosting APIs (GitHub, GitLab, Bitbucket, Azure DevOps, Gitea, Forgejo, Gerrit, etc.) for PRs, issues, and comments.\n\nEach module category has an `api.ts` barrel file at its root.\n\n### Other Key Directories\n\n- **lib/config/** — Configuration parsing, validation, defaults, preset resolution\n- **lib/util/** — Shared utilities (HTTP, git, caching, regex, template, etc.)\n- **lib/workers/global/** — Top-level orchestration, autodiscovery, config loading\n- **lib/workers/repository/** — Per-repository processing pipeline\n- **lib/constants/** — Shared constants\n- **tools/** — Build tooling, doc generation, schema generation, custom lint rules\n\n### Generated Files\n\nFiles matching `*.generated.ts` in `lib/` are auto-generated during build (`pnpm generate:*`). Do not edit these directly.\n\n## Raising issues/feature requests\n\n**Do not create GitHub Issues directly.** Issue creation is restricted to repository administrators. Creating an issue as a non-administrator will result in being blocked from the repository.\n\nInstead, use **GitHub Discussions**: https://github.com/renovatebot/renovate/discussions/new/choose\n\nTwo discussion categories are available:\n\n- **Request help** (`.github/DISCUSSION_TEMPLATE/request-help.yml`) - for bugs, questions, or unexpected behavior. Include a minimal reproduction and relevant logs where possible.\n- **Suggest an idea** (`.github/DISCUSSION_TEMPLATE/suggest-an-idea.yml`) - for feature requests or improvements.\n\n**Do not attempt** to create a Discussion body without following the template, as it may result in being blocked from the repository.\n\n**Security vulnerabilities must not be reported on GitHub.** See [`SECURITY.md`](./SECURITY.md) for more details.\n\n## Contributing Notes\n\n- PRs require 100% test coverage. Use `/* v8 ignore ... */` sparingly when tests wouldn't prove anything.\n- Do not force push PR branches.\n- Follow the PR template (`.github/pull_request_template.md`).\n\n### Commands\n\nUse `pnpm` for all commands (NOT npm/npx).\n\n- **Install dependencies:** `pnpm install`\n- **Lint / Test / Autofix:** `pnpm check --all <optional path>`\n- **Full test suite:** `pnpm test` (runs lint + schema validation + all tests)\n- **Run from source:** `pnpm start` or `node lib/renovate.ts`\n\nTests use Vitest (invoked via `pnpm vitest`). Test files use `.spec.ts` suffix and are co-located with source. Globals from `jest-extended` and `expect-more-jest` are available in tests.\n"}}