From c5ace1cad277733ce19fb711239b06a4f4ceb0e8 Mon Sep 17 00:00:00 2001 From: Gareth Healy Date: Mon, 16 Dec 2024 20:17:36 +0000 Subject: [PATCH 1/6] next snapshot --- pom.xml | 2 +- src/main/docker/version.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e88cd51..5ad5501 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.github.garethahealy github-stats - 2.2.2 + 2.2.3-SNAPSHOT 3.13.0 21 diff --git a/src/main/docker/version.json b/src/main/docker/version.json index 7250536..f4b5971 100644 --- a/src/main/docker/version.json +++ b/src/main/docker/version.json @@ -1,3 +1,3 @@ { - "version": "v2.2.2" + "version": "v2.2.3-SNAPSHOT" } \ No newline at end of file From 07cf2e556aa80fe72df121cc27468f2fde6b878c Mon Sep 17 00:00:00 2001 From: Gareth Healy Date: Wed, 18 Dec 2024 12:38:17 +0000 Subject: [PATCH 2/6] added recursive collection of all members from config yaml --- .../githubstats/services/GitHubService.java | 28 +++++++++++++++++-- .../ConfigYamlMemberInRedHatLdapService.java | 9 ++---- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/garethahealy/githubstats/services/GitHubService.java b/src/main/java/com/garethahealy/githubstats/services/GitHubService.java index ed83e9f..e6b9572 100644 --- a/src/main/java/com/garethahealy/githubstats/services/GitHubService.java +++ b/src/main/java/com/garethahealy/githubstats/services/GitHubService.java @@ -209,8 +209,8 @@ public JsonNode getArchivedRepos(String configContent) throws JsonProcessingExce return configMap.get("orgs").get("redhat-cop").get("teams").get("aarchived").get("repos"); } - public List getConfigMembers(String configContent) throws JsonProcessingException { - List allMembers = new ArrayList<>(); + public Set getConfigMembers(String configContent) throws JsonProcessingException { + Set allMembers = new TreeSet<>(Comparator.naturalOrder()); YAMLMapper mapper = new YAMLMapper(); JsonNode configMap = mapper.readValue(configContent, JsonNode.class); @@ -226,10 +226,32 @@ public List getConfigMembers(String configContent) throws JsonProcessing allMembers.add(current.asText()); } - Collections.sort(allMembers); + recursiveGetConfigMembers(allMembers, configMap.get("orgs").get("redhat-cop")); + return allMembers; } + private void recursiveGetConfigMembers(Set allMembers, JsonNode parent) { + for (JsonNode child : parent) { + JsonNode maintainers = child.get("maintainers"); + JsonNode members = child.get("members"); + + if (maintainers != null) { + for (JsonNode current : maintainers) { + allMembers.add(current.asText()); + } + } + + if (members != null) { + for (JsonNode current : members) { + allMembers.add(current.asText()); + } + } + + recursiveGetConfigMembers(allMembers, child); + } + } + public Map getContributedTo(GHOrganization org, Set unknown, Set unknownWorksForRH) throws IOException, ExecutionException, InterruptedException { Map contributedTo = new ConcurrentHashMap<>(); diff --git a/src/main/java/com/garethahealy/githubstats/services/users/ConfigYamlMemberInRedHatLdapService.java b/src/main/java/com/garethahealy/githubstats/services/users/ConfigYamlMemberInRedHatLdapService.java index 1ab8ae4..eb9da64 100644 --- a/src/main/java/com/garethahealy/githubstats/services/users/ConfigYamlMemberInRedHatLdapService.java +++ b/src/main/java/com/garethahealy/githubstats/services/users/ConfigYamlMemberInRedHatLdapService.java @@ -13,10 +13,7 @@ import org.kohsuke.github.GHRepository; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; @ApplicationScoped public class ConfigYamlMemberInRedHatLdapService { @@ -48,7 +45,7 @@ public List run(GHRepository orgRepo, String sourceBranch, String ldapM return Collections.emptyList(); } - List members = gitHubService.getConfigMembers(configContent); + Set members = gitHubService.getConfigMembers(configContent); List ldapCheck = collectMembersToCheck(members, ldapMembersCsv, supplementaryCsv); List usersFoundOrNot = searchViaLdapFor(ldapCheck, failNoVpn); @@ -57,7 +54,7 @@ public List run(GHRepository orgRepo, String sourceBranch, String ldapM return usersFoundOrNot; } - private List collectMembersToCheck(List members, String ldapMembersCsv, String supplementaryCsv) throws IOException { + private List collectMembersToCheck(Set members, String ldapMembersCsv, String supplementaryCsv) throws IOException { List answer = new ArrayList<>(); Map ldapMembers = csvService.getKnownMembers(ldapMembersCsv); From 55fe901716d5a39cee77d37c529be4ef34114152 Mon Sep 17 00:00:00 2001 From: Gareth Healy Date: Wed, 18 Dec 2024 12:38:56 +0000 Subject: [PATCH 3/6] added approval for PRs --- .../services/users/LabelPullRequestForNewMembersService.java | 3 +++ src/main/resources/freemarker/templates/UserInLdap.ftl | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/garethahealy/githubstats/services/users/LabelPullRequestForNewMembersService.java b/src/main/java/com/garethahealy/githubstats/services/users/LabelPullRequestForNewMembersService.java index b77ba0f..6c78971 100644 --- a/src/main/java/com/garethahealy/githubstats/services/users/LabelPullRequestForNewMembersService.java +++ b/src/main/java/com/garethahealy/githubstats/services/users/LabelPullRequestForNewMembersService.java @@ -149,6 +149,9 @@ private void labelPullRequests(Map> filteredPullR pullRequest.removeLabels("dont-merge/cant-find-user-in-ldap"); pullRequest.addLabels("merge-ok/user-in-ldap"); pullRequest.comment(stringWriter.toString()); + pullRequest.createReview() + .event(GHPullRequestReviewEvent.APPROVE) + .create(); logger.infof("Labeled (merge-ok/user-in-ldap) and commented: %s", pullRequest.getNumber()); } diff --git a/src/main/resources/freemarker/templates/UserInLdap.ftl b/src/main/resources/freemarker/templates/UserInLdap.ftl index 68fed14..4f13d6e 100644 --- a/src/main/resources/freemarker/templates/UserInLdap.ftl +++ b/src/main/resources/freemarker/templates/UserInLdap.ftl @@ -1,3 +1 @@ -All users in config.yaml have been validated. - -/LGTM \ No newline at end of file +All users in config.yaml have been validated. \ No newline at end of file From 63ea6f855f216f04cef42ccb9429eec111105c76 Mon Sep 17 00:00:00 2001 From: Gareth Healy Date: Wed, 18 Dec 2024 12:40:14 +0000 Subject: [PATCH 4/6] next release --- pom.xml | 2 +- src/main/docker/version.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 5ad5501..5995556 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.github.garethahealy github-stats - 2.2.3-SNAPSHOT + 2.2.3 3.13.0 21 diff --git a/src/main/docker/version.json b/src/main/docker/version.json index f4b5971..058392b 100644 --- a/src/main/docker/version.json +++ b/src/main/docker/version.json @@ -1,3 +1,3 @@ { - "version": "v2.2.3-SNAPSHOT" + "version": "v2.2.3" } \ No newline at end of file From 70d0ae7f854a532384632a0002af5d4a218adb15 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:40:42 +0000 Subject: [PATCH 5/6] Update actions/setup-java digest to 7a6d8a8 --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e541a15..55e92f8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -23,7 +23,7 @@ jobs: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4 + - uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4 with: distribution: "temurin" java-version: 21 @@ -116,7 +116,7 @@ jobs: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4 + - uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4 with: distribution: "temurin" java-version: 21 From 13ccdde4b7fbe7462cc17dca5b49352692d9b504 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:40:46 +0000 Subject: [PATCH 6/6] Update actions/upload-artifact digest to 6f51ac0 --- .github/workflows/build.yaml | 6 +++--- .github/workflows/scorecard.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e541a15..f7dc93c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -54,14 +54,14 @@ jobs: "${runners[0]}" help - name: Upload target - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 with: name: target path: target/ if-no-files-found: error - name: Upload runner binary - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 with: name: runner path: target/github-stats-*-runner @@ -177,7 +177,7 @@ jobs: run: ./${{ env.RUNNER }} users create-who-are-you-issues --dry-run=true --organization=RedHat-Consulting-UK --issue-repo=helm3 --ldap-members-csv=tests/ldap-members.csv --supplementary-csv=tests/supplementary.csv --permission=admin --guess=false --fail-if-no-vpn=false - name: Upload /tmp/*.csv - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 with: name: outputs.csv path: /tmp/*.csv diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 26fdbe7..1c64cd1 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 with: name: SARIF file path: results.sarif