public GsonAzureRepoList getRepos(String serverUrl, String token, @Nullable String projectName) {
    String url = Stream.of(getTrimmedUrl(serverUrl), projectName, "_apis/git/repositories?" + API_VERSION_3)
      .filter(StringUtils::isNotBlank)
      .collect(joining("/"));
    return doGet(token, url, r -> buildGson().fromJson(r.body().charStream(), GsonAzureRepoList.class));
  }
@Test
  public void get_repos_without_project_name() throws InterruptedException {
    enqueueResponse(200, "{  \"value\": [],  \"count\": 0 }");

    GsonAzureRepoList repos = underTest.getRepos(server.url("").toString(), "token", null);

    RecordedRequest request = server.takeRequest(10, TimeUnit.SECONDS);
    String azureDevOpsUrlCall = request.getRequestUrl().toString();
    assertThat(azureDevOpsUrlCall).isEqualTo(server.url("") + "_apis/git/repositories?api-version=3.0");
    assertThat(request.getMethod()).isEqualTo("GET");
    assertThat(repos.getValues()).isEmpty();
  }