Hello,

On our Gerrit, CI results are displayed below the commit message as a HTML table. It is achieved by a few lines of JavaScript which parse the comments. I went to write a replacement based on a system builtin Gerrit: Checks API . An early example: https://phabricator.wikimedia.org/F35814298 .

I could use some early adopters to try out the plugin and gather some early feedback. If all goes well I will roll it on our Gerrit instance.

If you are curious or want to provide some feedback, below are the instructions to run it on your local machine.

In Chrome/Chromium, install the Gerrit Frontend Dev Helper extension. It is used to inject the JavaScript plugin from a locally running web server.

Create a new empty directory

Retrieve the JavaScript Gerrit plugin from Change 859083:

curl -o wm-checks-api.js 'https://gerrit.wikimedia.org/r/changes/operations%2Fsoftware%2Fgerrit~859083/revisions/16/files/plugins%2Fwm-checks-api.js/download'

Retrieve a PHP router for the PHP built-in webserver. It would inject cross origin headers when serving a response:

curl -o plugins-router.php 'https://gerrit.wikimedia.org/r/changes/operations%2Fsoftware%2Fgerrit~860885/revisions/1/files/plugins-router.php/download'

Start a PHP Webserver to serve the plugin:

php -S 127.0.0.1:8081  plugins-router.php

Head to https://gerrit.wikimedia.org/ and enable the Gerrit FE dev helper plugin. The page will reload.

Click again the browser extension and a configuration popup will appear. Using the ADD button add an entry with:

Click SAVE. The page reloads and the plugin should have been injected (there would be a little red box in the bottom right of the Gerrit page). When browsing a change that previously had CI comments, you should see a Checks tab which hold the results found by the plugin.

The series of changes is in Gerrit https://gerrit.wikimedia.org/r/q/topic:checks-api

--
Antoine Musso
(a good chunk of the code was written late at night over a week-end, I had to rerelearn JavaScript and discovered TypeScript in the process).