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

Magnus Ihse Bursie ihse at openjdk.org
Tue Sep 20 19:35:26 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

I think this looks good. You have commented the PollRequestPoller very well, and it is easy to follow (or at least as easy as it can get). Still, this is tricky logic and I can't say with 100% certainty that you are not missing any edge case etc. I think we can go with it, and if there are some issues we will hopefully spot that later.


Marked as reviewed by ihse (Reviewer).

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

More information about the skara-dev mailing list