From 181e9c526c20829f3455730dd2c5be7c2435bc32 Mon Sep 17 00:00:00 2001 From: Steve Riesenberg <5248162+sjohnr@users.noreply.github.com> Date: Tue, 2 Jan 2024 12:07:23 -0600 Subject: [PATCH] Set additional headers for GitHub API Closes gh-2 --- .../src/main/java/com/github/api/GitHubApi.java | 16 +++++++++++++--- .../test/java/com/github/api/GitHubApiTests.java | 14 +++++++++++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/api/github/src/main/java/com/github/api/GitHubApi.java b/api/github/src/main/java/com/github/api/GitHubApi.java index 6667976..e0cc03b 100644 --- a/api/github/src/main/java/com/github/api/GitHubApi.java +++ b/api/github/src/main/java/com/github/api/GitHubApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 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. @@ -88,7 +88,12 @@ public User getUser() { */ public void createRelease(Repository repository, Release release) { var uri = "/repos/%s/%s/releases".formatted(repository.owner(), repository.name()); - var httpRequest = requestBuilder(uri).POST(bodyValue(release)).build(); + // @formatter:off + var httpRequest = requestBuilder(uri) + .header("Content-Type", "application/json") + .POST(bodyValue(release)) + .build(); + // @formatter:on performRequest(httpRequest, Void.class); } @@ -99,7 +104,12 @@ public void createRelease(Repository repository, Release release) { */ public void createMilestone(Repository repository, Milestone milestone) { var uri = "/repos/%s/%s/milestones".formatted(repository.owner(), repository.name()); - var httpRequest = requestBuilder(uri).POST(bodyValue(milestone)).build(); + // @formatter:off + var httpRequest = requestBuilder(uri) + .header("Content-Type", "application/json") + .POST(bodyValue(milestone)) + .build(); + // @formatter:on performRequest(httpRequest, Void.class); } diff --git a/api/github/src/test/java/com/github/api/GitHubApiTests.java b/api/github/src/test/java/com/github/api/GitHubApiTests.java index aaf60d1..1f184ae 100644 --- a/api/github/src/test/java/com/github/api/GitHubApiTests.java +++ b/api/github/src/test/java/com/github/api/GitHubApiTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 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. @@ -68,6 +68,7 @@ public void getUserWhenExistsThenSuccess() throws Exception { var recordedRequest = this.server.takeRequest(); assertThat(recordedRequest.getMethod()).isEqualTo("GET"); assertThat(recordedRequest.getPath()).isEqualTo("/user"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); } @@ -84,6 +85,7 @@ public void getUserWhenAccessTokenIsNullThenNoAuthorizationHeader() throws Excep var recordedRequest = this.server.takeRequest(1, TimeUnit.SECONDS); assertThat(recordedRequest.getMethod()).isEqualTo("GET"); assertThat(recordedRequest.getPath()).isEqualTo("/user"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); assertThat(recordedRequest.getHeaders().names().contains("Authorization")).isFalse(); } @@ -97,6 +99,8 @@ public void createReleaseWhenValidParametersThenSuccess() throws Exception { var recordedRequest = this.server.takeRequest(); assertThat(recordedRequest.getMethod()).isEqualTo("POST"); assertThat(recordedRequest.getPath()).isEqualTo("/repos/spring-projects/spring-security/releases"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); + assertThat(recordedRequest.getHeader("Content-Type")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); assertThat(recordedRequest.getBody().readString(Charset.defaultCharset())) .isEqualTo(string("CreateReleaseRequest.json")); @@ -113,6 +117,8 @@ public void createMilestoneWhenValidParametersThenSuccess() throws Exception { var recordedRequest = this.server.takeRequest(); assertThat(recordedRequest.getMethod()).isEqualTo("POST"); assertThat(recordedRequest.getPath()).isEqualTo("/repos/spring-projects/spring-security/milestones"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); + assertThat(recordedRequest.getHeader("Content-Type")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); assertThat(recordedRequest.getBody().readString(Charset.defaultCharset())) .isEqualTo(string("CreateMilestoneRequest.json")); @@ -131,6 +137,7 @@ public void getMilestonesWhenExistsThenSuccess() throws Exception { assertThat(recordedRequest.getMethod()).isEqualTo("GET"); assertThat(recordedRequest.getPath()) .isEqualTo("/repos/spring-projects/spring-security/milestones?per_page=100"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); } @@ -145,6 +152,7 @@ public void getMilestoneWhenExistsThenSuccess() throws Exception { assertThat(recordedRequest.getMethod()).isEqualTo("GET"); assertThat(recordedRequest.getPath()) .isEqualTo("/repos/spring-projects/spring-security/milestones?per_page=100"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); } @@ -159,6 +167,7 @@ public void getMilestoneWhenNotFoundThenNull() throws Exception { assertThat(recordedRequest.getMethod()).isEqualTo("GET"); assertThat(recordedRequest.getPath()) .isEqualTo("/repos/spring-projects/spring-security/milestones?per_page=100"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); } @@ -173,6 +182,7 @@ public void hasOpenIssuesWhenClosedThenFalse() throws Exception { assertThat(recordedRequest.getMethod()).isEqualTo("GET"); assertThat(recordedRequest.getPath()) .isEqualTo("/repos/spring-projects/spring-security/issues?per_page=1&milestone=202"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); } @@ -187,6 +197,7 @@ public void hasOpenIssuesWhenOpenThenTrue() throws Exception { assertThat(recordedRequest.getMethod()).isEqualTo("GET"); assertThat(recordedRequest.getPath()) .isEqualTo("/repos/spring-projects/spring-security/issues?per_page=1&milestone=191"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); } @@ -199,6 +210,7 @@ public void closeMilestoneWhenValidParametersThenSuccess() throws Exception { var recordedRequest = this.server.takeRequest(); assertThat(recordedRequest.getMethod()).isEqualTo("PATCH"); assertThat(recordedRequest.getPath()).isEqualTo("/repos/spring-projects/spring-security/milestones/191"); + assertThat(recordedRequest.getHeader("Accept")).isEqualTo("application/json"); assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Bearer %s".formatted(AUTH_TOKEN)); assertThat(recordedRequest.getBody().readString(Charset.defaultCharset())) .isEqualTo(string("UpdateMilestoneRequest.json"));