Fix syncing messages attached to draft revisions
If a revision is a draft, we will not be able to sync it. Strangely, the Gerrit API will still return review messages attached to that draft (including "Foo uploaded patch set 1"). The gerrit webui doesn't display those, so let's not bother storing/displaying them either. The current code crashes when trying to save the message because the revision doesn't exist. Change-Id: I51617249c7240b199f0104c66b136922e36d6b7f Story: 2000155
This commit is contained in:
parent
76ad79278b
commit
121df156cd
@ -417,7 +417,7 @@ class SyncChangeTask(Task):
|
||||
remote_revision['commit']['message'], remote_commit,
|
||||
remote_revision['commit']['parents'][0]['commit'],
|
||||
auth, ref)
|
||||
self.log.info("Created new revision %s for change %s in local DB.", revision.key, self.change_id)
|
||||
self.log.info("Created new revision %s for change %s revision %s in local DB.", revision.key, self.change_id, remote_revision['_number'])
|
||||
new_revision = True
|
||||
revision.message = remote_revision['commit']['message']
|
||||
# TODO: handle multiple parents
|
||||
@ -467,11 +467,14 @@ class SyncChangeTask(Task):
|
||||
message = session.getMessageByID(remote_message['id'])
|
||||
if not message:
|
||||
revision = session.getRevisionByNumber(change, remote_message.get('_revision_number', 1))
|
||||
# Normalize date -> created
|
||||
created = dateutil.parser.parse(remote_message['date'])
|
||||
message = revision.createMessage(remote_message['id'], account, created,
|
||||
if revision:
|
||||
# Normalize date -> created
|
||||
created = dateutil.parser.parse(remote_message['date'])
|
||||
message = revision.createMessage(remote_message['id'], account, created,
|
||||
remote_message['message'])
|
||||
self.log.info("Created new review message %s for revision %s in local DB.", message.key, revision.key)
|
||||
self.log.info("Created new review message %s for revision %s in local DB.", message.key, revision.key)
|
||||
else:
|
||||
self.log.info("Unable to create new review message for revision %s because it is not in local DB (draft?).", remote_message.get('_revision_number'))
|
||||
else:
|
||||
if message.author != account:
|
||||
message.author = account
|
||||
|
Loading…
x
Reference in New Issue
Block a user