diff --git a/github-oauth/pom.xml b/github-oauth/pom.xml
index e758496..5679222 100644
--- a/github-oauth/pom.xml
+++ b/github-oauth/pom.xml
@@ -107,12 +107,13 @@
     <dependency>
       <groupId>org.kohsuke</groupId>
       <artifactId>github-api</artifactId>
-      <version>1.68</version>
+      <version>1.70</version>
     </dependency>
     <dependency>
       <groupId>org.apache.httpcomponents</groupId>
       <artifactId>httpclient</artifactId>
       <version>4.4</version>
+      <scope>provided</scope>
     </dependency>
   </dependencies>
 </project>
diff --git a/github-plugin/pom.xml b/github-plugin/pom.xml
index adb635b..bc258c9 100644
--- a/github-plugin/pom.xml
+++ b/github-plugin/pom.xml
@@ -52,7 +52,6 @@
               <exclude>commons-codec:*:*</exclude>
               <exclude>commons-io:*:*</exclude>
               <exclude>com.google.guava:*</exclude>
-              <exclude>org.apache.velocity:velocity:*</exclude>
             </excludes>
           </artifactSet>
           <transformers>
@@ -137,6 +136,7 @@
       <groupId>org.apache.httpcomponents</groupId>
       <artifactId>httpclient</artifactId>
       <version>4.4</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>javax.mail</groupId>
@@ -157,11 +157,7 @@
       <groupId>org.apache.velocity</groupId>
       <artifactId>velocity</artifactId>
       <version>1.7</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.velocity</groupId>
-      <artifactId>velocity-tools</artifactId>
-      <version>2.0</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.jukito</groupId>
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/notification/WebhookServlet.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/notification/WebhookServlet.java
index 69819fd..fa746e2 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/notification/WebhookServlet.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/notification/WebhookServlet.java
@@ -26,7 +26,6 @@
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/RepositoriesListController.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/RepositoriesListController.java
index 87cc52e..fb79632 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/RepositoriesListController.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/RepositoriesListController.java
@@ -22,10 +22,10 @@
 import com.google.gson.JsonPrimitive;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-
 import com.googlesource.gerrit.plugins.github.GitHubConfig;
 import com.googlesource.gerrit.plugins.github.oauth.GitHubLogin;
 
+import org.kohsuke.github.GHMyself.RepositoryListFilter;
 import org.kohsuke.github.GHOrganization;
 import org.kohsuke.github.GHRepository;
 import org.kohsuke.github.PagedIterable;
@@ -93,10 +93,10 @@
   private PagedIterable<GHRepository> getRepositories(GitHubLogin hubLogin,
       String organisation) throws IOException {
     if (organisation.equals(hubLogin.getMyself().getLogin())) {
-      return hubLogin.getMyself().listRepositories(config.repositoryListPageSize);
+      return hubLogin.getMyself().listRepositories(config.repositoryListPageSize, RepositoryListFilter.OWNER);
     } else {
       GHOrganization ghOrganisation =
-          hubLogin.getMyself().getOrganizations().byLogin(organisation);
+          hubLogin.getMyself().getAllOrganizations().byLogin(organisation);
       return ghOrganisation.listRepositories(config.repositoryListPageSize);
     }
   }
