use of org.kohsuke.github.GHTag in project fosstars-rating-core by SAP.
the class ReleasesFromGitHubTest method testIfGitHubHasNoReleaseAndTags.
@Test
public void testIfGitHubHasNoReleaseAndTags() throws IOException {
final GHRepository repository = mock(GHRepository.class);
PagedIterable<GHRelease> pagedIterable = mock(PagedIterable.class);
when(pagedIterable.toList()).thenReturn(Collections.emptyList());
when(repository.listReleases()).thenReturn(pagedIterable);
PagedIterable<GHTag> pagedTagIterable = mock(PagedIterable.class);
when(pagedTagIterable.toList()).thenReturn(Collections.emptyList());
when(repository.listTags()).thenReturn(pagedTagIterable);
when(fetcher.github().getRepository(any())).thenReturn(repository);
releasesFromGitHub = new ReleasesFromGitHub(fetcher);
ValueHashSet values = new ValueHashSet();
assertEquals(0, values.size());
releasesFromGitHub.update(PROJECT, values);
assertEquals(1, values.size());
assertTrue(values.has(RELEASED_ARTIFACT_VERSIONS));
assertTrue(values.of(RELEASED_ARTIFACT_VERSIONS).isPresent());
Value<ArtifactVersions> releasedArtifactVersions = values.of(RELEASED_ARTIFACT_VERSIONS).get();
assertFalse(releasedArtifactVersions.isUnknown());
assertTrue(releasedArtifactVersions.get().empty());
}
use of org.kohsuke.github.GHTag in project fosstars-rating-core by SAP.
the class ReleaseInfoLoaderTest method testIfMavenArtifactHasNoReleaseInfoOnGitHub.
@Test
public void testIfMavenArtifactHasNoReleaseInfoOnGitHub() throws IOException {
final GHRepository repository = mock(GHRepository.class);
PagedIterable<GHRelease> pagedIterable = mock(PagedIterable.class);
when(pagedIterable.toList()).thenReturn(Collections.emptyList());
when(repository.listReleases()).thenReturn(pagedIterable);
PagedIterable<GHTag> pagedTagIterable = mock(PagedIterable.class);
when(pagedTagIterable.toList()).thenReturn(Collections.emptyList());
when(repository.listTags()).thenReturn(pagedTagIterable);
when(fetcher.github().getRepository(any())).thenReturn(repository);
releasesFromGitHub = new ReleasesFromGitHub(fetcher);
ValueHashSet values = new ValueHashSet();
assertEquals(0, values.size());
doReturn(releaseInfoFromMaven).when(releaseInfoFromMaven).update(MAVEN_ARTIFACT, values);
ReleaseInfoLoader provider = new ReleaseInfoLoader(releasesFromGitHub, releaseInfoFromMaven, releaseInfoFromNpm);
provider.update(MAVEN_ARTIFACT, values);
assertEquals(1, values.size());
assertTrue(values.has(RELEASED_ARTIFACT_VERSIONS));
assertTrue(values.of(RELEASED_ARTIFACT_VERSIONS).isPresent());
Value<ArtifactVersions> releasedArtifactVersions = values.of(RELEASED_ARTIFACT_VERSIONS).get();
assertFalse(releasedArtifactVersions.isUnknown());
assertTrue(releasedArtifactVersions.get().empty());
}
use of org.kohsuke.github.GHTag in project mandrel-packaging by graalvm.
the class MandrelRelease method createGHRelease.
private void createGHRelease() throws IOException {
final Set<String> jdkVersionsUsed = new HashSet<>();
if (download) {
if (windowsBuildNumber != UNDEFINED || linuxBuildNumber != UNDEFINED) {
jdkVersionsUsed.addAll(downloadAssets(version));
} else {
error("At least one of --windows-job-build-number, --linux-job-build-number must be specified. Terminating.");
}
if (jdkVersionsUsed.size() != 2) {
warn("There are supposed to be 2 distinct JDK versions used, one for JDK 17 and one for JDK 11." + "This is unexpected: " + String.join(",", jdkVersionsUsed));
}
}
if (jdkVersionsUsed.isEmpty()) {
jdkVersionsUsed.add(System.getProperty("java.runtime.version"));
}
final GitHub github = connectToGitHub();
try {
final GHRepository repository = github.getRepository(REPOSITORY_NAME);
final PagedIterable<GHMilestone> ghMilestones = repository.listMilestones(GHIssueState.OPEN);
final String finalVersion = version.majorMinorMicroPico() + "-Final";
final GHMilestone milestone = ghMilestones.toList().stream().filter(m -> m.getTitle().equals(finalVersion)).findAny().orElse(null);
final List<GHTag> tags = repository.listTags().toList();
String changelog = createChangelog(repository, milestone, tags);
if (dryRun) {
warn("Skipping release due to --dry-run");
info("Release body would look like");
System.out.println(releaseMainBody(version, changelog, jdkVersionsUsed));
return;
}
// Ensure that the tag exists
final String tag = "mandrel-" + version;
if (tags.stream().noneMatch(x -> x.getName().equals(tag))) {
error("Please create tag " + tag + " and try again");
}
final GHRelease ghRelease = repository.createRelease(tag).name("Mandrel " + version).prerelease(!suffix.equals("Final")).body(releaseMainBody(version, changelog, jdkVersionsUsed)).draft(true).create();
uploadAssets(version.toString(), ghRelease);
info("Created new draft release: " + ghRelease.getHtmlUrl());
info("Please review and publish!");
manageMilestones(repository, ghMilestones, milestone);
} catch (IOException e) {
e.printStackTrace();
error(e.getMessage());
}
}
use of org.kohsuke.github.GHTag in project fosstars-rating-core by SAP.
the class ReleasesFromGitHubTest method testIfGitHubHasNoReleaseInfoButTags.
@Test
public void testIfGitHubHasNoReleaseInfoButTags() throws IOException {
final GHRepository repository = mock(GHRepository.class);
PagedIterable<GHRelease> pagedIterable = mock(PagedIterable.class);
when(pagedIterable.toList()).thenReturn(Collections.emptyList());
when(repository.listReleases()).thenReturn(pagedIterable);
PagedIterable<GHTag> pagedTagIterable = mock(PagedIterable.class);
GHTag tag = mock(GHTag.class);
when(tag.getName()).thenReturn("2.0.1");
GHCommit commit = mock(GHCommit.class);
when(commit.getCommitDate()).thenReturn(new Date());
when(tag.getCommit()).thenReturn(commit);
List<GHTag> tagList = Arrays.asList(tag);
when(pagedTagIterable.toList()).thenReturn(tagList);
when(repository.listTags()).thenReturn(pagedTagIterable);
when(fetcher.github().getRepository(any())).thenReturn(repository);
releasesFromGitHub = new ReleasesFromGitHub(fetcher);
ValueHashSet values = new ValueHashSet();
assertEquals(0, values.size());
releasesFromGitHub.update(PROJECT, values);
assertEquals(1, values.size());
assertTrue(values.has(RELEASED_ARTIFACT_VERSIONS));
assertTrue(values.of(RELEASED_ARTIFACT_VERSIONS).isPresent());
assertFalse(values.of(RELEASED_ARTIFACT_VERSIONS).get().isUnknown());
assertFalse(values.of(RELEASED_ARTIFACT_VERSIONS).get().get().empty());
assertEquals(1, values.of(RELEASED_ARTIFACT_VERSIONS).get().get().size());
assertTrue(values.of(RELEASED_ARTIFACT_VERSIONS).get().get().get("2.0.1").isPresent());
}
Aggregations