Search in sources :

Example 1 with GHTag

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());
}
Also used : ArtifactVersions(com.sap.oss.phosphor.fosstars.model.value.ArtifactVersions) GHTag(org.kohsuke.github.GHTag) GHRepository(org.kohsuke.github.GHRepository) ValueHashSet(com.sap.oss.phosphor.fosstars.model.value.ValueHashSet) GHRelease(org.kohsuke.github.GHRelease) Test(org.junit.Test)

Example 2 with GHTag

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());
}
Also used : ArtifactVersions(com.sap.oss.phosphor.fosstars.model.value.ArtifactVersions) GHTag(org.kohsuke.github.GHTag) GHRepository(org.kohsuke.github.GHRepository) ReleasesFromGitHub(com.sap.oss.phosphor.fosstars.data.github.ReleasesFromGitHub) ValueHashSet(com.sap.oss.phosphor.fosstars.model.value.ValueHashSet) GHRelease(org.kohsuke.github.GHRelease) Test(org.junit.Test)

Example 3 with GHTag

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());
    }
}
Also used : GHTag(org.kohsuke.github.GHTag) GHRepository(org.kohsuke.github.GHRepository) GHMilestone(org.kohsuke.github.GHMilestone) GitHub(org.kohsuke.github.GitHub) IOException(java.io.IOException) HashSet(java.util.HashSet) GHRelease(org.kohsuke.github.GHRelease)

Example 4 with GHTag

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());
}
Also used : GHCommit(org.kohsuke.github.GHCommit) GHTag(org.kohsuke.github.GHTag) GHRepository(org.kohsuke.github.GHRepository) ValueHashSet(com.sap.oss.phosphor.fosstars.model.value.ValueHashSet) Date(java.util.Date) GHRelease(org.kohsuke.github.GHRelease) Test(org.junit.Test)

Aggregations

GHRelease (org.kohsuke.github.GHRelease)4 GHRepository (org.kohsuke.github.GHRepository)4 GHTag (org.kohsuke.github.GHTag)4 ValueHashSet (com.sap.oss.phosphor.fosstars.model.value.ValueHashSet)3 Test (org.junit.Test)3 ArtifactVersions (com.sap.oss.phosphor.fosstars.model.value.ArtifactVersions)2 ReleasesFromGitHub (com.sap.oss.phosphor.fosstars.data.github.ReleasesFromGitHub)1 IOException (java.io.IOException)1 Date (java.util.Date)1 HashSet (java.util.HashSet)1 GHCommit (org.kohsuke.github.GHCommit)1 GHMilestone (org.kohsuke.github.GHMilestone)1 GitHub (org.kohsuke.github.GitHub)1