@NotNull
  public static <T extends MergeRequest> T register(@NotNull T request, @Nullable Consumer<? super MergeResult> callback) {
    MergeCallback mergeCallback = callback == null ? null : new MergeCallback() {
      @Override
      public void applyResult(@NotNull MergeResult result) {
        callback.consume(result);
      }
    };
    return register(request, mergeCallback);
  }
@NotNull
  public static <T extends MergeRequest> T register(@NotNull T request, @Nullable Consumer<? super MergeResult> callback)