From 81fa56cbc93b25563d09f2a10218807430984b20 Mon Sep 17 00:00:00 2001 From: christopher blodgett Date: Mon, 10 Jan 2022 12:16:12 -0800 Subject: [PATCH 1/3] adding api key to http requests --- .gitignore | 4 +++- build.gradle | 4 ++++ .../java/me/itzg/helpers/get/GetCommand.java | 12 +++++++++- .../me/itzg/helpers/get/GetCommandTest.java | 23 ++++++++++++++++++- 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 06487417..c30150f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ /.idea/ +/.vscode/ /target/ /build/ +/bin/ /.gradle/ /dependency-reduced-pom.xml /pom.xml.releaseBackup -/release.properties \ No newline at end of file +/release.properties diff --git a/build.gradle b/build.gradle index ef8ed931..a66ab34d 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,10 @@ plugins { group = 'com.github.itzg' description = 'mc-image-helper' +compileJava { + options.release = 8 +} + test { useJUnitPlatform() diff --git a/src/main/java/me/itzg/helpers/get/GetCommand.java b/src/main/java/me/itzg/helpers/get/GetCommand.java index 1830c94e..75bd74f5 100644 --- a/src/main/java/me/itzg/helpers/get/GetCommand.java +++ b/src/main/java/me/itzg/helpers/get/GetCommand.java @@ -99,6 +99,11 @@ public class GetCommand implements Callable { ) String acceptHeader; + @Option(names = "--apikey", + description = "Specifies the accept header to use with the request" + ) + String apikeyHeader; + @Option(names = "--uris-file", description = "A file that contains a URL per line" ) @@ -194,7 +199,9 @@ private int checkUrisExist(CloseableHttpClient client) { if (acceptHeader != null) { request.addHeader(HttpHeaders.ACCEPT, acceptHeader); } - + if (apikeyHeader != null) { + request.addHeader("x-api-key", apikeyHeader); + } try { final int statusCode = client.execute(request).getCode(); if (statusCode == HttpStatus.SC_OK) { @@ -347,6 +354,9 @@ private Path processSingleUri(URI uri, CloseableHttpClient client, PrintWriter s if (acceptHeader != null) { request.addHeader(HttpHeaders.ACCEPT, acceptHeader); } + if (apikeyHeader != null) { + request.addHeader("x-api-key", apikeyHeader); + } if (modifiedSinceFile != null && Files.exists(modifiedSinceFile)) { final FileTime lastModifiedTime = Files.getLastModifiedTime(modifiedSinceFile); request.addHeader(HttpHeaders.IF_MODIFIED_SINCE, diff --git a/src/test/java/me/itzg/helpers/get/GetCommandTest.java b/src/test/java/me/itzg/helpers/get/GetCommandTest.java index f1c793f7..e00f9d1a 100644 --- a/src/test/java/me/itzg/helpers/get/GetCommandTest.java +++ b/src/test/java/me/itzg/helpers/get/GetCommandTest.java @@ -129,6 +129,27 @@ void usesGivenAcceptHeader() throws MalformedURLException { assertThat(output.toString()).isEqualTo("Some text"); } + @Test + void usesGivenApiKeyHeader() throws MalformedURLException { + expectRequest("GET","/content.txt", + request -> request.withHeader("x-api-key", "xxxxxx"), + response() + .withBody("Some text", MediaType.TEXT_PLAIN) + ); + + final StringWriter output = new StringWriter(); + final int status = + new CommandLine(new GetCommand()) + .setOut(new PrintWriter(output)) + .execute( + "--apikey", "xxxxxx", + buildMockedUrl("/content.txt").toString() + ); + + assertThat(status).isEqualTo(0); + assertThat(output.toString()).isEqualTo("Some text"); + } + @Nested class ExistsTests { @@ -857,4 +878,4 @@ private void expectRequest(String method, ); } -} \ No newline at end of file +} From daf4ebfd5868f8dae75f48d9cda5e4bf982ed497 Mon Sep 17 00:00:00 2001 From: christopher blodgett Date: Mon, 10 Jan 2022 12:51:14 -0800 Subject: [PATCH 2/3] Updating workflows to Java 17 --- .github/workflows/publish-release.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index eda4267f..e547c422 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -19,8 +19,8 @@ jobs: uses: actions/setup-java@v2.5.0 with: # maximize compatibility with minecraft images - java-version: '8' - distribution: 'adopt' + distribution: 'termurin' + java-version: '17' cache: gradle - name: Grant execute permission for gradlew diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c6e097b8..8ef94027 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,8 +19,8 @@ jobs: uses: actions/setup-java@v2.5.0 with: # maximize compatibility with minecraft images - java-version: '8' - distribution: 'adopt' + distribution: 'termurin' + java-version: '17' cache: gradle - name: Grant execute permission for gradlew From 62fdf92a624d32e86b7e37deff521f5503b9e21b Mon Sep 17 00:00:00 2001 From: christopher blodgett Date: Mon, 10 Jan 2022 12:53:50 -0800 Subject: [PATCH 3/3] fixing spelling of temurin --- .github/workflows/publish-release.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index e547c422..3e7fc102 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -19,7 +19,7 @@ jobs: uses: actions/setup-java@v2.5.0 with: # maximize compatibility with minecraft images - distribution: 'termurin' + distribution: 'temurin' java-version: '17' cache: gradle diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8ef94027..f7eaa382 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: uses: actions/setup-java@v2.5.0 with: # maximize compatibility with minecraft images - distribution: 'termurin' + distribution: 'temurin' java-version: '17' cache: gradle