From 85740c5885841bb06d1cd48eb8986ae1f891c263 Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Tue, 26 Jul 2016 16:35:20 -0700 Subject: [PATCH] Create new projects automatically when syncing a change If a user asks to sync a change for an unknown project, automatically create that project. Change-Id: Ia25e308635ef2759d480472a7b7d381111debcae --- gertty/sync.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gertty/sync.py b/gertty/sync.py index b7c1136..de93550 100644 --- a/gertty/sync.py +++ b/gertty/sync.py @@ -564,6 +564,18 @@ class SyncChangeTask(Task): email=remote_change['owner'].get('email')) if not change: project = session.getProjectByName(remote_change['project']) + if not project: + self.log.debug("Project %s unknown while syncing change" % ( + remote_change['project'],)) + remote_project = sync.get('projects/%s' % + (urlparse.quote_plus(remote_change['project']),)) + if remote_project: + project = session.createProject( + remote_project['name'], + description=remote_project.get('description', '')) + self.log.info("Created project %s", project.name) + self.results.append(ProjectAddedEvent(project)) + sync.submitTask(SyncProjectBranchesTask(project.name, self.priority)) created = dateutil.parser.parse(remote_change['created']) updated = dateutil.parser.parse(remote_change['updated']) change = project.createChange(remote_change['id'], account, remote_change['_number'],