@Override
  public ProjectResultReport postRepositoryProject(
      RepositoryProjectExecutionRequest request, boolean async, HttpBasicAuth auth)
      throws ApiException {
    setAuthentication(auth);
    List<Pair> queryParams =
        buildQueryParameters(
            async, request.getTestCaseName(), request.getTestSuiteName(), request.getEnvironment());
    queryParams.add(new Pair("projectFileName", request.getProjectFileName()));
    if (request.getRepositoryName() != null) {
      queryParams.add(new Pair("repositoryName", request.getRepositoryName()));
    }

    return invokeAPI(
        ServerDefaults.SERVICE_BASE_PATH + "/executions/project",
        POST.name(),
        request.getCustomPropertiesMap().values(),
        "application/json",
        queryParams,
        null);
  }