Merge "Do github last"
diff --git a/jeepyb/cmd/manage_projects.py b/jeepyb/cmd/manage_projects.py
index d13191e..b9b8946 100644
--- a/jeepyb/cmd/manage_projects.py
+++ b/jeepyb/cmd/manage_projects.py
@@ -240,6 +240,7 @@
 
 
 def create_github_project(defaults, options, project, description, homepage):
+    created = False
     default_has_issues = defaults.get('has-issues', False)
     default_has_downloads = defaults.get('has-downloads', False)
     default_has_wiki = defaults.get('has-wiki', False)
@@ -272,7 +273,7 @@
         org = orgs_dict[org_name.lower()]
     except KeyError:
         # We do not have control of this github org ignore the project.
-        return
+        return False
     try:
         repo = org.get_repo(repo_name)
     except github.GithubException:
@@ -281,6 +282,7 @@
                                has_issues=has_issues,
                                has_downloads=has_downloads,
                                has_wiki=has_wiki)
+        created = True
     if description:
         repo.edit(repo_name, description=description)
     if homepage:
@@ -294,6 +296,7 @@
         teams = org.get_teams()
         teams_dict = dict(zip([t.name.lower() for t in teams], teams))
         teams_dict['gerrit'].add_to_repos(repo)
+    return created
 
 
 # TODO(mordred): Inspect repo_dir:master for a description
@@ -595,13 +598,10 @@
                 description = (
                     find_description_override(repo_path) or description)
 
-                if 'has-github' in options or default_has_github:
-                    create_github_project(defaults, options, project,
-                                          description, homepage)
-
                 if project_created:
                     push_to_gerrit(
                         repo_path, project, push_string, remote_url, ssh_env)
+                    gerrit.replicate(project)
 
                 # If we're configured to track upstream, make sure we have
                 # upstream's refs, and then push them to the appropriate
@@ -614,6 +614,12 @@
                         acl_config, project, ACL_DIR, section,
                         remote_url, repo_path, ssh_env, gerrit, GERRIT_GITID)
 
+                if 'has-github' in options or default_has_github:
+                    created = create_github_project(
+                        defaults, options, project, description, homepage)
+                    if created:
+                        gerrit.replicate(project)
+
             except Exception:
                 log.exception(
                     "Problems creating %s, moving on." % project)
diff --git a/requirements.txt b/requirements.txt
index 994ad98..f2b536e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,5 @@
 argparse
-gerritlib
+gerritlib>=0.3.0
 MySQL-python
 paramiko
 PyGithub