default-reviewers: handle no common ancestor case.

This commit is contained in:
Marcin Kuzminski 2020-10-12 14:11:47 +02:00
parent c3f059ebc6
commit 2922990e2e
3 changed files with 28 additions and 10 deletions

View file

@ -72,11 +72,18 @@ class RepoReviewRulesView(RepoAppView):
target_type = request.GET['target_ref_type']
target_name = request.GET['target_ref_name']
review_data = get_default_reviewers_data(
current_user,
source_repo,
Reference(source_type, source_name, source_commit_id),
target_repo,
Reference(target_type, target_name, target_commit_id)
)
try:
review_data = get_default_reviewers_data(
current_user,
source_repo,
Reference(source_type, source_name, source_commit_id),
target_repo,
Reference(target_type, target_name, target_commit_id)
)
except ValueError:
# No common ancestor
msg = "No Common ancestor found between target and source reference"
log.exception(msg)
return {'diff_info': {'error': msg}}
return review_data

View file

@ -332,7 +332,10 @@ window.ReviewersController = function () {
// review rules
self.loadReviewRules(data);
self.handleDiffData(data["diff_info"]);
var diffHandled = self.handleDiffData(data["diff_info"]);
if (diffHandled === false) {
return
}
for (var i = 0; i < data.reviewers.length; i++) {
var reviewer = data.reviewers[i];
@ -473,7 +476,7 @@ window.ReviewersController = function () {
};
this.handleDiffData = function (data) {
self.diffDataHandler(data)
return self.diffDataHandler(data)
}
};

View file

@ -309,6 +309,13 @@
var codeMirrorInstance = $('#pullrequest_desc').get(0).MarkupForm.cm;
var diffDataHandler = function(data) {
if (data['error'] !== undefined) {
var noCommitsMsg = '<span class="alert-text-error">{0}</span>'.format(data['error']);
prButtonLock(true, noCommitsMsg, 'compare');
//make both panels equal
$('.target-panel').height($('.source-panel').height())
return false
}
var commitElements = data['commits'];
var files = data['files'];
@ -395,7 +402,8 @@
}
//make both panels equal
$('.target-panel').height($('.source-panel').height())
$('.target-panel').height($('.source-panel').height());
return true
};
reviewersController = new ReviewersController();