RFR: 1706: Store github checks in PR unique way [v2]

Guoxiong Li gli at openjdk.org
Fri Feb 10 11:58:47 UTC 2023

On Thu, 9 Feb 2023 22:40:42 GMT, Zhao Song <zsong at openjdk.org> wrote:

>> Currently, checks in GitHub are stored in the commit. So if multiple PRs share the same source commit, then they will compete with the check-runs and store their different checksum in there. This in turn means that all, or most of those PRs will always think the check is outdated when a CheckRun is performed next.
>> This patch adds repository name and pull request id to the name of check in Github. Therefore, even if multiple PRs share the same source commit, every PR will store a unique check in the commit and there is no competition exists.
> Zhao Song has updated the pull request incrementally with one additional commit since the last revision:
>   fix problems

bots/pr/src/main/java/org/openjdk/skara/bots/pr/CheckRun.java line 1091:

> 1089:         return pr.repository().forge().name().equals("GitHub") ? "jcheck-" + pr.repository().name() + "-" + pr.id() : "jcheck";
> 1090:     }
> 1091: 

Why does the `GitLab merge request` not need to change such name? I think GitLab also needs.

This method is now put in class `CheckRun` and is used in both `CheckRun` and `CheckWorkItem`. It seems not a good design. We can move the method to the interface `PullRequest` with a default implementation, just like below. Then we can use `pr.getJcheckName()` in both `CheckRun` and `CheckWorkItem`.

// file PullRequest.java
    default String getJcheckName() {
        return "jcheck-" + repository().name() + "-" + id();


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

More information about the skara-dev mailing list