public void release()

in src/main/java/org/apache/sling/cli/impl/jira/VersionClient.java [232:268]


    public void release(Release release) throws Exception {
        List<Issue> issues = findIssues(release);
        List<Issue> unresolvedIssues = new ArrayList<>();
        issues.forEach(issue -> {
            if (issue.getResolution() == null) {
                unresolvedIssues.add(issue);
            }
        });
        if (unresolvedIssues.isEmpty()) {
            closeIssues(issues);
            Version version = find(release);
            if (!version.isReleased()) {
                HttpPut put = newPut("version/" + version.getId());
                StringWriter w = new StringWriter();
                try (JsonWriter jw = new Gson().newJsonWriter(w)) {
                    jw.beginObject().name("released").value(true).name("releaseDate").value(dateProvider.getCurrentDateForJiraRelease())
                            .endObject();
                }
                put.setEntity(new StringEntity(w.toString()));
                try (CloseableHttpClient client = httpClientFactory.newClient()) {
                    try (CloseableHttpResponse response = client.execute(put, httpClientFactory.newPreemptiveAuthenticationContext())) {
                        int statusCode = response.getStatusLine().getStatusCode();
                        if (statusCode != 200) {
                            throw new IOException(String.format("Unable to mark %s as released. Got status code %d.", release.getFullName(),
                                    statusCode));
                        }
                    }
                }
            } else {
                LOGGER.info("Version {} was already released on {}.", version.getName(), version.getReleaseDate());
            }
        } else {
            String report =
                    unresolvedIssues.stream().map(issue -> String.format("%s/browse/%s", jiraURL, issue.getKey())).collect(Collectors.joining(System.lineSeparator()));
            throw new IllegalStateException("The following issues are not fixed:\n" + report);
        }
    }