public RepositoryStateDriver(IRemoteRepositoryState repositoryState, IRepositoryOrchestration orchestration, IOrchestrationActions orchestrationActions, IBranchSettings branchSettings) { this.repositoryState = repositoryState; this.orchestration = orchestration; this.orchestrationActions = orchestrationActions; this.branchSettings = branchSettings; }
public async Task ClearBadBranchStatus(string branchName, [FromServices] IOrchestrationActions orchestrationActions, [FromServices] IRepositoryMediator repository) { await repository.ResetBadBranchStatus(branchName); #pragma warning disable CS4014 orchestrationActions.CheckDownstreamMerges(branchName); #pragma warning restore CS4014 }
public RepositoryMediator(IRemoteRepositoryState repositoryState, IBranchSettings branchSettings, IBranchIterationMediator branchIteration, IGitServiceApi gitApi, IOrchestrationActions actions) { this.repositoryState = repositoryState; this.branchSettings = branchSettings; this.branchIteration = branchIteration; this.gitApi = gitApi; this.actions = actions; }
public async Task UpdateBranch(string branchName, [FromBody] UpdateBranchRequestBody requestBody, [FromServices] IOrchestrationActions orchestrationActions) { var branchesToCheck = new HashSet <string>(); branchesToCheck.Add(branchName); using (var unitOfWork = unitOfWorkFactory.CreateUnitOfWork()) { foreach (var addedUpstream in requestBody.AddUpstream) { branchSettings.AddBranchPropagation(addedUpstream, branchName, unitOfWork); branchesToCheck.Add(addedUpstream); } foreach (var addedDownstream in requestBody.AddDownstream) { branchSettings.AddBranchPropagation(branchName, addedDownstream, unitOfWork); branchesToCheck.Add(addedDownstream); } foreach (var removeUpstream in requestBody.RemoveUpstream) { branchSettings.RemoveBranchPropagation(removeUpstream, branchName, unitOfWork); branchesToCheck.Add(removeUpstream); } foreach (var removeDownstream in requestBody.RemoveDownstream) { branchSettings.RemoveBranchPropagation(branchName, removeDownstream, unitOfWork); branchesToCheck.Add(removeDownstream); } branchSettings.UpdateBranchSetting(branchName, requestBody.UpstreamMergePolicy, requestBody.BranchType, unitOfWork); await unitOfWork.CommitAsync(); } foreach (var branch in branchesToCheck) { #pragma warning disable CS4014 orchestrationActions.CheckDownstreamMerges(branch); #pragma warning restore CS4014 } }
public async Task <IActionResult> CreateBranch(string branchName, [FromBody] CreateBranchRequestBody requestBody, [FromServices] IGitCli cli, [FromServices] IOrchestrationActions orchestrationActions) { var checkRefFormat = cli.CheckRefFormat(branchName); await checkRefFormat.ActiveState.DefaultIfEmpty(); if (checkRefFormat.ExitCode != 0) { return(StatusCode(400, new { code = "bad-branch-name", message = "Branch name is not valid." })); } var branch = await branchSettings.GetBranchBasicDetails(branchName).FirstOrDefaultAsync(); if (branch != null) { return(StatusCode(409, new { code = "branch-exists", message = "Branch already exists." })); } using (var unitOfWork = unitOfWorkFactory.CreateUnitOfWork()) { foreach (var addedUpstream in requestBody.AddUpstream) { branchSettings.AddBranchPropagation(addedUpstream, branchName, unitOfWork); } branchSettings.UpdateBranchSetting(branchName, requestBody.UpstreamMergePolicy, requestBody.BranchType, unitOfWork); await unitOfWork.CommitAsync(); } #pragma warning disable CS4014 orchestrationActions.CheckDownstreamMerges(branchName); #pragma warning restore CS4014 return(Ok()); }
public void DeleteBranch(string branchName, [FromServices] IOrchestrationActions orchestrationActions, [FromQuery] DeleteBranchMode mode = DeleteBranchMode.BranchAndGroup) { orchestrationActions.DeleteBranch(branchName, mode); }
public void ConsolidateMerged([FromBody] string sourceBranch, string branchName, [FromServices] IOrchestrationActions orchestrationActions) { orchestrationActions.ConsolidateMerged(sourceBranch, branchName); }
public void PromoteServiceLine([FromBody] PromoteServiceLineBody requestBody, [FromServices] IOrchestrationActions orchestrationActions) { orchestrationActions.ReleaseToServiceLine(requestBody.ReleaseCandidate, requestBody.ServiceLine, requestBody.TagName, requestBody.AutoConsolidate); }