whitesource / merge-confidence

The home of Mend's Merge Confidence feature, for Renovate and Mend Remediate
66 stars 15 forks source link
dependencies dependency dependency-analysis dependency-manager

Repository Deprecation Notice

Deprecation Notice: Although still supported, the method specified in the rest of this README.md file for enabling Merge Confidence badges is no longer the preferred approach.

For up-to-date instructions, we highly recommend referring to the official documentation.

Merge Confidence

Look at the Merge Confidence badges before merging to:

Merge Confidence finds and flags undeclared breaking releases. It analyzes test and release adoption data across Mend Renovate’s early-adopting user base.

Renovate PR with Merge Confidence badges

Pull request badges

Merge Confidence adds the following badges to your pull requests:

Supported platforms

Merge Confidence badges for pull requests are available in beta on any supported Renovate platform, including Mend Remediate.

Supported languages

Data is available for packages from:

We plan to support more languages soon.

Enabling and disabling

If you use the Mend Renovate App (formerly WhiteSource Renovate App) then the badges are enabled automatically.

If you don't use the app, you can enable the badges by adding this to your Renovate config:

"extends": ["github>whitesource/merge-confidence:beta"]

If you want to disable the badges in the app, add this to your config:

"ignorePresets": ["github>whitesource/merge-confidence:beta"]

Confidence levels and their meaning

Merge Confidence uses the following confidence levels:

How it works

Mend's hosted Renovate App has created millions of pull requests on github.com to help developers update their dependencies since 2017. We bundle and analyze metrics such as package Age, package Adoption, and Passing tests. This way we can find packages that have undeclared breaking changes.

Algorithm

The algorithm that decides on the values is private and is not something we plan to share. Similar to a search engine's algorithm, we plan to adjust and improve it over time, for example by using historical data to set a baseline confidence level for packages.

Data

We plan to expose much more of the data via a companion website, such as number of users of a package and popular repositories which already updated to the version in question.

Explanations

npm package ranking

npm packages less than three days old can be unpublished, which can result in a service impact if you have updated to a package that gets unpublished. This is why npm packages can only get the High Confidence badge when they are at least three days old.

Percentage values weighting

The percentages for Adoption and Passing are weighted towards Organizations, private repositories, and projects with high test reliability. This means those values aren't raw percentages.

Roadmap

High-level information on planned improvements is available in the Merge Confidence Roadmap Project on GitHub.

Questions and feedback

You are invited to create an Issue if you have anything you'd like to discuss.