static CheckMergeChangesResult CheckChangesForMerging(GitLabWrapper gitLabWrapper, string gitRepoPath, string branchName, SyncHistoryItem head, DXVcsWrapper vcsWrapper, TrackBranch branch, SyncHistoryWrapper syncHistory, User defaultUser) {
var project = gitLabWrapper.FindProject(gitRepoPath);
if (project == null) {
Log.Error($"Can`t find git project {gitRepoPath}");
return CheckMergeChangesResult.Error;
}
var gitlabBranch = gitLabWrapper.GetBranches(project).Single(x => x.Name == branchName);
if (gitlabBranch.Commit.Id.Equals(new Sha1(head.GitCommitSha))) {
var commits = GenerateCommits(vcsWrapper, branch, syncHistory, false);
if (commits.Count == 0) {
var mergeRequests = GetMergeRequests(gitLabWrapper, branchName, defaultUser.UserName, project);
if (!mergeRequests.Any()) {
Log.Message("Zero registered merge requests.");
return CheckMergeChangesResult.NoChanges;
}
}
}
return CheckMergeChangesResult.HasChanges;
}
static string GetVcsSyncHistory(DXVcsWrapper vcsWrapper, string historyPath) {