Skip to content
Snippets Groups Projects

fix: update GH API requests to handle rest client param encoding

Merged Martin Lowe requested to merge malowe/main/fix-gh-calls into main
1 unresolved thread
12 files
+ 133
62
Compare changes
  • Side-by-side
  • Inline
Files
12
@@ -14,6 +14,7 @@ package org.eclipsefoundation.git.eca.api.models;
@@ -14,6 +14,7 @@ package org.eclipsefoundation.git.eca.api.models;
import jakarta.annotation.Nullable;
import jakarta.annotation.Nullable;
import org.eclipsefoundation.git.eca.dto.GithubWebhookTracking;
import org.eclipsefoundation.git.eca.dto.GithubWebhookTracking;
 
import org.eclipsefoundation.utils.helper.TransformationHelper;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
@@ -55,6 +56,13 @@ public abstract class GithubWebhookRequest {
@@ -55,6 +56,13 @@ public abstract class GithubWebhookRequest {
* @return the reconstructed request.
* @return the reconstructed request.
*/
*/
public static GithubWebhookRequest buildFromTracking(GithubWebhookTracking tracking) {
public static GithubWebhookRequest buildFromTracking(GithubWebhookTracking tracking) {
 
String[] repoNameParts = tracking.getRepositoryFullName().split("\\/");
 
if (repoNameParts.length != 2) {
 
throw new IllegalStateException("A repo full name should always have 2 parts, organization name and repo name: "
 
+ TransformationHelper.formatLog(tracking.getRepositoryFullName()));
 
}
 
String org = repoNameParts[0];
 
String repo = repoNameParts[1];
return builder()
return builder()
.setInstallation(Installation.builder().setId(tracking.getInstallationId()).build())
.setInstallation(Installation.builder().setId(tracking.getInstallationId()).build())
.setPullRequest(PullRequest
.setPullRequest(PullRequest
@@ -66,6 +74,8 @@ public abstract class GithubWebhookRequest {
@@ -66,6 +74,8 @@ public abstract class GithubWebhookRequest {
.setRepository(Repository
.setRepository(Repository
.builder()
.builder()
.setFullName(tracking.getRepositoryFullName())
.setFullName(tracking.getRepositoryFullName())
 
.setName(repo)
 
.setOwner(RepositoryOwner.builder().setLogin(org).build())
.setHtmlUrl("https://github.com/" + tracking.getRepositoryFullName())
.setHtmlUrl("https://github.com/" + tracking.getRepositoryFullName())
.build())
.build())
.build();
.build();
@@ -92,6 +102,10 @@ public abstract class GithubWebhookRequest {
@@ -92,6 +102,10 @@ public abstract class GithubWebhookRequest {
public abstract String getFullName();
public abstract String getFullName();
 
public abstract String getName();
 
 
public abstract RepositoryOwner getOwner();
 
public abstract String getHtmlUrl();
public abstract String getHtmlUrl();
public static Builder builder() {
public static Builder builder() {
@@ -103,12 +117,35 @@ public abstract class GithubWebhookRequest {
@@ -103,12 +117,35 @@ public abstract class GithubWebhookRequest {
public abstract static class Builder {
public abstract static class Builder {
public abstract Builder setFullName(String fullName);
public abstract Builder setFullName(String fullName);
 
public abstract Builder setName(String name);
 
 
public abstract Builder setOwner(RepositoryOwner owner);
 
public abstract Builder setHtmlUrl(String htmlUrl);
public abstract Builder setHtmlUrl(String htmlUrl);
public abstract Repository build();
public abstract Repository build();
}
}
}
}
 
@AutoValue
 
@JsonDeserialize(builder = AutoValue_GithubWebhookRequest_RepositoryOwner.Builder.class)
 
public abstract static class RepositoryOwner {
 
 
public abstract String getLogin();
 
 
public static Builder builder() {
 
return new AutoValue_GithubWebhookRequest_RepositoryOwner.Builder();
 
}
 
 
@AutoValue.Builder
 
@JsonPOJOBuilder(withPrefix = "set")
 
public abstract static class Builder {
 
public abstract Builder setLogin(String fullName);
 
 
public abstract RepositoryOwner build();
 
}
 
}
 
@AutoValue
@AutoValue
@JsonDeserialize(builder = AutoValue_GithubWebhookRequest_PullRequest.Builder.class)
@JsonDeserialize(builder = AutoValue_GithubWebhookRequest_PullRequest.Builder.class)
public abstract static class PullRequest {
public abstract static class PullRequest {
Loading