protected override bool Execute(IIntegrationResult result) { string repository = result.GetSourceData("$TqGitCI_repository"); string gitDirectory = result.GetSourceData("$TqGitCI_gitDirectory"); string branch = result.GetSourceData("$TqGitCI_branch"); string startBranch = result.GetSourceData("$TqGitCI_startBranch"); string projectName = result.GetSourceData("$TqGitCI_projectName"); string gitUserId = result.GetParameters("$TqGitCI_gitUserId"); string gitUserPassword = result.GetParameters("$TqGitCI_gitUserPassword"); git = new GitUtil(projectName, gitDirectory, repository, gitUserId, gitUserPassword); // Branch git.Checkout(result, branch); var diffBranchAndStartBranch = git.GetDiffList(result, startBranch); if (diffBranchAndStartBranch.Count > 0) { var mergeResult = git.Merge(result, startBranch); result.SetSourceData("$TqGitCI_mergeResult", mergeResult.Status.ToString()); result.SetParameters("$TqGitCI_mergeResult", mergeResult.Status.ToString()); if (mergeResult.Status == MergeStatus.Conflicts) { var conflictsList = git.GetConflictsList(result); result.SetSourceData("$TqGitCI_mergeExceptionMessage", $"{projectName} Conflicts({conflictsList.Count}) {branch} <- {startBranch}"); result.SetParameters("$TqGitCI_mergeExceptionMessage", $"{projectName} Conflicts({conflictsList.Count}) {branch} <- {startBranch}"); return(false); } } return(true); }