The mlbridge bot can end up in an endless retry loop when trying to construct a closed notice for a PR, if it was closed without a user associated with it in Github. In ArchiveItem.java we have this line:
var closedBy = pr.closedBy().orElseThrow(() -> new RuntimeException("PR is not closed by anyone: " + pr.id()));
This PR was recently closed in such a way:
https://github.com/openjdk/aarch32-port-jdk8u/pull/1
This causes the bot to fail with exception and then retry endlessly.
I'm not sure in what situation the closed action ends up without an actor in Github, but since it can happen, we need to handle it. That logic was introduced in this PR https://github.com/openjdk/skara/pull/983. Prior to that, we just used the pr author for this value. I think that will serve as a reasonable fallback.
var closedBy = pr.closedBy().orElseThrow(() -> new RuntimeException("PR is not closed by anyone: " + pr.id()));
This PR was recently closed in such a way:
https://github.com/openjdk/aarch32-port-jdk8u/pull/1
This causes the bot to fail with exception and then retry endlessly.
I'm not sure in what situation the closed action ends up without an actor in Github, but since it can happen, we need to handle it. That logic was introduced in this PR https://github.com/openjdk/skara/pull/983. Prior to that, we just used the pr author for this value. I think that will serve as a reasonable fallback.