Pull Request Monitoring Plugin - Warnings Next Generation Portlet released

The first portlet for the Pull Request Monitoring plugin was released yesterday. The Warnings Next Generation portlet is available with version 9.2.0, thanks to @uhafner for the collaboration!
I also released the version 1.7.3 with some minor fixes and improvements of the Pull Request Monitoring plugin.

I am looking forward to your feedback!

Hi everybody,

my name is Simon, I am a student of business informatics at the university of applied science in Munich and as part of my bachelor thesis I am writing a Jenkins plugin - the Pull Request Monitoring plugin.

This plugin offers a possibility to display and aggregate certain delta metrics of a pull request in a user configurable dashboard. E.g. it may show the number of added tests, the changed code coverage, the number of changed files, the number of new warnings, etc. It relies on other plugins to provide such a portlet contains the plugin specific delta metrics for a pull request. The first version with an experimental API is already available and also the first portlets for the Warnings Next Generation plugin are already in progress and will soon be available. More portlets, e.g. for the Git Forensics or Code Coverage API plugin will follow and I hope that there will be more contributors who provide portlets for their plugins and therefore for the dashboard.

How it works

Currently only multi branch pipeline projects are supported. Each run gets an action - the dashboard - if the run is part of a pull request. By default, an empty dashbaord is added to each PR build. Furthermore, there is the possibility to pre-configure the dashboard via the pipeline, so that the corresponding dashboard is automatically filled according to the given configuration.

In the dashboard itself, the configuration can then be adjusted by moving, deleting or adding individual portlets. When adding, it is also possible to deviate from the settings specified by the portlet (height, width, color) and overwrite them. For more details on how to set up and deliver such a portlet as a plugin, I would like to refer to the README.md.

For now, the configuration is saved as a user property. The default configuration is either a empty json array or the configuration of the jenkinsfile, if provided. If the user will change the default configuration in the dashboard by rearrange it or adding a new portlet, the default configuration will be overwritten and saved as custom configuration for the project.

From now on, this configuration will be regarded as the default for every build in this project. You can track the default and custom configuration in the settings modal of the dashboard, check if there are changes to the provided configuration since the last build or if the actual configuration synced with the default one. There you can also synchronise the current configuration (custom) with the default configuration, for example, the configuration was changed in the Jenkinsfile and is not displayed due to the local custom changes.

I am interested in your opinions, suggestions and wishes and would ask you to install the plugin and try it out. The plugin comes with two example portlets so that you can interact with the dashboard a bit and try it out. At the Jenkins UX SIG meeting on 28. April, there was a little live demo of the first beta version (1.0.3-beta).

Please do not hesitate to contact me if you have any questions!

Kind regards

Simon Symhoven

1 Like

Thanks a lot! A screenshot would be very useful for readers. Looking forward to trying it out. I also wonder whether it would be possible to use the portlet to generate a trend image for GitHub Checks

Thanks Oleg! I added a screenshot, unfortunately I am not allowed to add multiple ones. I agree, that’s a good idea.

can you DM me the error your seeing? I don’t see any restrictions but i’m new to this.

my guess is that first post users can’t add any attachments, but your good now that you’ve completed a post and commented.

I also wonder whether it would be possible to use the portlet to generate a trend image for GitHub Checks

This is not possible as images are rendered on the client side only (when ECharts is used).

I thought about suggesting a GSoC project to create a plugin that renders client side images using a headless browser like Puppeteer but did not find the time this year. Maybe a project for next year.

This is not possible as images are rendered on the client side only (when ECharts is used).
What about https://phantomjs.org/ or any other implementation for the client side UI capture? It is not ideal but technically possible.

FYI, PhantomJS has been depreciated for a few years now. Headless chrome and firefox and a few others, especially via puppeteer are the preferred and updated methods. Not really the point here, but i just got into a discussion about phantomjs today at work

Yes, that only the first post I think.