#5 - Create release tickets and release versions for Jira-tracked projects.
Creates jira release version for a train iteration if not present. Creates release tickets in Jira and GitHub if not present. Added pre-release verification that the release ticket is present and all other tickets are closed. Allow singular ticket and release version creation. Add integration tests using WireMock. Add command to self-assign release tickets. Added CLI commands: * jira releasetickets * jira create releasetickets * jira self-assign releasetickets * jira create releaseversions * github tickets * github releasetickets * github create releaseversions * github create releasetickets Original pull request: #14.
This commit is contained in:
committed by
Oliver Gierke
parent
ce01cabdf3
commit
7f1ae27d3e
@@ -16,28 +16,223 @@
|
||||
|
||||
package org.springframework.data.release.jira;
|
||||
|
||||
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static com.github.tomakehurst.wiremock.client.WireMock.*;
|
||||
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.hamcrest.Matchers;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.release.AbstractIntegrationTests;
|
||||
import org.springframework.data.release.model.Iteration;
|
||||
import org.springframework.data.release.model.ModuleIteration;
|
||||
import org.springframework.data.release.model.Projects;
|
||||
import org.springframework.data.release.model.ReleaseTrains;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
|
||||
import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
|
||||
import com.github.tomakehurst.wiremock.common.ClasspathFileSource;
|
||||
import com.github.tomakehurst.wiremock.junit.WireMockRule;
|
||||
|
||||
/**
|
||||
* Integration Tests for {@link GitHubIssueTracker} using a local {@link WireMockRule} server.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class GitHubIssueTrackerIntegrationTests extends AbstractIntegrationTests {
|
||||
|
||||
@Autowired GitHubConnector gitHubIssueTracker;
|
||||
public static final String ISSUES_URI = "/repos/spring-projects/spring-data-build/issues";
|
||||
public static final String MILESTONES_URI = "/repos/spring-projects/spring-data-build/milestones";
|
||||
public static final ModuleIteration BUILD_HOPPER_RC1 = ReleaseTrains.HOPPER.getModuleIteration(Iteration.RC1,
|
||||
"Build");
|
||||
|
||||
@Rule public WireMockRule mockService = new WireMockRule(
|
||||
wireMockConfig().port(8888).fileSource(new ClasspathFileSource("integration/github")));
|
||||
|
||||
@Rule public ExpectedException expectedException = ExpectedException.none();
|
||||
|
||||
@Autowired IssueTracker github;
|
||||
|
||||
@Before
|
||||
public void before() throws Exception {
|
||||
github.reset();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void getTickets() throws Exception {
|
||||
public void findTicketsByTicketIds() throws Exception {
|
||||
|
||||
mockGetIssueWith("issue.json", 233);
|
||||
|
||||
Collection<Ticket> tickets = github.findTickets(Projects.BUILD, Arrays.asList("233"));
|
||||
assertThat(tickets, hasSize(1));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void ignoresUnknownTicketsByTicketId() throws Exception {
|
||||
|
||||
Collection<Ticket> tickets = github.findTickets(Projects.BUILD, Arrays.asList("123"));
|
||||
assertThat(tickets, hasSize(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void emptyResultWithEmptyTicketIds() throws Exception {
|
||||
|
||||
Collection<Ticket> tickets = github.findTickets(Projects.COMMONS, Arrays.asList());
|
||||
assertThat(tickets, hasSize(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void getReleaseTicketForReturnsTheReleaseTicket() throws Exception {
|
||||
|
||||
mockGetMilestonesWith("milestones.json");
|
||||
mockGetIssuesWith("issues.json");
|
||||
|
||||
Ticket releaseTicket = github.getReleaseTicketFor(BUILD_HOPPER_RC1);
|
||||
assertThat(releaseTicket.getId(), is(Matchers.equalTo("#233")));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void noReleaseTicketFound() throws Exception {
|
||||
|
||||
expectedException.expect(IllegalStateException.class);
|
||||
expectedException.expectMessage("No milestone for Spring Data Build found containing 1.8 RC1!");
|
||||
|
||||
mockGetMilestonesWith("emptyMilestones.json");
|
||||
|
||||
github.getReleaseTicketFor(BUILD_HOPPER_RC1);
|
||||
|
||||
fail("Missing IllegalStateException");
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseVersionShouldCreateAVersion() throws Exception {
|
||||
|
||||
mockGetMilestonesWith("emptyMilestones.json");
|
||||
mockCreateMilestoneWith("milestone.json");
|
||||
|
||||
github.createReleaseVersion(BUILD_HOPPER_RC1);
|
||||
|
||||
verify(postRequestedFor(urlPathMatching(MILESTONES_URI))
|
||||
.withRequestBody(equalToJson("{\"title\":\"1.8 RC1 (Hopper)\", \"description\":\"Hopper RC1\"}")));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseVersionShouldFindExistingReleaseVersion() throws Exception {
|
||||
|
||||
mockGetMilestonesWith("milestones.json");
|
||||
|
||||
github.createReleaseVersion(BUILD_HOPPER_RC1);
|
||||
|
||||
verify(0, postRequestedFor(urlPathMatching(MILESTONES_URI)));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseTicketShouldCreateReleaseTicket() throws Exception {
|
||||
|
||||
mockGetMilestonesWith("milestones.json");
|
||||
mockGetIssuesWith("emptyIssues.json");
|
||||
mockCreateIssueWith("issue.json");
|
||||
|
||||
github.createReleaseTicket(BUILD_HOPPER_RC1);
|
||||
|
||||
verify(postRequestedFor(urlPathMatching(ISSUES_URI))
|
||||
.withRequestBody(equalToJson("{\"title\":\"Release 1.8 RC1 (Hopper)\",\"milestone\":45}")));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseTicketShouldFailWithNoReleaseVersion() throws Exception {
|
||||
|
||||
expectedException.expect(IllegalStateException.class);
|
||||
expectedException.expectMessage("No milestone for Spring Data Build found containing 1.8 RC1!");
|
||||
|
||||
ModuleIteration moduleIteration = ReleaseTrains.HOPPER.getModuleIteration(Iteration.RC1, "Build");
|
||||
|
||||
mockGetIssuesWith("emptyIssues.json");
|
||||
mockGetMilestonesWith("emptyMilestones.json");
|
||||
|
||||
github.createReleaseTicket(moduleIteration);
|
||||
|
||||
fail("Missing IllegalStateException");
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseTicketShouldFindExistingTicket() throws Exception {
|
||||
|
||||
mockGetMilestonesWith("milestones.json");
|
||||
mockGetIssuesWith("issues.json");
|
||||
|
||||
github.createReleaseTicket(BUILD_HOPPER_RC1);
|
||||
|
||||
verify(0, postRequestedFor(urlPathMatching(MILESTONES_URI)));
|
||||
}
|
||||
|
||||
private void mockGetIssueWith(String fromClassPath, int issueId) {
|
||||
mockService.stubFor(get(urlPathMatching(ISSUES_URI + "/" + issueId)).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private void mockGetIssuesWith(String fromClassPath) {
|
||||
mockService.stubFor(get(urlPathMatching(ISSUES_URI)).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private void mockCreateIssueWith(String fromClassPath) {
|
||||
mockService.stubFor(post(urlPathMatching(ISSUES_URI)).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private void mockGetMilestonesWith(String fromClassPath) {
|
||||
mockService.stubFor(get(urlPathMatching(MILESTONES_URI)).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private void mockCreateMilestoneWith(String fromClassPath) {
|
||||
mockService.stubFor(post(urlPathMatching(MILESTONES_URI)).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private ResponseDefinitionBuilder json(String fromClassPathFile) {
|
||||
return aResponse().//
|
||||
withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).//
|
||||
withBodyFile(fromClassPathFile);
|
||||
|
||||
Collection<Ticket> tickets = gitHubIssueTracker.findTickets(Projects.BUILD, Arrays.asList("1", "2", "-1"));
|
||||
assertThat(tickets, hasSize(2));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright 2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.data.release.jira;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.data.release.model.Iteration;
|
||||
import org.springframework.data.release.model.ModuleIteration;
|
||||
import org.springframework.data.release.model.ReleaseTrains;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link GithubMilestone}.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class GithubMilestoneUnitTests {
|
||||
|
||||
@Test
|
||||
public void rendersGithubGaVersionCorrectly() {
|
||||
|
||||
assertIterationVersion(Iteration.M1, "1.8 M1 (Dijkstra)");
|
||||
assertIterationVersion(Iteration.RC1, "1.8 RC1 (Dijkstra)");
|
||||
assertIterationVersion(Iteration.GA, "1.8 GA (Dijkstra)");
|
||||
|
||||
assertIterationVersion(Iteration.SR1, "1.8.1 (Dijkstra SR1)");
|
||||
assertIterationVersion(Iteration.SR2, "1.8.2 (Dijkstra SR2)");
|
||||
assertIterationVersion(Iteration.SR3, "1.8.3 (Dijkstra SR3)");
|
||||
assertIterationVersion(Iteration.SR4, "1.8.4 (Dijkstra SR4)");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usesCustomModuleIterationStartVersion() {
|
||||
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Iteration.M1, "Elasticsearch");
|
||||
|
||||
GithubMilestone version = new GithubMilestone(module);
|
||||
assertThat(version.toString(), is("1.0 M1 (Dijkstra)"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doesNotUseCustomIterationOnNonFirstiterations() {
|
||||
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Iteration.RC1, "Elasticsearch");
|
||||
|
||||
GithubMilestone version = new GithubMilestone(module);
|
||||
assertThat(version.toString(), is("1.0 RC1 (Dijkstra)"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rendersDescriptionCorrectly() {
|
||||
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Iteration.M1, "Elasticsearch");
|
||||
|
||||
GithubMilestone version = new GithubMilestone(module);
|
||||
assertThat(version.getDescription(), is("Dijkstra M2"));
|
||||
}
|
||||
|
||||
private void assertIterationVersion(Iteration iteration, String expected) {
|
||||
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(iteration, "Commons");
|
||||
|
||||
GithubMilestone version = new GithubMilestone(module);
|
||||
assertThat(version.toString(), is(expected));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright 2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.data.release.jira;
|
||||
|
||||
import static org.hamcrest.core.Is.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link JiraComponents}.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class JiraComponentsUnitTests {
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void returnsComponentByName() throws Exception {
|
||||
|
||||
JiraComponent fooComponent = new JiraComponent("123", "foo");
|
||||
JiraComponents jiraComponents = JiraComponents.of(Collections.singleton(fooComponent));
|
||||
|
||||
assertThat(jiraComponents.findComponent("foo").isPresent(), is(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void returnsEmptyIfComponentMissing() throws Exception {
|
||||
|
||||
JiraComponent fooComponent = new JiraComponent("123", "foo");
|
||||
JiraComponents jiraComponents = JiraComponents.of(Collections.singleton(fooComponent));
|
||||
|
||||
assertThat(jiraComponents.findComponent("baz").isPresent(), is(false));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void failsOnNullArgumentConstruction() throws Exception {
|
||||
|
||||
JiraComponents.of(null);
|
||||
|
||||
fail("Missing IllegalArgumentException");
|
||||
}
|
||||
}
|
||||
@@ -16,42 +16,292 @@
|
||||
|
||||
package org.springframework.data.release.jira;
|
||||
|
||||
import static org.hamcrest.Matchers.hasSize;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static com.github.tomakehurst.wiremock.client.WireMock.*;
|
||||
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.hamcrest.Matchers;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.release.AbstractIntegrationTests;
|
||||
import org.springframework.data.release.model.Iteration;
|
||||
import org.springframework.data.release.model.ModuleIteration;
|
||||
import org.springframework.data.release.model.ProjectKey;
|
||||
import org.springframework.data.release.model.Projects;
|
||||
import org.springframework.data.release.model.ReleaseTrains;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
|
||||
import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
|
||||
import com.github.tomakehurst.wiremock.common.ClasspathFileSource;
|
||||
import com.github.tomakehurst.wiremock.junit.WireMockRule;
|
||||
|
||||
/**
|
||||
* Integration Tests for {@link Jira} using a local {@link WireMockRule} server.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class JiraIntegrationTests extends AbstractIntegrationTests {
|
||||
|
||||
public static final String CREATE_ISSUE_URI = "/rest/api/2/issue";
|
||||
public static final String CREATE_VERSION_URI = "/rest/api/2/version";
|
||||
public static final String SEARCH_URI = "/rest/api/2/search";
|
||||
public static final String PROJECT_VERSION_URI = "/rest/api/2/project/%s/version";
|
||||
public static final String PROJECT_COMPONENTS_URI = "/rest/api/2/project/%s/components";
|
||||
public static final ModuleIteration REST_HOPPER_RC1 = ReleaseTrains.HOPPER.getModuleIteration(Iteration.RC1, "REST");
|
||||
|
||||
@Rule public WireMockRule mockService = new WireMockRule(
|
||||
wireMockConfig().port(8888).fileSource(new ClasspathFileSource("integration/jira")));
|
||||
|
||||
@Rule public ExpectedException expectedException = ExpectedException.none();
|
||||
|
||||
@Autowired JiraConnector jira;
|
||||
|
||||
@Before
|
||||
public void before() throws Exception {
|
||||
jira.reset();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void findResolvedTicketsByTicketIds() throws Exception {
|
||||
|
||||
mockSearchWith("DATAREDIS-1andDATAJPA-1.json");
|
||||
|
||||
Collection<Ticket> tickets = jira.findTickets(Projects.COMMONS, Arrays.asList("DATAREDIS-1", "DATAJPA-1"));
|
||||
assertThat(tickets, hasSize(2));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void ignoresUnknownTicketsByTicketId() throws Exception {
|
||||
|
||||
mockSearchWith("emptyTickets.json");
|
||||
|
||||
Collection<Ticket> tickets = jira.findTickets(Projects.COMMONS, Arrays.asList("XYZ-1", "UNKOWN-1"));
|
||||
assertThat(tickets, hasSize(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void emptyResultWithEmptyTicketIds() throws Exception {
|
||||
|
||||
Collection<Ticket> tickets = jira.findTickets(Projects.COMMONS, Arrays.asList());
|
||||
assertThat(tickets, hasSize(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void getReleaseTicketForReturnsTheReleaseTicket() throws Exception {
|
||||
|
||||
mockSearchWith("releaseTickets.json");
|
||||
|
||||
Ticket releaseTicket = jira.getReleaseTicketFor(REST_HOPPER_RC1);
|
||||
assertThat(releaseTicket.getId(), is(Matchers.equalTo("DATAREST-782")));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void noReleaseTicketFound() throws Exception {
|
||||
|
||||
expectedException.expect(IllegalArgumentException.class);
|
||||
expectedException.expectMessage("Did not find a release ticket for Spring Data REST 2.5 RC1");
|
||||
|
||||
mockSearchWith("emptyTickets.json");
|
||||
|
||||
jira.getReleaseTicketFor(REST_HOPPER_RC1);
|
||||
|
||||
fail("Missing IllegalStateException");
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void getReleaseVersion() throws Exception {
|
||||
|
||||
mockGetProjectVersionsWith("releaseVersions.json", REST_HOPPER_RC1.getProjectKey());
|
||||
|
||||
Optional<JiraReleaseVersion> optional = jira.findJiraReleaseVersion(REST_HOPPER_RC1);
|
||||
|
||||
assertThat(optional.isPresent(), is(true));
|
||||
assertThat(optional.get().getName(), is(Matchers.equalTo("2.5 RC1 (Hopper)")));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseVersionShouldCreateAVersion() throws Exception {
|
||||
|
||||
mockGetProjectVersionsWith("emptyReleaseVersions.json", REST_HOPPER_RC1.getProjectKey());
|
||||
mockCreateVersionWith("versionCreated.json");
|
||||
|
||||
jira.createReleaseVersion(REST_HOPPER_RC1);
|
||||
|
||||
verify(postRequestedFor(urlPathMatching(CREATE_VERSION_URI)).withRequestBody(
|
||||
equalToJson("{\"name\":\"2.5 RC1 (Hopper)\",\"project\":\"DATAREST\",\"description\":\"Hopper RC1\"}")));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseVersionShouldFindExistingReleaseVersion() throws Exception {
|
||||
|
||||
ModuleIteration moduleIteration = ReleaseTrains.HOPPER.getModuleIteration(Iteration.RC1, "REST");
|
||||
|
||||
mockGetProjectVersionsWith("releaseVersions.json", moduleIteration.getProjectKey());
|
||||
|
||||
jira.createReleaseVersion(moduleIteration);
|
||||
|
||||
verify(0, postRequestedFor(urlPathMatching(CREATE_VERSION_URI)));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseTicketShouldCreateReleaseTicket() throws Exception {
|
||||
|
||||
ModuleIteration moduleIteration = ReleaseTrains.HOPPER.getModuleIteration(Iteration.RC1, "REST");
|
||||
|
||||
mockGetProjectVersionsWith("releaseVersions.json", moduleIteration.getProjectKey());
|
||||
mockGetProjectComponentsWith("projectComponents.json", moduleIteration.getProjectKey());
|
||||
mockSearchWith("emptyTickets.json");
|
||||
prepareCreateIssueAndReturn("issueCreated.json");
|
||||
|
||||
jira.createReleaseTicket(moduleIteration);
|
||||
|
||||
verify(postRequestedFor(urlPathMatching(CREATE_ISSUE_URI))
|
||||
.withRequestBody(equalToJson("{\"fields\":{\"project\":{\"key\":\"DATAREST\"},"
|
||||
+ "\"issuetype\":{\"name\":\"Task\"},\"summary\":\"Release 2.5 RC1 (Hopper)\","
|
||||
+ "\"fixVersions\":[{\"name\":\"2.5 RC1 (Hopper)\"}],"
|
||||
+ "\"components\":[{\"name\":\"Infrastructure\"}]}}")));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseTicketShouldCreateReleaseTicketWithoutComponent() throws Exception {
|
||||
|
||||
ModuleIteration moduleIteration = ReleaseTrains.HOPPER.getModuleIteration(Iteration.RC1, "REST");
|
||||
|
||||
mockGetProjectVersionsWith("releaseVersions.json", moduleIteration.getProjectKey());
|
||||
mockGetProjectComponentsWith("emptyProjectComponents.json", moduleIteration.getProjectKey());
|
||||
mockSearchWith("emptyTickets.json");
|
||||
prepareCreateIssueAndReturn("issueCreated.json");
|
||||
|
||||
jira.createReleaseTicket(moduleIteration);
|
||||
|
||||
verify(postRequestedFor(urlPathMatching(CREATE_ISSUE_URI))
|
||||
.withRequestBody(equalToJson("{\"fields\":{\"project\":{\"key\":\"DATAREST\"},"
|
||||
+ "\"issuetype\":{\"name\":\"Task\"},\"summary\":\"Release 2.5 RC1 (Hopper)\","
|
||||
+ "\"fixVersions\":[{\"name\":\"2.5 RC1 (Hopper)\"}]}}")));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseTicketShouldFailWithNoReleaseVersion() throws Exception {
|
||||
|
||||
expectedException.expect(IllegalStateException.class);
|
||||
expectedException.expectMessage("Did not find a release version for Spring Data REST 2.5 RC1");
|
||||
|
||||
ModuleIteration moduleIteration = ReleaseTrains.HOPPER.getModuleIteration(Iteration.RC1, "REST");
|
||||
|
||||
mockSearchWith("emptyTickets.json");
|
||||
mockGetProjectVersionsWith("emptyReleaseVersions.json", moduleIteration.getProjectKey());
|
||||
|
||||
jira.createReleaseTicket(moduleIteration);
|
||||
|
||||
fail("Missing IllegalStateException");
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void createReleaseTicketShouldFindExistingTicket() throws Exception {
|
||||
|
||||
ModuleIteration moduleIteration = ReleaseTrains.HOPPER.getModuleIteration(Iteration.RC1, "REST");
|
||||
|
||||
mockGetProjectVersionsWith("releaseVersions.json", moduleIteration.getProjectKey());
|
||||
mockGetProjectComponentsWith("projectComponents.json", moduleIteration.getProjectKey());
|
||||
mockSearchWith("releaseTickets.json");
|
||||
|
||||
jira.createReleaseTicket(moduleIteration);
|
||||
|
||||
verify(0, postRequestedFor(urlPathMatching(CREATE_ISSUE_URI)));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #5
|
||||
*/
|
||||
@Test
|
||||
public void assignTicketToMe() throws Exception {
|
||||
|
||||
mockService.stubFor(post(urlPathMatching("/rest/api/2/issue/DATAREDIS-99999")).//
|
||||
willReturn(aResponse().withStatus(204)));
|
||||
|
||||
jira.assignTicketToMe(new Ticket("DATAREDIS-99999", "", null));
|
||||
|
||||
verify(postRequestedFor(urlPathMatching("/rest/api/2/issue/DATAREDIS-99999"))
|
||||
.withRequestBody(equalToJson("{\"fields\":{\"assignee\":{\"name\":\"dummy\"}}}")));
|
||||
}
|
||||
|
||||
private void mockSearchWith(String fromClassPath) {
|
||||
mockService.stubFor(get(urlPathMatching(SEARCH_URI)).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private void mockGetProjectVersionsWith(String fromClassPath, ProjectKey projectKey) {
|
||||
mockService.stubFor(get(urlPathMatching(String.format(PROJECT_VERSION_URI, projectKey))).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private void mockGetProjectComponentsWith(String fromClassPath, ProjectKey projectKey) {
|
||||
mockService.stubFor(get(urlPathMatching(String.format(PROJECT_COMPONENTS_URI, projectKey))).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private void prepareCreateIssueAndReturn(String fromClassPath) {
|
||||
mockService.stubFor(post(urlPathMatching(CREATE_ISSUE_URI)).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private void mockCreateVersionWith(String fromClassPath) {
|
||||
mockService.stubFor(post(urlPathMatching(CREATE_VERSION_URI)).//
|
||||
willReturn(json(fromClassPath)));
|
||||
}
|
||||
|
||||
private ResponseDefinitionBuilder json(String fromClassPathFile) {
|
||||
return aResponse().//
|
||||
withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).//
|
||||
withBodyFile(fromClassPathFile);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import org.springframework.data.release.model.ReleaseTrains;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link JiraVersion}.
|
||||
*
|
||||
*
|
||||
* @author Oliver Gierke
|
||||
*/
|
||||
public class JiraVersionUnitTests {
|
||||
@@ -49,7 +49,7 @@ public class JiraVersionUnitTests {
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Iteration.M1, "Elasticsearch");
|
||||
|
||||
JiraVersion version = new JiraVersion(module);
|
||||
assertThat(version.toString(), is("1.0 M2 (Dijkstra)"));
|
||||
assertThat(version.toString(), is("1.0 M1 (Dijkstra)"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -61,6 +61,15 @@ public class JiraVersionUnitTests {
|
||||
assertThat(version.toString(), is("1.0 RC1 (Dijkstra)"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rendersDescriptionCorrectly() {
|
||||
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Iteration.M1, "Elasticsearch");
|
||||
|
||||
JiraVersion version = new JiraVersion(module);
|
||||
assertThat(version.getDescription(), is("Dijkstra M2"));
|
||||
}
|
||||
|
||||
private void assertIterationVersion(Iteration iteration, String expected) {
|
||||
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(iteration, "Commons");
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright 2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.data.release.jira;
|
||||
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.springframework.test.util.AssertionErrors.fail;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.data.release.model.Iteration;
|
||||
import org.springframework.data.release.model.ReleaseTrains;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link Tickets}.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class TicketsUnitTests {
|
||||
|
||||
@Test
|
||||
public void hasReleaseTicketShouldReturnTrue() throws Exception {
|
||||
|
||||
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", new JiraTicketStatus(false, "", ""));
|
||||
Tickets tickets = new Tickets(Collections.singletonList(ticket));
|
||||
|
||||
boolean result = tickets.hasReleaseTicket(ReleaseTrains.HOPPER.getModuleIteration(Iteration.GA, "JPA"));
|
||||
assertThat(result, is(true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasReleaseTickeForTicketWithoutTrainNameShouldReturnFalse() throws Exception {
|
||||
|
||||
Ticket ticket = new Ticket("1234", "Release 1.10 GA", new JiraTicketStatus(false, "", ""));
|
||||
Tickets tickets = new Tickets(Collections.singletonList(ticket));
|
||||
|
||||
boolean result = tickets.hasReleaseTicket(ReleaseTrains.HOPPER.getModuleIteration(Iteration.GA, "JPA"));
|
||||
assertThat(result, is(false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getReleaseTicketReturnsReleaseTicket() throws Exception {
|
||||
|
||||
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", new JiraTicketStatus(false, "", ""));
|
||||
Tickets tickets = new Tickets(Collections.singletonList(ticket));
|
||||
|
||||
Ticket releaseTicket = tickets.getReleaseTicket(ReleaseTrains.HOPPER.getModuleIteration(Iteration.GA, "JPA"));
|
||||
assertThat(releaseTicket, is(ticket));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException.class)
|
||||
public void getReleaseTicketThrowsExceptionWithoutAReleaseTicket() throws Exception {
|
||||
|
||||
Ticket ticket = new Ticket("1234", "Release 1.10 GA", new JiraTicketStatus(false, "", ""));
|
||||
Tickets tickets = new Tickets(Collections.singletonList(ticket));
|
||||
|
||||
tickets.getReleaseTicket(ReleaseTrains.HOPPER.getModuleIteration(Iteration.GA, "JPA"));
|
||||
fail("Missing IllegalStateException");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getResolvedReleaseTicket() throws Exception {
|
||||
|
||||
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", new JiraTicketStatus(true, "", ""));
|
||||
Tickets tickets = new Tickets(Collections.singletonList(ticket));
|
||||
|
||||
Ticket releaseTicket = tickets.getReleaseTicket(ReleaseTrains.HOPPER.getModuleIteration(Iteration.GA, "JPA"));
|
||||
assertThat(releaseTicket, is(ticket));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getReleaseTicketsReturnsReleaseTickets() throws Exception {
|
||||
|
||||
Ticket ticket = new Ticket("1234", "Release 1.10 GA (Hopper)", new JiraTicketStatus(false, "", ""));
|
||||
Tickets tickets = new Tickets(Collections.singletonList(ticket));
|
||||
|
||||
Tickets result = tickets
|
||||
.getReleaseTickets(ReleaseTrains.HOPPER.getModuleIteration(Iteration.GA, "JPA").getTrainIteration());
|
||||
assertThat(result.getTickets().contains(ticket), is(true));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,3 +5,8 @@ logging.level.org.springframework.web.client=TRACE
|
||||
|
||||
# Deployment
|
||||
deployment.repository-prefix=test-
|
||||
|
||||
jira.username=dummy
|
||||
jira.password=dummy
|
||||
jira.url=http://localhost:8888
|
||||
github.api.url=http://localhost:8888
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/233",
|
||||
"repository_url": "https://api.github.com/repos/spring-projects/spring-data-build",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/233/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/233/comments",
|
||||
"events_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/233/events",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/issues/233",
|
||||
"id": 141655399,
|
||||
"number": 233,
|
||||
"title": "Release 1.8 RC1 (Hopper)",
|
||||
"user": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
],
|
||||
"state": "open",
|
||||
"locked": false,
|
||||
"assignee": null,
|
||||
"milestone": {
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.8%20RC1%20(Hopper)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45/labels",
|
||||
"id": 1579988,
|
||||
"number": 45,
|
||||
"title": "1.8 RC1 (Hopper)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 4,
|
||||
"state": "open",
|
||||
"created_at": "2016-02-12T16:05:35Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
},
|
||||
"comments": 0,
|
||||
"created_at": "2016-03-17T17:43:09Z",
|
||||
"updated_at": "2016-03-17T17:43:09Z",
|
||||
"closed_at": null,
|
||||
"body": ""
|
||||
}
|
||||
@@ -0,0 +1,436 @@
|
||||
[
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/233",
|
||||
"repository_url": "https://api.github.com/repos/spring-projects/spring-data-build",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/233/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/233/comments",
|
||||
"events_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/233/events",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/issues/233",
|
||||
"id": 141655399,
|
||||
"number": 233,
|
||||
"title": "Release 1.8 RC1 (Hopper)",
|
||||
"user": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
|
||||
],
|
||||
"state": "open",
|
||||
"locked": false,
|
||||
"assignee": null,
|
||||
"milestone": {
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.8%20RC1%20(Hopper)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45/labels",
|
||||
"id": 1579988,
|
||||
"number": 45,
|
||||
"title": "1.8 RC1 (Hopper)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 4,
|
||||
"state": "open",
|
||||
"created_at": "2016-02-12T16:05:35Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
},
|
||||
"comments": 0,
|
||||
"created_at": "2016-03-17T17:43:09Z",
|
||||
"updated_at": "2016-03-17T17:43:09Z",
|
||||
"closed_at": null,
|
||||
"body": ""
|
||||
},
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/232",
|
||||
"repository_url": "https://api.github.com/repos/spring-projects/spring-data-build",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/232/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/232/comments",
|
||||
"events_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/232/events",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/issues/232",
|
||||
"id": 139529287,
|
||||
"number": 232,
|
||||
"title": "Remove spring41-next build profile.",
|
||||
"user": {
|
||||
"login": "christophstrobl",
|
||||
"id": 2317257,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2317257?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/christophstrobl",
|
||||
"html_url": "https://github.com/christophstrobl",
|
||||
"followers_url": "https://api.github.com/users/christophstrobl/followers",
|
||||
"following_url": "https://api.github.com/users/christophstrobl/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/christophstrobl/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/christophstrobl/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/christophstrobl/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/christophstrobl/orgs",
|
||||
"repos_url": "https://api.github.com/users/christophstrobl/repos",
|
||||
"events_url": "https://api.github.com/users/christophstrobl/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/christophstrobl/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
|
||||
],
|
||||
"state": "closed",
|
||||
"locked": false,
|
||||
"assignee": null,
|
||||
"milestone": {
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.8%20RC1%20(Hopper)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45/labels",
|
||||
"id": 1579988,
|
||||
"number": 45,
|
||||
"title": "1.8 RC1 (Hopper)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 4,
|
||||
"state": "open",
|
||||
"created_at": "2016-02-12T16:05:35Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
},
|
||||
"comments": 0,
|
||||
"created_at": "2016-03-09T09:56:42Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"closed_at": "2016-03-17T17:46:03Z",
|
||||
"body": "With the baseline upgrade to Spring 4.2 the `spring41-next` profile has become obsolete."
|
||||
},
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/231",
|
||||
"repository_url": "https://api.github.com/repos/spring-projects/spring-data-build",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/231/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/231/comments",
|
||||
"events_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/231/events",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/issues/231",
|
||||
"id": 137830920,
|
||||
"number": 231,
|
||||
"title": "Upgrade to latest Querydsl",
|
||||
"user": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
|
||||
],
|
||||
"state": "closed",
|
||||
"locked": false,
|
||||
"assignee": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"milestone": {
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.8%20RC1%20(Hopper)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45/labels",
|
||||
"id": 1579988,
|
||||
"number": 45,
|
||||
"title": "1.8 RC1 (Hopper)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 4,
|
||||
"state": "open",
|
||||
"created_at": "2016-02-12T16:05:35Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
},
|
||||
"comments": 0,
|
||||
"created_at": "2016-03-02T10:11:20Z",
|
||||
"updated_at": "2016-03-02T10:14:24Z",
|
||||
"closed_at": "2016-03-02T10:14:24Z",
|
||||
"body": ""
|
||||
},
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/230",
|
||||
"repository_url": "https://api.github.com/repos/spring-projects/spring-data-build",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/230/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/230/comments",
|
||||
"events_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/230/events",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/issues/230",
|
||||
"id": 137829896,
|
||||
"number": 230,
|
||||
"title": "Upgrade to Spring 4.2",
|
||||
"user": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
|
||||
],
|
||||
"state": "closed",
|
||||
"locked": false,
|
||||
"assignee": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"milestone": {
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.8%20RC1%20(Hopper)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45/labels",
|
||||
"id": 1579988,
|
||||
"number": 45,
|
||||
"title": "1.8 RC1 (Hopper)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 4,
|
||||
"state": "open",
|
||||
"created_at": "2016-02-12T16:05:35Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
},
|
||||
"comments": 0,
|
||||
"created_at": "2016-03-02T10:05:48Z",
|
||||
"updated_at": "2016-03-02T10:14:29Z",
|
||||
"closed_at": "2016-03-02T10:14:29Z",
|
||||
"body": ""
|
||||
},
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/227",
|
||||
"repository_url": "https://api.github.com/repos/spring-projects/spring-data-build",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/227/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/227/comments",
|
||||
"events_url": "https://api.github.com/repos/spring-projects/spring-data-build/issues/227/events",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/issues/227",
|
||||
"id": 134905897,
|
||||
"number": 227,
|
||||
"title": "Downgrade Jackson baseline to 2.6",
|
||||
"user": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
|
||||
],
|
||||
"state": "closed",
|
||||
"locked": false,
|
||||
"assignee": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"milestone": {
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.8%20RC1%20(Hopper)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45/labels",
|
||||
"id": 1579988,
|
||||
"number": 45,
|
||||
"title": "1.8 RC1 (Hopper)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 4,
|
||||
"state": "open",
|
||||
"created_at": "2016-02-12T16:05:35Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
},
|
||||
"comments": 0,
|
||||
"created_at": "2016-02-19T16:21:22Z",
|
||||
"updated_at": "2016-02-19T16:37:54Z",
|
||||
"closed_at": "2016-02-19T16:37:54Z",
|
||||
"body": "The Jackson 2.7 release causes significant regressions in a variety of places and it seems proper fixes in Spring Framework will only be available in the 4.2 line. That's good reason to stay on Jackson 2.6 for Hopper. Users requiring Jackson 2.7 features would have to use at least Spring 4.2, 4.3 even preferred.\r\n\r\nhttps://jira.spring.io/browse/SPR-13853"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.8%20RC1%20(Hopper)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45/labels",
|
||||
"id": 1579988,
|
||||
"number": 45,
|
||||
"title": "1.8 RC1 (Hopper)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 4,
|
||||
"state": "open",
|
||||
"created_at": "2016-02-12T16:05:35Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
[
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/44",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.7.4%20(Gosling%20SR4)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/44/labels",
|
||||
"id": 1488963,
|
||||
"number": 44,
|
||||
"title": "1.7.4 (Gosling SR4)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 2,
|
||||
"state": "open",
|
||||
"created_at": "2016-01-07T07:19:58Z",
|
||||
"updated_at": "2016-02-11T13:51:38Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
},
|
||||
{
|
||||
"url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45",
|
||||
"html_url": "https://github.com/spring-projects/spring-data-build/milestones/1.8%20RC1%20(Hopper)",
|
||||
"labels_url": "https://api.github.com/repos/spring-projects/spring-data-build/milestones/45/labels",
|
||||
"id": 1579988,
|
||||
"number": 45,
|
||||
"title": "1.8 RC1 (Hopper)",
|
||||
"description": "",
|
||||
"creator": {
|
||||
"login": "olivergierke",
|
||||
"id": 128577,
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/128577?v=3",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/olivergierke",
|
||||
"html_url": "https://github.com/olivergierke",
|
||||
"followers_url": "https://api.github.com/users/olivergierke/followers",
|
||||
"following_url": "https://api.github.com/users/olivergierke/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/olivergierke/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/olivergierke/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/olivergierke/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/olivergierke/orgs",
|
||||
"repos_url": "https://api.github.com/users/olivergierke/repos",
|
||||
"events_url": "https://api.github.com/users/olivergierke/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/olivergierke/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"open_issues": 1,
|
||||
"closed_issues": 4,
|
||||
"state": "open",
|
||||
"created_at": "2016-02-12T16:05:35Z",
|
||||
"updated_at": "2016-03-17T17:46:03Z",
|
||||
"due_on": null,
|
||||
"closed_at": null
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"expand": "schema,names",
|
||||
"startAt": 0,
|
||||
"maxResults": 50,
|
||||
"total": 2,
|
||||
"issues": [
|
||||
{
|
||||
"expand": "operations,editmeta,changelog,transitions,renderedFields",
|
||||
"id": "35482",
|
||||
"self": "https://jira.spring.io/rest/api/2/issue/35482",
|
||||
"key": "DATAREDIS-1",
|
||||
"fields": {
|
||||
"summary": "Connections obtained from pool are never returned",
|
||||
"resolution": {
|
||||
"self": "https://jira.spring.io/rest/api/2/resolution/8",
|
||||
"id": "8",
|
||||
"description": "",
|
||||
"name": "Complete"
|
||||
},
|
||||
"status": {
|
||||
"self": "https://jira.spring.io/rest/api/2/status/5",
|
||||
"description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.",
|
||||
"iconUrl": "https://jira.spring.io/images/icons/statuses/resolved.png",
|
||||
"name": "Resolved",
|
||||
"id": "5",
|
||||
"statusCategory": {
|
||||
"self": "https://jira.spring.io/rest/api/2/statuscategory/3",
|
||||
"id": 3,
|
||||
"key": "done",
|
||||
"colorName": "green",
|
||||
"name": "Done"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expand": "operations,editmeta,changelog,transitions,renderedFields",
|
||||
"id": "35060",
|
||||
"self": "https://jira.spring.io/rest/api/2/issue/35060",
|
||||
"key": "DATAJPA-1",
|
||||
"fields": {
|
||||
"summary": "Move JPA parts of Hades library into Spring JPA",
|
||||
"resolution": {
|
||||
"self": "https://jira.spring.io/rest/api/2/resolution/1",
|
||||
"id": "1",
|
||||
"description": "A fix for this issue is checked into the tree and tested.",
|
||||
"name": "Fixed"
|
||||
},
|
||||
"status": {
|
||||
"self": "https://jira.spring.io/rest/api/2/status/6",
|
||||
"description": "The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.",
|
||||
"iconUrl": "https://jira.spring.io/images/icons/statuses/closed.png",
|
||||
"name": "Closed",
|
||||
"id": "6",
|
||||
"statusCategory": {
|
||||
"self": "https://jira.spring.io/rest/api/2/statuscategory/3",
|
||||
"id": 3,
|
||||
"key": "done",
|
||||
"colorName": "green",
|
||||
"name": "Done"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
[
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/project/DATAREST/version?maxResults=50&startAt=0",
|
||||
"maxResults": 50,
|
||||
"startAt": 0,
|
||||
"total": 0,
|
||||
"isLast": true,
|
||||
"values": []
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"startAt": 0,
|
||||
"maxResults": 50,
|
||||
"total": 0,
|
||||
"issues": []
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"id": "10000",
|
||||
"key": "DATAREDIS-42",
|
||||
"self": "http://www.example.com/jira/rest/api/2/issue/10000"
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
[
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/component/12775",
|
||||
"id": "12775",
|
||||
"name": "Infrastructure",
|
||||
"assigneeType": "PROJECT_DEFAULT",
|
||||
"assignee": {
|
||||
"self": "https://jira.spring.io/rest/api/2/user?username=olivergierke",
|
||||
"key": "olivergierke",
|
||||
"name": "olivergierke",
|
||||
"avatarUrls": {
|
||||
"16x16": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=16",
|
||||
"24x24": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=24",
|
||||
"32x32": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=32",
|
||||
"48x48": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=48"
|
||||
},
|
||||
"displayName": "Oliver Gierke",
|
||||
"active": true
|
||||
},
|
||||
"realAssigneeType": "PROJECT_DEFAULT",
|
||||
"realAssignee": {
|
||||
"self": "https://jira.spring.io/rest/api/2/user?username=olivergierke",
|
||||
"key": "olivergierke",
|
||||
"name": "olivergierke",
|
||||
"avatarUrls": {
|
||||
"16x16": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=16",
|
||||
"24x24": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=24",
|
||||
"32x32": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=32",
|
||||
"48x48": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=48"
|
||||
},
|
||||
"displayName": "Oliver Gierke",
|
||||
"active": true
|
||||
},
|
||||
"isAssigneeTypeValid": true,
|
||||
"project": "DATAREST",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/component/12748",
|
||||
"id": "12748",
|
||||
"name": "Content negotiation",
|
||||
"assigneeType": "PROJECT_DEFAULT",
|
||||
"assignee": {
|
||||
"self": "https://jira.spring.io/rest/api/2/user?username=olivergierke",
|
||||
"key": "olivergierke",
|
||||
"name": "olivergierke",
|
||||
"avatarUrls": {
|
||||
"16x16": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=16",
|
||||
"24x24": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=24",
|
||||
"32x32": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=32",
|
||||
"48x48": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=48"
|
||||
},
|
||||
"displayName": "Oliver Gierke",
|
||||
"active": true
|
||||
},
|
||||
"realAssigneeType": "PROJECT_DEFAULT",
|
||||
"realAssignee": {
|
||||
"self": "https://jira.spring.io/rest/api/2/user?username=olivergierke",
|
||||
"key": "olivergierke",
|
||||
"name": "olivergierke",
|
||||
"avatarUrls": {
|
||||
"16x16": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=16",
|
||||
"24x24": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=24",
|
||||
"32x32": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=32",
|
||||
"48x48": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=48"
|
||||
},
|
||||
"displayName": "Oliver Gierke",
|
||||
"active": true
|
||||
},
|
||||
"isAssigneeTypeValid": true,
|
||||
"project": "DATAREST",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/component/12747",
|
||||
"id": "12747",
|
||||
"name": "Documentation",
|
||||
"assigneeType": "PROJECT_DEFAULT",
|
||||
"assignee": {
|
||||
"self": "https://jira.spring.io/rest/api/2/user?username=olivergierke",
|
||||
"key": "olivergierke",
|
||||
"name": "olivergierke",
|
||||
"avatarUrls": {
|
||||
"16x16": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=16",
|
||||
"24x24": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=24",
|
||||
"32x32": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=32",
|
||||
"48x48": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=48"
|
||||
},
|
||||
"displayName": "Oliver Gierke",
|
||||
"active": true
|
||||
},
|
||||
"realAssigneeType": "PROJECT_DEFAULT",
|
||||
"realAssignee": {
|
||||
"self": "https://jira.spring.io/rest/api/2/user?username=olivergierke",
|
||||
"key": "olivergierke",
|
||||
"name": "olivergierke",
|
||||
"avatarUrls": {
|
||||
"16x16": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=16",
|
||||
"24x24": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=24",
|
||||
"32x32": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=32",
|
||||
"48x48": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=48"
|
||||
},
|
||||
"displayName": "Oliver Gierke",
|
||||
"active": true
|
||||
},
|
||||
"isAssigneeTypeValid": true,
|
||||
"project": "DATAREST",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/component/12746",
|
||||
"id": "12746",
|
||||
"name": "Repositories",
|
||||
"assigneeType": "PROJECT_DEFAULT",
|
||||
"assignee": {
|
||||
"self": "https://jira.spring.io/rest/api/2/user?username=olivergierke",
|
||||
"key": "olivergierke",
|
||||
"name": "olivergierke",
|
||||
"avatarUrls": {
|
||||
"16x16": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=16",
|
||||
"24x24": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=24",
|
||||
"32x32": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=32",
|
||||
"48x48": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=48"
|
||||
},
|
||||
"displayName": "Oliver Gierke",
|
||||
"active": true
|
||||
},
|
||||
"realAssigneeType": "PROJECT_DEFAULT",
|
||||
"realAssignee": {
|
||||
"self": "https://jira.spring.io/rest/api/2/user?username=olivergierke",
|
||||
"key": "olivergierke",
|
||||
"name": "olivergierke",
|
||||
"avatarUrls": {
|
||||
"16x16": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=16",
|
||||
"24x24": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=24",
|
||||
"32x32": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=32",
|
||||
"48x48": "https://secure.gravatar.com/avatar/27320c872264d5db7a38f65137d423db?d=mm&s=48"
|
||||
},
|
||||
"displayName": "Oliver Gierke",
|
||||
"active": true
|
||||
},
|
||||
"isAssigneeTypeValid": true,
|
||||
"project": "DATAREST",
|
||||
"projectId": 10901
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"expand": "names,schema",
|
||||
"startAt": 0,
|
||||
"maxResults": 50,
|
||||
"total": 1,
|
||||
"issues": [
|
||||
{
|
||||
"expand": "operations,editmeta,changelog,transitions,renderedFields",
|
||||
"id": "67908",
|
||||
"self": "https://jira.spring.io/rest/api/2/issue/67908",
|
||||
"key": "DATAREST-782",
|
||||
"fields": {
|
||||
"summary": "Release 2.5 RC1 (Hopper)",
|
||||
"resolution": {
|
||||
"self": "https://jira.spring.io/rest/api/2/resolution/1",
|
||||
"id": "1",
|
||||
"description": "A fix for this issue is checked into the tree and tested.",
|
||||
"name": "Fixed"
|
||||
},
|
||||
"status": {
|
||||
"self": "https://jira.spring.io/rest/api/2/status/6",
|
||||
"description": "The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.",
|
||||
"iconUrl": "https://jira.spring.io/images/icons/statuses/closed.png",
|
||||
"name": "Closed",
|
||||
"id": "6",
|
||||
"statusCategory": {
|
||||
"self": "https://jira.spring.io/rest/api/2/statuscategory/3",
|
||||
"id": 3,
|
||||
"key": "done",
|
||||
"colorName": "green",
|
||||
"name": "Done"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,446 @@
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/project/DATAREST/version?maxResults=50&startAt=0",
|
||||
"maxResults": 50,
|
||||
"startAt": 0,
|
||||
"total": 44,
|
||||
"isLast": true,
|
||||
"values": [
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/12843",
|
||||
"id": "12843",
|
||||
"name": "1.0 - M1",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2012-04-24",
|
||||
"userReleaseDate": "24/Apr/12",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/12844",
|
||||
"id": "12844",
|
||||
"name": "1.0 - M2",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2012-05-16",
|
||||
"userReleaseDate": "16/May/12",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/12845",
|
||||
"id": "12845",
|
||||
"name": "1.0.0.RC1",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2012-06-26",
|
||||
"userReleaseDate": "26/Jun/12",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/13203",
|
||||
"id": "13203",
|
||||
"name": "1.0.0.RC2",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2012-07-31",
|
||||
"userReleaseDate": "31/Jul/12",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/13598",
|
||||
"id": "13598",
|
||||
"name": "1.0.0.RC3",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2012-09-14",
|
||||
"userReleaseDate": "14/Sep/12",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/12846",
|
||||
"id": "12846",
|
||||
"name": "1.0.0 GA",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14009",
|
||||
"id": "14009",
|
||||
"name": "1.1.0.M1",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/13003",
|
||||
"id": "13003",
|
||||
"name": "2.0 M1 (Codd)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2013-11-21",
|
||||
"userReleaseDate": "21/Nov/13",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14259",
|
||||
"id": "14259",
|
||||
"name": "2.0 RC1 (Codd)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-01-29",
|
||||
"userReleaseDate": "29/Jan/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14260",
|
||||
"id": "14260",
|
||||
"name": "2.0 GA (Codd)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-02-24",
|
||||
"userReleaseDate": "24/Feb/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14384",
|
||||
"id": "14384",
|
||||
"name": "2.0.1 (Codd SR1)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-03-13",
|
||||
"userReleaseDate": "13/Mar/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14385",
|
||||
"id": "14385",
|
||||
"name": "2.1 M1 (Dijkstra)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-04-01",
|
||||
"userReleaseDate": "01/Apr/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14412",
|
||||
"id": "14412",
|
||||
"name": "2.0.2 (Codd SR2)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-04-15",
|
||||
"userReleaseDate": "15/Apr/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14386",
|
||||
"id": "14386",
|
||||
"name": "2.1 RC1 (Dijkstra)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-05-02",
|
||||
"userReleaseDate": "02/May/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14520",
|
||||
"id": "14520",
|
||||
"name": "2.0.3 (Codd SR3)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-06-18",
|
||||
"userReleaseDate": "18/Jun/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14387",
|
||||
"id": "14387",
|
||||
"name": "2.1 GA (Dijkstra)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-05-20",
|
||||
"userReleaseDate": "20/May/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14607",
|
||||
"id": "14607",
|
||||
"name": "2.1.1 (Dijkstra SR1)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-06-30",
|
||||
"userReleaseDate": "30/Jun/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14614",
|
||||
"id": "14614",
|
||||
"name": "2.2 M1 (Evans)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-07-10",
|
||||
"userReleaseDate": "10/Jul/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14656",
|
||||
"id": "14656",
|
||||
"name": "2.1.2 (Dijkstra SR2)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-07-28",
|
||||
"userReleaseDate": "28/Jul/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14675",
|
||||
"id": "14675",
|
||||
"name": "2.2 RC1 (Evans)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-08-13",
|
||||
"userReleaseDate": "13/Aug/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14695",
|
||||
"id": "14695",
|
||||
"name": "2.1.4 (Dijkstra SR4)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-08-27",
|
||||
"userReleaseDate": "27/Aug/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14710",
|
||||
"id": "14710",
|
||||
"name": "2.2 GA (Evans)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-09-05",
|
||||
"userReleaseDate": "05/Sep/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14731",
|
||||
"id": "14731",
|
||||
"name": "2.2.1 (Evans SR1)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-10-31",
|
||||
"userReleaseDate": "31/Oct/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14732",
|
||||
"id": "14732",
|
||||
"name": "2.3 M1 (Fowler)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2014-12-01",
|
||||
"userReleaseDate": "01/Dec/14",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14721",
|
||||
"id": "14721",
|
||||
"name": "2.1.5 (Dijkstra SR5)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-01-27",
|
||||
"userReleaseDate": "27/Jan/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14819",
|
||||
"id": "14819",
|
||||
"name": "2.2.2 (Evans SR2)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-01-28",
|
||||
"userReleaseDate": "28/Jan/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14852",
|
||||
"id": "14852",
|
||||
"name": "2.3 RC1 (Fowler)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-03-05",
|
||||
"userReleaseDate": "05/Mar/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14949",
|
||||
"id": "14949",
|
||||
"name": "2.3 GA (Fowler)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-03-23",
|
||||
"userReleaseDate": "23/Mar/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14981",
|
||||
"id": "14981",
|
||||
"name": "2.4 M1 (Gosling)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-06-02",
|
||||
"userReleaseDate": "02/Jun/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14970",
|
||||
"id": "14970",
|
||||
"name": "2.3.1 (Fowler SR1)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-07-01",
|
||||
"userReleaseDate": "01/Jul/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14925",
|
||||
"id": "14925",
|
||||
"name": "2.2.3 (Evans SR3)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-07-01",
|
||||
"userReleaseDate": "01/Jul/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/14912",
|
||||
"id": "14912",
|
||||
"name": "2.1.6 (Dijkstra SR6)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-07-01",
|
||||
"userReleaseDate": "01/Jul/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15240",
|
||||
"id": "15240",
|
||||
"name": "2.3.2 (Fowler SR2)",
|
||||
"archived": false,
|
||||
"released": true,
|
||||
"releaseDate": "2015-07-28",
|
||||
"userReleaseDate": "28/Jul/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15205",
|
||||
"id": "15205",
|
||||
"name": "2.4 RC1 (Gosling)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-08-04",
|
||||
"userReleaseDate": "04/Aug/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15279",
|
||||
"id": "15279",
|
||||
"name": "2.4 GA (Gosling)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-09-01",
|
||||
"userReleaseDate": "01/Sep/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15348",
|
||||
"id": "15348",
|
||||
"description": "Evans SR4",
|
||||
"name": "2.2.4 (Evans SR4)",
|
||||
"archived": false,
|
||||
"released": true,
|
||||
"releaseDate": "2015-10-14",
|
||||
"userReleaseDate": "14/Oct/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15310",
|
||||
"id": "15310",
|
||||
"description": "Gosling SR1",
|
||||
"name": "2.4.1 (Gosling SR1)",
|
||||
"archived": true,
|
||||
"released": true,
|
||||
"releaseDate": "2015-11-15",
|
||||
"userReleaseDate": "15/Nov/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15416",
|
||||
"id": "15416",
|
||||
"description": "Gosling SR2",
|
||||
"name": "2.4.2 (Gosling SR2)",
|
||||
"archived": false,
|
||||
"released": true,
|
||||
"releaseDate": "2015-12-18",
|
||||
"userReleaseDate": "18/Dec/15",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15311",
|
||||
"id": "15311",
|
||||
"description": "Hopper M1",
|
||||
"name": "2.5 M1 (Hopper)",
|
||||
"archived": false,
|
||||
"released": true,
|
||||
"releaseDate": "2016-02-12",
|
||||
"userReleaseDate": "12/Feb/16",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15455",
|
||||
"id": "15455",
|
||||
"description": "Gosling SR4",
|
||||
"name": "2.4.4 (Gosling SR4)",
|
||||
"archived": false,
|
||||
"released": true,
|
||||
"releaseDate": "2016-02-23",
|
||||
"userReleaseDate": "23/Feb/16",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15475",
|
||||
"id": "15475",
|
||||
"description": "Hopper RC1",
|
||||
"name": "2.5 RC1 (Hopper)",
|
||||
"archived": false,
|
||||
"released": true,
|
||||
"releaseDate": "2016-03-18",
|
||||
"userReleaseDate": "18/Mar/16",
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15260",
|
||||
"id": "15260",
|
||||
"description": "Fowler SR3",
|
||||
"name": "2.3.3 (Fowler SR3)",
|
||||
"archived": false,
|
||||
"released": false,
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15512",
|
||||
"id": "15512",
|
||||
"name": "2.4.5 (Gosling SR5)",
|
||||
"archived": false,
|
||||
"released": false,
|
||||
"projectId": 10901
|
||||
},
|
||||
{
|
||||
"self": "https://jira.spring.io/rest/api/2/version/15513",
|
||||
"id": "15513",
|
||||
"name": "2.5 GA (Hopper)",
|
||||
"archived": false,
|
||||
"released": false,
|
||||
"projectId": 10901
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"description": "An excellent version",
|
||||
"name": "2.5 RC1 (Hopper)",
|
||||
"archived": false,
|
||||
"released": false,
|
||||
"project": "DATAREST",
|
||||
"projectId": 10000
|
||||
}
|
||||
Reference in New Issue
Block a user