docs: public CompletableFuture<ProjectRole> findRole(String projectName, User user) {
          requireNonNull(projectName, "projectName");
          requireNonNull(user, "user");
  
          if (user.isAdmin()) {
              return CompletableFuture.completedFuture(ProjectRole.OWNER);
          }
          return getProject(projectName).thenApply(project -> {
              if (user instanceof UserWithToken) {
                  final TokenRegistration registration = project.tokens().getOrDefault(
                          ((UserWithToken) user).token().id(), null);
                  return registration != null ? registration.role() : ProjectRole.GUEST;
              } else {
                  final Member member = project.memberOrDefault(user.id(), null);
                  return member != null ? member.role() : ProjectRole.GUEST;
              }
          });
      }