From 5faf9aeeaff2cdb2604ff2ac7b14869f679e561a Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Fri, 20 Dec 2024 13:21:33 +0100 Subject: [PATCH] trim list when assigning in HostingRequest --- .../hosting/GitHubVerifier.java | 29 +++++++------------ .../hosting/HostingRequest.java | 9 ++++-- .../hosting/JenkinsProjectUserVerifier.java | 29 ++++++++----------- 3 files changed, 30 insertions(+), 37 deletions(-) diff --git a/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/GitHubVerifier.java b/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/GitHubVerifier.java index b5b369b656..d10f916126 100644 --- a/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/GitHubVerifier.java +++ b/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/GitHubVerifier.java @@ -22,29 +22,22 @@ public void verify(HostingRequest request, HashSet hostingI String forkFrom = request.getRepositoryUrl(); List users = request.getGithubUsers(); - if (users != null) { - users = users.stream().filter(it -> !it.trim().isEmpty()).toList(); - if (!users.isEmpty()) { - List invalidUsers = new ArrayList<>(); - for (String user : users) { - try { - GHUser ghUser = github.getUser(user.trim()); - if (ghUser == null || !ghUser.getType().equalsIgnoreCase("user")) { - invalidUsers.add(user.trim()); - } - } catch (IOException e) { + if (!users.isEmpty()) { + List invalidUsers = new ArrayList<>(); + for (String user : users) { + try { + GHUser ghUser = github.getUser(user.trim()); + if (ghUser == null || !ghUser.getType().equalsIgnoreCase("user")) { invalidUsers.add(user.trim()); } + } catch (IOException e) { + invalidUsers.add(user.trim()); } + } - if (!invalidUsers.isEmpty()) { - hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The following usernames in 'GitHub Users to Authorize as Committers' are not valid GitHub usernames or are Organizations: %s", String.join(",", invalidUsers))); - } - } else { - hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The Github users list is empty. Please specify at least one user.")); + if (!invalidUsers.isEmpty()) { + hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The following usernames in 'GitHub Users to Authorize as Committers' are not valid GitHub usernames or are Organizations: %s", String.join(",", invalidUsers))); } - } else { - hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The Github users list is empty. Please specify at least one user.")); } if (StringUtils.isNotBlank(forkFrom)) { diff --git a/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/HostingRequest.java b/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/HostingRequest.java index 7f706d25d8..138740ee38 100644 --- a/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/HostingRequest.java +++ b/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/HostingRequest.java @@ -27,8 +27,8 @@ public HostingRequest( ) { this.repositoryUrl = repositoryUrl; this.newRepoName = newRepoName; - this.githubUsers = Collections.unmodifiableList(githubUsers); - this.jenkinsProjectUsers = Collections.unmodifiableList(jenkinsProjectUsers); + this.githubUsers = Collections.unmodifiableList(trimList(githubUsers)); + this.jenkinsProjectUsers = Collections.unmodifiableList(trimList(jenkinsProjectUsers)); this.issueTracker = issueTracker; } @@ -59,4 +59,9 @@ public static IssueTracker fromString(String string) { return string.toLowerCase(Locale.ROOT).contains("git") ? GITHUB : JIRA; } } + + private List trimList(List users) { + return users.stream().filter(it -> !it.trim().isEmpty()).toList(); + + } } diff --git a/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/JenkinsProjectUserVerifier.java b/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/JenkinsProjectUserVerifier.java index c06b24acbf..4c29c18de0 100644 --- a/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/JenkinsProjectUserVerifier.java +++ b/src/main/java/io/jenkins/infra/repository_permissions_updater/hosting/JenkinsProjectUserVerifier.java @@ -13,24 +13,19 @@ public class JenkinsProjectUserVerifier implements Verifier{ public void verify(HostingRequest request, HashSet hostingIssues) throws IOException { List jenkinsProjectUsers = request.getJenkinsProjectUsers(); - if (jenkinsProjectUsers != null) { - jenkinsProjectUsers = jenkinsProjectUsers.stream().filter(it -> !it.trim().isEmpty()).toList(); - if (!jenkinsProjectUsers.isEmpty()) { - String missingInArtifactory = jenkinsProjectUsers - .stream().filter(user -> !KnownUsers.existsInArtifactory(user)) - .collect(Collectors.joining(", ")); - String missingInJira = jenkinsProjectUsers - .stream().filter(user -> !KnownUsers.existsInJira(user)) - .collect(Collectors.joining(", ")); + if (!jenkinsProjectUsers.isEmpty()) { + String missingInArtifactory = jenkinsProjectUsers + .stream().filter(user -> !KnownUsers.existsInArtifactory(user)) + .collect(Collectors.joining(", ")); + String missingInJira = jenkinsProjectUsers + .stream().filter(user -> !KnownUsers.existsInJira(user)) + .collect(Collectors.joining(", ")); - if (StringUtils.isNotBlank(missingInArtifactory)) { - hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The following usernames in 'Jenkins project users to have release permission' need to log into [Artifactory](https://repo.jenkins-ci.org/): %s (reports are re-synced hourly, wait to re-check for a bit after logging in)", missingInArtifactory)); - } - if (StringUtils.isNotBlank(missingInJira)) { - hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The following usernames in 'Jenkins project users to have release permission' need to log into [Jira](https://issues.jenkins.io): %s (reports are re-synced hourly, wait to re-check for a bit after logging in)", missingInJira)); - } - } else { - hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The Jenkins project users list is empty. Please specify at least one user.")); + if (StringUtils.isNotBlank(missingInArtifactory)) { + hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The following usernames in 'Jenkins project users to have release permission' need to log into [Artifactory](https://repo.jenkins-ci.org/): %s (reports are re-synced hourly, wait to re-check for a bit after logging in)", missingInArtifactory)); + } + if (StringUtils.isNotBlank(missingInJira)) { + hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The following usernames in 'Jenkins project users to have release permission' need to log into [Jira](https://issues.jenkins.io): %s (reports are re-synced hourly, wait to re-check for a bit after logging in)", missingInJira)); } } else { hostingIssues.add(new VerificationMessage(VerificationMessage.Severity.REQUIRED, "The Jenkins project users list is empty. Please specify at least one user."));