Dependabot-Core is a collection of Ruby gems containing the logic for updating dependencies across various languages.
dependabot-common
Contains shared functionality, such as logic for handling Git dependencies and code for creating pull requests across different platforms. It also defines base classes for implementing language or package manager support.
dependabot-{package-manager}
Each supported package manager has its own gem. These gems implement a standard set of service classes:
FileFetcher: Fetches dependency files (e.g., Gemfile, Gemfile.lock).FileParser: Parses dependency files to extract a list of dependencies.UpdateChecker: Checks if a dependency is up-to-date.FileUpdater: Updates a dependency file to the latest version.MetadataFinder: Looks up dependency metadata (e.g., GitHub URL).Version: Handles dependency version comparison logic.Requirement: Handles dependency requirement formats (e.g., >= 1.2.3).
dependabot-omnibus
A meta-gem that depends on all other language-specific gems. Including this gem provides support for all supported languages automatically.