Skip to content

Commit

Permalink
Set additional headers for GitHub API
Browse files Browse the repository at this point in the history
Closes gh-2
  • Loading branch information
sjohnr committed Jan 2, 2024
1 parent d115fca commit 181e9c5
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
16 changes: 13 additions & 3 deletions api/github/src/main/java/com/github/api/GitHubApi.java
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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);
}

Expand All @@ -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);
}

Expand Down
14 changes: 13 additions & 1 deletion api/github/src/test/java/com/github/api/GitHubApiTests.java
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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));
}

Expand All @@ -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();
}

Expand All @@ -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"));
Expand All @@ -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"));
Expand All @@ -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));
}

Expand All @@ -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));
}

Expand All @@ -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));
}

Expand All @@ -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));
}

Expand All @@ -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));
}

Expand All @@ -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"));
Expand Down

0 comments on commit 181e9c5

Please sign in to comment.