@NotNull
  private List<String> fetchAvailableStates(@NotNull String issueId) throws URISyntaxException, IOException {
    URI endpoint = new URIBuilder(getRestApiUrl("api", "commands", "assist"))
      .addParameter("fields", YouTrackCommandList.DEFAULT_FIELDS)
      .build();

    String setStateCommandPrefix = "state ";
    HttpPost request = new HttpPost(endpoint);
    request.setEntity(new StringEntity(GSON.toJson(new YouTrackSingleIssueCommand(issueId, setStateCommandPrefix)),
                                       ContentType.APPLICATION_JSON));
    YouTrackCommandList commandList = getHttpClient().execute(request,
                                                              JsonResponseHandlerBuilder.fromGson(GSON)
                                                                .errorHandler(this::parseYouTrackError)
                                                                .toSingleObject(YouTrackCommandList.class));
    if (commandList == null) {
      return Collections.emptyList();
    }

    return ContainerUtil.mapNotNull(commandList.getSuggestions(), suggestion -> {
      String option = suggestion.getOption();
      // YouTrack might return suggestions such as "state Fixed" or "state Won't fix".
      return option.startsWith(setStateCommandPrefix) ? null : option;
    });
  }
@NotNull
  private List<String> fetchAvailableStates(@NotNull String issueId)