Skip to content

Commit 5c51c6d

Browse files
authored
feat: Add support for Bitbucket API Tokens (#6)
1 parent bd47e8c commit 5c51c6d

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

src/main/java/se/bjurr/violations/comments/bitbucketcloud/lib/ViolationCommentsToBitbucketCloudApi.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ public void log(final Level level, final String string) {
3737
*/
3838
private String password;
3939

40+
/**
41+
* https://support.atlassian.com/bitbucket-cloud/docs/api-tokens/
42+
*/
43+
private String apiToken;
44+
4045
private String workspace;
4146
private String repositorySlug;
4247
private String pullRequestId;
@@ -66,6 +71,10 @@ public String getPassword() {
6671
return this.password;
6772
}
6873

74+
public String getApiToken() {
75+
return this.apiToken;
76+
}
77+
6978
public String getWorkspace() {
7079
return this.workspace;
7180
}
@@ -120,6 +129,11 @@ public ViolationCommentsToBitbucketCloudApi withUsername(final String username)
120129
return this;
121130
}
122131

132+
public ViolationCommentsToBitbucketCloudApi withApiToken(final String apiToken) {
133+
this.apiToken = apiToken;
134+
return this;
135+
}
136+
123137
public ViolationCommentsToBitbucketCloudApi withViolationsLogger(
124138
final ViolationsLogger violationsLogger) {
125139
this.violationsLogger = violationsLogger;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package se.bjurr.violations.comments.bitbucketcloud.lib.client;
2+
3+
import java.io.IOException;
4+
5+
import jakarta.ws.rs.client.ClientRequestContext;
6+
import jakarta.ws.rs.client.ClientRequestFilter;
7+
import jakarta.ws.rs.core.HttpHeaders;
8+
9+
import org.jboss.resteasy.util.BasicAuthHelper;
10+
11+
public class ApiTokenAuthentication implements ClientRequestFilter {
12+
private final String authHeader;
13+
14+
/**
15+
*
16+
* @param apiToken API Token
17+
*/
18+
public ApiTokenAuthentication(final String apiToken) {
19+
this.authHeader = apiToken;
20+
}
21+
22+
@Override
23+
public void filter(ClientRequestContext requestContext) throws IOException {
24+
requestContext.getHeaders().putSingle(HttpHeaders.AUTHORIZATION, "Bearer " + authHeader);
25+
}
26+
}

src/main/java/se/bjurr/violations/comments/bitbucketcloud/lib/client/RestEasyClientFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static <T> T create(final Class<T> clazz, final ViolationCommentsToBitbuc
3434
.connectionCheckoutTimeout(10, SECONDS) //
3535
.register(new RequestLoggingFilter(api.getViolationsLogger())) //
3636
.register(new ResponseLoggingFilter(api.getViolationsLogger())) //
37-
.register(new BasicAuthentication(api.getUsername(), api.getPassword())) //
37+
.register(api.getApiToken() != null ? new ApiTokenAuthentication(api.getApiToken()) : new BasicAuthentication(api.getUsername(), api.getPassword())) //
3838
.register(jaxbJsonProvider) //
3939
.register(new StringTextStar()) //
4040
.build();

0 commit comments

Comments
 (0)