diff --git a/.github/workflows/build-test.yaml b/.github/workflows/build-test.yaml index ef6f6a7..097216a 100644 --- a/.github/workflows/build-test.yaml +++ b/.github/workflows/build-test.yaml @@ -42,4 +42,4 @@ jobs: uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 - name: Test with Gradle Wrapper - run: ./gradlew verify + run: ./gradlew test diff --git a/README.md b/README.md index b230f7f..a3d7ba1 100644 --- a/README.md +++ b/README.md @@ -8,33 +8,12 @@ A java library for checking for new releases on GitHub ## Download -Gradle: -```gradle -maven { - url "https://repo.voxcrafter.dev/repository/maven-releases/" -} - -dependencies { - implementation 'com.lezurex.githubversionchecker:1.0.0' -} -``` - -Maven: -```xml - - com.lezurex - github-version-checker - 1.0.0 - compile - - - - voxcrafter-repo - https://repo.voxcrafter.dev/repository/maven-releases/ - -``` +This library is published as `com.lezurex.github-version-checker` on GitHub +Packages. Take a look at [this](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry#using-a-published-package) +to see how to configure the GitHub Package Registry for your project. ## Usage + ```java public class Example { @@ -58,4 +37,4 @@ public class Example { } } -``` \ No newline at end of file +``` diff --git a/build.gradle b/build.gradle index 5f127fd..0f4ab76 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'com.lezurex' -version '1.0.0' +version '1.0.1' repositories { mavenCentral() diff --git a/src/main/java/com/lezurex/githubversionchecker/GithubVersionChecker.java b/src/main/java/com/lezurex/githubversionchecker/GithubVersionChecker.java index be04b55..357e49d 100644 --- a/src/main/java/com/lezurex/githubversionchecker/GithubVersionChecker.java +++ b/src/main/java/com/lezurex/githubversionchecker/GithubVersionChecker.java @@ -10,6 +10,8 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import static java.net.HttpURLConnection.HTTP_OK; @@ -33,20 +35,23 @@ public class GithubVersionChecker { * @param currentVersion The current version running * @param includePreReleases Whether pre releases should be tested (default: false) */ - public GithubVersionChecker(String username, String repo, ReleaseVersion currentVersion, boolean includePreReleases) { + public GithubVersionChecker(String username, String repo, ReleaseVersion currentVersion, + boolean includePreReleases) { this.username = username; this.repo = repo; this.currentVersion = currentVersion; this.includePreReleases = includePreReleases; try { - URL url = new URL(String.format("https://api.github.com/repos/%s/%s", this.username, this.repo)); + URL url = new URI( + String.format("https://api.github.com/repos/%s/%s", this.username, this.repo)) + .toURL(); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); con.setRequestMethod("GET"); if (con.getResponseCode() != HTTP_OK) { throw new RepoNotFoundException(this.username, this.repo); } - } catch (IOException e) { + } catch (IOException | URISyntaxException e) { e.printStackTrace(); } } @@ -65,24 +70,27 @@ public CheckResult check() { if (this.includePreReleases) queryURL = "https://api.github.com/repos/%s/%s/releases?per_page=1"; try { - URL url = new URL(String.format(queryURL, this.username, this.repo)); + URL url = new URI(String.format(queryURL, this.username, this.repo)).toURL(); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); con.setRequestMethod("GET"); - if (con.getResponseCode() != HTTP_OK) throw new NoReleaseFoundException(this.username, this.repo); + if (con.getResponseCode() != HTTP_OK) + throw new NoReleaseFoundException(this.username, this.repo); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); JsonObject releaseData; if (this.includePreReleases) { JsonArray jsonArray = JsonParser.parseReader(in).getAsJsonArray(); - if (jsonArray.size() == 0) throw new NoReleaseFoundException(this.username, this.repo); + if (jsonArray.size() == 0) + throw new NoReleaseFoundException(this.username, this.repo); releaseData = jsonArray.get(0).getAsJsonObject(); } else releaseData = JsonParser.parseReader(in).getAsJsonObject(); in.close(); con.disconnect(); - ReleaseVersion githubVersion = new ReleaseVersion(releaseData.get("tag_name").getAsString()); + ReleaseVersion githubVersion = + new ReleaseVersion(releaseData.get("tag_name").getAsString()); String pageLink = releaseData.get("html_url").getAsString(); switch (this.currentVersion.compareTo(githubVersion)) { case -1: @@ -95,7 +103,7 @@ public CheckResult check() { return null; } - } catch (IOException e) { + } catch (IOException | URISyntaxException e) { e.printStackTrace(); } return null; diff --git a/src/test/java/com/lezurex/githubversionchecker/GithubVersionCheckerTest.java b/src/test/java/com/lezurex/githubversionchecker/GithubVersionCheckerTest.java index c7ff79c..0f1ad16 100644 --- a/src/test/java/com/lezurex/githubversionchecker/GithubVersionCheckerTest.java +++ b/src/test/java/com/lezurex/githubversionchecker/GithubVersionCheckerTest.java @@ -13,7 +13,7 @@ class GithubVersionCheckerTest { void setupValidRepo() { ReleaseVersion releaseVersion = new ReleaseVersion("0.1.1"); assertDoesNotThrow(() -> { - GithubVersionChecker versionChecker = new GithubVersionChecker("Lezurex", "github-version-checker", releaseVersion); + new GithubVersionChecker("Lezurex", "github-version-checker", releaseVersion); }, "Repo validation failed!"); } @@ -21,17 +21,22 @@ void setupValidRepo() { @DisplayName("Setup with invalid repo") void setupInvalidRepo() { ReleaseVersion releaseVersion = new ReleaseVersion("0.1.1"); - assertThrows(RepoNotFoundException.class, () -> new GithubVersionChecker("Lezurex", "doesnotexist", releaseVersion), "Repo validation di not fail!"); + assertThrows(RepoNotFoundException.class, + () -> new GithubVersionChecker("Lezurex", "doesnotexist", releaseVersion), + "Repo validation di not fail!"); } @Test @DisplayName("Check with outdated version") void checkOutdated() { ReleaseVersion releaseVersion = new ReleaseVersion("0.0.1"); - GithubVersionChecker githubVersionChecker = new GithubVersionChecker("VoxCrafterLP", "JumpRace", releaseVersion); + GithubVersionChecker githubVersionChecker = + new GithubVersionChecker("VoxCrafterLP", "JumpRace", releaseVersion); CheckResult checkResult = githubVersionChecker.check(); - assertEquals(VersionState.OUTDATED, checkResult.getVersionState(), "Version state is not outdated!"); - assertTrue(checkResult.getPageLink().endsWith(checkResult.getVersion().toString()), "End of release URL does not match version!"); + assertEquals(VersionState.OUTDATED, checkResult.getVersionState(), + "Version state is not outdated!"); + assertTrue(checkResult.getPageLink().endsWith(checkResult.getVersion().toString()), + "End of release URL does not match version!"); } -} \ No newline at end of file +}