diff --git a/jeepyb/cmd/manage_projects.py b/jeepyb/cmd/manage_projects.py
index 1353a45..a86ec98 100644
--- a/jeepyb/cmd/manage_projects.py
+++ b/jeepyb/cmd/manage_projects.py
@@ -348,23 +348,6 @@
     try:
         repo = org.get_repo(repo_name)
 
-        # If necessary, update project on Github
-        if description and description != repo.description:
-            repo.edit(repo_name, description=description)
-            cache['description'] = description
-        if homepage and homepage != repo.homepage:
-            repo.edit(repo_name, homepage=homepage)
-            cache['homepage'] = homepage
-        if has_issues != repo.has_issues:
-            repo.edit(repo_name, has_issues=has_issues)
-            cache['has_issues'] = has_issues
-        if has_downloads != repo.has_downloads:
-            repo.edit(repo_name, has_downloads=has_downloads)
-            cache['has_downloads'] = has_downloads
-        if has_wiki != repo.has_wiki:
-            repo.edit(repo_name, has_wiki=has_wiki)
-            cache['has_wiki'] = has_wiki
-
     except github.GithubException:
         repo = org.create_repo(repo_name,
                                homepage=homepage,
@@ -376,17 +359,24 @@
         cache['has_downloads'] = has_downloads
         cache['has_issues'] = has_issues
 
-        if description:
-            repo.edit(repo_name, description=description)
-            cache['description'] = description
-        if homepage:
-            repo.edit(repo_name, homepage=homepage)
-            cache['homepage'] = homepage
-        repo.edit(repo_name, has_issues=has_issues,
-                  has_downloads=has_downloads,
-                  has_wiki=has_wiki)
         created = True
 
+        kwargs = {}
+        # If necessary, update project on Github
+        if description and description != repo.description:
+            kwargs['description'] = description
+        if homepage and homepage != repo.homepage:
+            kwargs['homepage'] = homepage
+        if has_issues != repo.has_issues:
+            kwargs['has_issues'] = has_issues
+        if has_downloads != repo.has_downloads:
+            kwargs['has_downloads'] = has_downloads
+        if has_wiki != repo.has_wiki:
+            kwargs['has_wiki'] = has_wiki
+
+        repo.edit(repo_name, **kwargs)
+        cache.update(kwargs)
+
     if cache.get('gerrit-in-team', False):
         if 'gerrit' not in [team.name for team in repo.get_teams()]:
             teams = org.get_teams()
