Default GitHub scopes when not configured in gerrit.config

Use USER+PUBLIC_REPO as default scopes when using GitHub
with a basic empty [github] gerrit.config

Change-Id: I89fbc9ac0c909893f59dfada3a237b6ad6f80b2d
diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java
index d7b670d..69f94da 100644
--- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java
+++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java
@@ -17,6 +17,7 @@
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.List;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
@@ -42,6 +43,7 @@
 
 public class GitHubLogin {
   private static final Logger LOG = LoggerFactory.getLogger(GitHubLogin.class);
+  private static final List<Scope> DEFAULT_SCOPES = Arrays.asList(Scope.PUBLIC_REPO, Scope.USER_EMAIL);
   private static final int YEARS = 365;
   private static final long SCOPE_COOKIE_NEVER_EXPIRES = DAYS.toSeconds(50 * YEARS);
 
@@ -212,11 +214,14 @@
   private SortedSet<Scope> getScopes(String baseScopeKey, Scope... scopes) {
     HashSet<Scope> fullScopes =
         oAuthCookie == null ? new HashSet<Scope>(
-            config.scopes.get(baseScopeKey)) : new HashSet<Scope>(
+            scopesForKey(baseScopeKey)) : new HashSet<Scope>(
             oAuthCookie.scopes);
     fullScopes.addAll(Arrays.asList(scopes));
 
     return new TreeSet<Scope>(fullScopes);
   }
 
+  private List<Scope> scopesForKey(String baseScopeKey) {
+    return Objects.firstNonNull(config.scopes.get(baseScopeKey), DEFAULT_SCOPES);
+  }
 }