pull-requests: properly save merge failure metadata. Before this change

when reference errors were saved the de-serialization lost some of the
attributes resulting in bad formatting of merge failure messages.
This commit is contained in:
Marcin Kuzminski 2020-08-03 11:15:04 +02:00
parent 7ef065f261
commit 8bd65513e6
2 changed files with 18 additions and 1 deletions

View file

@ -4133,6 +4133,23 @@ class _PullRequestBase(BaseModel):
def reviewer_data_json(self):
return json.dumps(self.reviewer_data)
@property
def last_merge_metadata_parsed(self):
metadata = {}
if not self.last_merge_metadata:
return metadata
if hasattr(self.last_merge_metadata, 'de_coerce'):
for k, v in self.last_merge_metadata.de_coerce().items():
if k in ['target_ref', 'source_ref']:
metadata[k] = Reference(v['type'], v['name'], v['commit_id'])
else:
if hasattr(v, 'de_coerce'):
metadata[k] = v.de_coerce()
else:
metadata[k] = v
return metadata
@property
def work_in_progress(self):
"""checks if pull request is work in progress by checking the title"""

View file

@ -1600,7 +1600,7 @@ class PullRequestModel(BaseModel):
'source_ref': pull_request.source_ref_parts,
}
if pull_request.last_merge_metadata:
metadata.update(pull_request.last_merge_metadata)
metadata.update(pull_request.last_merge_metadata_parsed)
if not possible and target_ref.type == 'branch':
# NOTE(marcink): case for mercurial multiple heads on branch