From d88e8c78465c4673fc6df8f1745788c799490c8e Mon Sep 17 00:00:00 2001 From: Antoine Vinot Date: Fri, 16 Jun 2023 16:24:01 +0200 Subject: [PATCH] SONAR-15075 - Add analysis warning if missing contents read permission for GH private repo. --- .../org/sonar/alm/client/github/GithubBinding.java | 10 +++++++++- .../config/GithubProvisioningConfigValidatorTest.java | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubBinding.java b/server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubBinding.java index a7c53ee975a..779fefbadd5 100644 --- a/server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubBinding.java +++ b/server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubBinding.java @@ -148,11 +148,14 @@ public class GithubBinding { String members; @SerializedName("emails") String emails; + @SerializedName("contents") + String contents; - public Permissions(@Nullable String checks, @Nullable String members, @Nullable String emails) { + public Permissions(@Nullable String checks, @Nullable String members, @Nullable String emails, @Nullable String contents) { this.checks = checks; this.members = members; this.emails = emails; + this.contents = contents; } public Permissions() { @@ -175,6 +178,11 @@ public class GithubBinding { public String getEmails() { return emails; } + + @CheckForNull + public String getContents() { + return contents; + } } public static class GsonRepositorySearch { diff --git a/server/sonar-alm-client/src/test/java/org/sonar/alm/client/github/config/GithubProvisioningConfigValidatorTest.java b/server/sonar-alm-client/src/test/java/org/sonar/alm/client/github/config/GithubProvisioningConfigValidatorTest.java index 6adc3467973..2d64e2b4a5c 100644 --- a/server/sonar-alm-client/src/test/java/org/sonar/alm/client/github/config/GithubProvisioningConfigValidatorTest.java +++ b/server/sonar-alm-client/src/test/java/org/sonar/alm/client/github/config/GithubProvisioningConfigValidatorTest.java @@ -166,7 +166,7 @@ public class GithubProvisioningConfigValidatorTest { ArgumentCaptor appConfigurationCaptor = ArgumentCaptor.forClass(GithubAppConfiguration.class); GsonApp githubApp = mockGithubApp(appConfigurationCaptor); - when(githubApp.getPermissions()).thenReturn(new Permissions(null, null, "read")); + when(githubApp.getPermissions()).thenReturn(new Permissions(null, null, "read", null)); mockOrganizations(appConfigurationCaptor, "org1", "org2"); ConfigCheckResult checkResult = configValidator.checkConfig(); @@ -268,7 +268,7 @@ public class GithubProvisioningConfigValidatorTest { private GsonApp mockGithubAppWithValidConfig(ArgumentCaptor appConfigurationCaptor) { GsonApp githubApp = mock(GsonApp.class); when(githubClient.getApp(appConfigurationCaptor.capture())).thenReturn(githubApp); - when(githubApp.getPermissions()).thenReturn(new Permissions(null, "read", "read")); + when(githubApp.getPermissions()).thenReturn(new Permissions(null, "read", "read", null)); return githubApp; } @@ -299,7 +299,7 @@ public class GithubProvisioningConfigValidatorTest { private static GithubAppInstallation mockInstallationWithMembersPermission(String org) { GithubAppInstallation installation = mockInstallation(org); - when(installation.permissions()).thenReturn(new Permissions(null, "read", "read")); + when(installation.permissions()).thenReturn(new Permissions(null, "read", "read", null)); return installation; } -- 2.39.5