From fb1adbd1eff55b203fff3bad6185e5e3a9e35d51 Mon Sep 17 00:00:00 2001 From: Liam Newman Date: Mon, 27 Jul 2020 13:12:41 -0700 Subject: [PATCH] Make withUrlPath() overwrite instead of append I had some ideas about having multiple calls to apend to build up paths, but it turns out that idea is pretty bad. `with*()` methods should overwrite when called for the same field. If we want to create and , we can do that later. --- src/main/java/org/kohsuke/github/GHRepository.java | 9 +++++---- src/main/java/org/kohsuke/github/GitHubRequest.java | 8 ++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java index 8315b0dcd..b4e056cac 100644 --- a/src/main/java/org/kohsuke/github/GHRepository.java +++ b/src/main/java/org/kohsuke/github/GHRepository.java @@ -980,12 +980,13 @@ public class GHRepository extends GHObject { private void modifyCollaborators(@NonNull Collection users, @NonNull String method, @CheckForNull GHOrganization.Permission permission) throws IOException { + Requester requester = root.createRequest().method(method); + if (permission != null) { + requester = requester.with("permission", permission).inBody(); + } + // Make sure that the users collection doesn't have any duplicates for (GHUser user : new LinkedHashSet(users)) { - Requester requester = root.createRequest().method(method); - if (permission != null) { - requester = requester.with("permission", permission).inBody(); - } requester.withUrlPath(getApiTailUrl("collaborators/" + user.getLogin())).send(); } } diff --git a/src/main/java/org/kohsuke/github/GitHubRequest.java b/src/main/java/org/kohsuke/github/GitHubRequest.java index f7b4d2a4d..1148073b2 100644 --- a/src/main/java/org/kohsuke/github/GitHubRequest.java +++ b/src/main/java/org/kohsuke/github/GitHubRequest.java @@ -671,13 +671,9 @@ class GitHubRequest { tailUrlPath += "/" + String.join("/", urlPathItems); } - if (this.urlPath.endsWith("/")) { - tailUrlPath = StringUtils.stripStart(tailUrlPath, "/"); - } else { - tailUrlPath = StringUtils.prependIfMissing(tailUrlPath, "/"); - } + tailUrlPath = StringUtils.prependIfMissing(tailUrlPath, "/"); - this.urlPath += urlPathEncode(tailUrlPath); + this.urlPath = urlPathEncode(tailUrlPath); return (B) this; }