def sync(self):
pull_f2merge_f = {
'state': 'state',
'body': 'description',
'title': 'title',
}
for number in sorted(self.pull_requests.keys()):
pull = self.pull_requests[number]
merge = None
if number in self.pull2merge:
merge = self.pull2merge[number]
else:
source_branch = 'pull/' + number + '/head'
target_branch = pull['base']['ref']
if (self.rev_parse(pull, source_branch) and
self.rev_parse(pull, target_branch)):
data = {'title': pull['title'],
'source_branch': source_branch,
'target_branch': target_branch}
if pull['body']:
data['description'] = pull['body'][:DESCRIPTION_MAX]
merge = self.create_merge_request(data)
if merge:
updates = {}
for (pull_field, merge_field) in six.iteritems(pull_f2merge_f):
if not self.field_equal(pull,
pull_field,
pull[pull_field],
merge,
merge_field,
merge[merge_field]):
(key, value) = self.field_update(pull,
pull_field,
pull[pull_field],
merge,
merge_field,
merge[merge_field])
updates[key] = value
if updates:
self.update_merge_request(merge, updates)
else:
log.debug("https://github.com/" +
self.github['repo'] + "/" +
"pull/" + number + " == " +
self.gitlab['host'] + "/" +
parse.unquote(self.gitlab['repo']) + "/" +
"merge_requests/" + str(merge['iid']))
评论列表
文章目录