Softagram’s GitLab merge request automation explained

Tommi Tallgren on November 6, 2019

Softagram focus on helping developers’ everyday life by automated analysis and visualization of code. Now we are available in GitLab partner page. (Additionally to our integrations to Azure DevOps, GitHub, Gerrit, Helix TeamHub and Bitbucket). Merge request automation can be found directly at the GitLab partners page under Code Quality apps. 

Example analysis of merge request. Softagram Impact Report seen in GitLab discussion flow:

GitLab Merge Request Automation Example

How to read Softagram Impact Report in GitLab Merge Request?

GitLab_Header_Softagram

Header tells the merge request number and the latest commit id

Note that Softagram keeps only one report in the pull request at a time. The same report is updated with every commit.

Change Overview

GitLab Merge Request Softagram_Change_overview

The Change Overview graph shows the changed code and its possible impact in one glance. You immediately see which parts of the codebase are touched (AssertionTets.java, and Assert.java etc in the example). The impact of the change "impacted" areas are seen clearly. In example, e.g. areas in Internal, Experimental, and .e ComparisonFailure.java are possibly intapacted by the changed files.

Color codes:

  • Green = new files and new dependencies
  • Orange = modified files
  • Red = removed files and removed dependencies
  • Blue = impacted files/areas
  • Grey = elements or dependencies that are not changed, but connected to changed elements via dependency changes. Either using the changed files, or due added/removed dependencies.

If the change is large, the graph is automatically abstracted to provide only the meaningful amount of information. Some elements are then shown in higher level. For example, function changes are shown in class or file level and impacted areas could be shown only in folder (component) level as seen in the example.

If you want to go on a very fine-grained level with the dependencies and impact, you can also open the pull request in Softagram Desktop. Please read this article of how to do that!

Details of Dependency Changes

This graph illustrates only the removed, added and modified dependencies, and related elements in this particular pull request. It also shows all new or changed elements (the ones with new dependencies) as well as all added dependencies to external libraries (including any built-in libraries of your programming language).

Insights

Insights are optional value added information that are present when an actionable issues are found. Currently Softagram provides Co-Change Alerts and Dependency Rule violations automatically to each code review.

Softagram insights example

Co-change Alerts are analysed automatically with a machine learning algorithm based on the change history of the projects. The system automatically detects which files are most likely to be changed at the same time based on the history and alerts if this given pull request is changing only one of them without the others.

Dependency Rule Violations will alert if you are trying to introduce a new unwanted dependency in this pull request. Rules are predefined by the users. Existing rule violations are seen in the graph with exclamation marks, but only the violations added or removed by this pull request are described in text. 

Read this help document to learn how to configure Dependency Rules.

Watch this short video to see and understand it in action (video example from GitHub)

Smarter Software development with automation

Smart software development with automation and transparency is the new way to code. Softagram is making things easier and visual. Our unique approach changes the merge request process. We provide machine created, but human-readable visualization of the code and code change. Instead of reading hundreds of lines of text, the review is now possible to start with one simple picture.

With Softagram, developers can “see” the big picture and avoid getting lost in the maze of coding lines. They can focus on the code, understand better and thus better manage the project. Automated dependency rule checks keeps the code design and modularity in the wanted level. The benefits of this approach are multiple: it saves time, superpowers the team, brings fast and visual code reviews, and minimizes time spent on manual documentation. For team managers, it dramatically increases team productivity and offers visibility to codebase quality and history.

Ville Laitila, CTO, and founder of Softagram, explains that the first time the pull request reviewer can first focus on the most important matter. “Reviewers can see in one picture if the implementation is done to correct location, utilizing correct internal and external elements, and not violating any dependency rules. Softagram gives that understanding, instead of using a lot of time on reading the code to understand what is going on.”

Softagram now provides seamless integration to GitLab merge request. Reports appear automatically to the discussion flow right after the merge request is done. GitLab cloud can be taken into use with a free trial at: https://softagram.com/. An on-premises solution is available for GitLab customers as well. 

Read more