RFR: 1565: Only poll for updated MRs from GitLab [v11]

Magnus Ihse Bursie ihse at openjdk.org
Tue Sep 20 19:32:05 UTC 2022


On Mon, 19 Sep 2022 13:11:44 GMT, Erik Joelsson <erikj at openjdk.org> wrote:

>> This is another rather big patch, but again, with some explanation, it shouldn't be too scary. The most important part is the new `PullRequestPoller` class. This class implements a polling mechanism for PullRequests that tries to only return new or updated pull requests to a bot and guaranteeing that none are missed. The goal is to minimize unnecessary evaluations that currently take place, especially when polling Gitlab. I have added quite a few tests to verify (almost) all the functionality of the poller. For a more detailed explanation of all the challenges this poller faces, see the bug description.
>> 
>> In order to reduce impact, I'm not actually making any bot use the new poller yet. I'm filing followup issues to convert them one by one, at least to start. The retry and quarantine features in the poller should cover the current needs for the bots I have inspected.
>> 
>> Most of the rest of the changes are just adding `equals` and `hashCode` to a bunch of classes that we now need to compare (to know if a PR has been updated or not). This includes the `GitHubPullrequest`, `GitLabMergeRequest` and all the JSON types. For test code this also includes the `TestPullRequest` and `TestIssue` and their related data classes.
>> 
>> To test this properly, I needed to refactor some test classes. This work was moved to a separate change in SKARA-1589.
>
> Erik Joelsson has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Use Duration.ZERO

forge/src/main/java/org/openjdk/skara/forge/PullRequestPoller.java line 239:

> 237:             reviewsMap = Map.of();
> 238:         }
> 239:         return reviewsMap;

Just an aesthetic remark. It looks a bit odd that this method has a local variable instead of returning directly, when it is almost the very same as the method above.

-------------

PR: https://git.openjdk.org/skara/pull/1369


More information about the skara-dev mailing list