Use the same trick used in zuul status page to store a cookie
with the last state so when we load another review, we use the last
setting to show or hide the CI comments.
Change-Id: If912b88c3ad68c1dcaa086ad76abb54ecf5b576b
As gerrit is a big JS-based webapp, traditional hooks for executing code
on page-load (window.onload and friends) don't get executed on every
page as a user is exploring the UI. Instead we rely on the appearance
and disappearance of the "working..." message to know when a user is
looking at a new page. The test for this was not precise enough, which
was causing the ci_page_loaded function to be called twice on page load.
This patch changes the MutationObserver so that it only calls the
function once, by checking that it is the "style" attribute that has
changed. The other call was being triggered by a change to the
"aria-hidden" attribute.
Change-Id: If870d53b5760c140c84e5711ada94609a60e0cdb
The previous hideci enhancements and refactor was not tested on the
new change screen, which sadly removes all the semantic markup around
the displayed changes (boo gerrit).
Do the base parsing based on the looping over the p tags as was done
in the initial version instead of matching divs by semantic tags. A
few of the parsing functions needs to be adapted to know if they are
on old vs. new change screen (like finding the date).
Spot tested locally with new and old change screen, seems to be
working.
Change-Id: Ieadfb78fa4d152d12cb64fc69d808fa510d28abd
Change hideci to only show the most recent results of a pipeline. For
entries where the pipeline is not parsable we default to assuming the
results were in the 'check' pipeline.
3rd Party CI systems are assumed to be 'check' pipeline for the
purposes of this patch.
Order the display of these results for parsed pipeline entries first,
then non parsed entries after. That has the impact of making all the
Jenkins results be the top of the page and 3rd Party come later.
Also provide a (### rechecks) comment if we find more than 1 result at
the current patch set number. This helps reviewers understand that
this patch might be unstable as it's been rechecked to get to the
current state.
Change-Id: I153f73000f9392af6c8bbe850716645b3ba836a0
This is a refactors the hideci code into much smaller functions,
making the whole thing a bit more readable for fixing this going
forward. This was done in order to add a couple of new features. The
smaller functions should also make this code much easier to review.
After the refactor we now do a top down parsing of all comments in a
review, classifying them as 'is_ci' and 'is_trusted_ci' so that we can
more easily compute the results we want going forward.
In the process a few additional features were added.
1) CI results are only shown for the latest patch set, even if no CI
system has reported on it. This is accomplished via
ci_latest_patchset.
2) If CI system is in merge conflict, that's displayed in the results
box.
3) Test results records are lifted in total to the test results
display panel, and each set of test results includes the date that we
got it from. This means that for patches that get 'rechecked' a lot,
you'll see the whole history of test results on current patch. You
will also be able to quickly realize that the current test results are
older than the last recheck comment.
The UX for part 3 is different, and may need tweaking going forward,
however the merge of results from different runs was creating a lot of
confusion to reviewers, so this errors on the side of more clarity.
Because of the largely inconvenient workflow for development (the fact
that you basically need to copy / paste function definitions into
chrome dev console) this isn't broken up as smaller patches. This
should, hopefully, make future patches much easier on this code
though.
Change-Id: I3f128a449756fd6988f3810863cd1d49c476b0dd
Show the merge failure comment iff the reporting system is Jenkins
and it is the most recent comment.
If there is a displayed merge comment, do not display the results
table (as it is misleading).
Change-Id: I873a04112f180f296d6e21f6e26be7ac3574e047
Use jquery to scrape the comments for CI results and put them in
a table. Hide CI comments by default (the toggle button remains
so they can be displayed).
Change-Id: I2e1487e9482bfc3487ee2e94cb125f78d4d473a7
There are many CIs which automatically post comments in Gerrit and there
is no way to filter those out from the normal comments posted by
reviewers.
This patch adds a new "Toggle CI" button to the Gerrit interface which
shows/hides CI comments. The button is displayed only on review pages
and is hidden everywhere else.
Change-Id: I6ffca12d6314c63c0f1ab97d2c98a84a6ac790c9
Closes-Bug: 1282019