private static void handleMergeRequest(@NotNull MergeRequest request,
                                         @NotNull ThrowableComputable<Boolean, IOException> mergeTask) throws IOException {
    request.onAssigned(true);
    try {
      boolean success = false;
      try {
        success = mergeTask.compute();
      }
      finally {
        request.applyResult(success ? MergeResult.RESOLVED : MergeResult.CANCEL);
      }
    }
    finally {
      request.onAssigned(false);
    }
  }
private static void handleMergeRequest(@NotNull MergeRequest request,
                                         @NotNull ThrowableComputable<Boolean, IOException> mergeTask)