Make a few less github API calls
We continue to hit the GH rate limit. But honestly, in most cases, we
should not need to make a bazillion GH api calls.
Change-Id: Iac709a4f7f18d6348b21520bbc7aeacfa991ec1a
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()