Automatically analyze your source code to surface issues and see if quality is improving or getting worse with the latest commit.
Interested in joining the conversation for this category? Please join us in our public epic where we discuss this topic and can answer any questions you may have. Your contributions are more than welcome.
Up next for code quality is gitlab-ce#14974, which will allow teams to set a threshold of code quality degradation beyond which the pipeline will fail to force a decision on introducing these types of issues or not. It will help bring the importance of code quality to the fore and help teams deliver faster.
This category is currently at the "Minimal" maturity level, and our next maturity target is Viable (see our definitions of maturity levels). Key deliverables to achieve this are:
Azure DevOps does not offer in-product quality testing in the same way we do with CodeClimate, but does have a number of easy to find and install plugins in their marketplace that are both paid and free. Their SonarQube plugin appears to be the most popular, though it seems to have some challenges with the rating.
In order to remain ahead of Azure DevOps, we should continue to push forward the feature capability of our own open-source integration with CodeClimate. Issues like gitlab-ee#2766 (per-branch view for how code quality progresses over time) moves both our vision forward as well as ensures we have a high quality integration in our product. To be successful here, though, we need to support formats Microsoft-stack developers use: gitlab-ce#62727 gets the ball rolling. Because CodeClimate does not yet have deep .NET support, we may need to build something ourselves.
An interesting suggestion from the CS team is gitlab-ee#8406, which is beyond just code quality but code quality could lead the way. This item introduces instance wide code statistics, showing (for example) programming languages used, code quality statistics, and code coverage.
The most popular item is gitlab-ee#4189, which creates a CI view for code quality. Currently the code quality information is shown in the MR widget.
Showing code coverage delta in the MR widget (gitlab-ee#2526) is a useful feature for internal users that will help us make better decisions about if a merge request should be merged, or if it needs further refinement.
In terms of moving the vision forward, gitlab-ee#2766 (which creates a per-branch view for code quality) is an interesting approach. This brings code quality tracking out of the MR widget, and looks at how code quality is changing over a longer period of time in the context of a branch (or master.)
We also want to provide better support for .NET users of GitLab. gitlab-ce#62727 adds support for more traditional Microsoft stack code coverage tools, making GitLab just as competent as Azure DevOps at showing code coverage.