private InfoRefsController CreateController(IGitServer gitServer = null, IDeploymentManager deploymentManager = null, IDeploymentSettingsManager settings = null, IRepositoryFactory repositoryFactory = null) { return new InfoRefsController(Mock.Of<ITracer>(), gitServer ?? Mock.Of<IGitServer>(), repositoryFactory ?? Mock.Of<IRepositoryFactory>()); }
public DeploymentController(ITracer tracer, IDeploymentManager deploymentManager, IOperationLock deploymentLock) { _tracer = tracer; _deploymentManager = deploymentManager; _deploymentLock = deploymentLock; }
public LiveScmEditorController(ITracer tracer, IDeploymentManager deploymentManager, IOperationLock operationLock, IEnvironment environment, IRepository repository) : this(tracer, deploymentManager, operationLock, environment, repository, new FileSystem()) { }
public DeploymentService(ITracer tracer, IDeploymentManager deploymentManager, IOperationLock deploymentLock) { _tracer = tracer; _deploymentManager = deploymentManager; _deploymentLock = deploymentLock; }
public ReceivePackHandler(ITracer tracer, IGitServer gitServer, IOperationLock deploymentLock, IDeploymentManager deploymentManager, IDeploymentSettingsManager settings) : base(tracer, gitServer, deploymentLock, deploymentManager, settings) { }
public AutoSwapHandler(IDeploymentManager deploymentManager, IDeploymentStatusManager deploymentStatusManager, IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory) { _deploymentManager = deploymentManager; _deploymentStatusManager = deploymentStatusManager; _traceFactory = traceFactory; _autoSwapSlotName = settings.GetValue("WEBSITE_SWAP_SLOTNAME"); _autoSwapLockFilePath = Path.Combine(environment.LocksPath, AutoSwapLockFile); }
public SourceControl(IRepository repository, IRepositoryManager repositoryManager, IDeploymentManager deploymentManager) { _repository = repository; _repositoryManager = repositoryManager; _deploymentManager = deploymentManager; }
public ExportFileController( IAuthorizationService authorizationService, ISession session, IDeploymentManager deploymentManager) { _authorizationService = authorizationService; _deploymentManager = deploymentManager; _session = session; }
public ReceivePackHandler(ITracer tracer, IGitServer gitServer, IOperationLock deploymentLock, IDeploymentManager deploymentManager, IRepositoryFactory repositoryFactory) : base(tracer, gitServer, deploymentLock, deploymentManager) { _repositoryFactory = repositoryFactory; }
public DeploymentAgentService(IDeploymentManager deploymentManager) { if (deploymentManager == null) { throw new ArgumentNullException("deploymentManager"); } this.deploymentManager = deploymentManager; }
public ProxyController(IHgServer hgServer, IServerConfiguration configuration, IDeploymentManager deploymentManager, IRepositoryManager repositoryManager) { _hgServer = hgServer; _configuration = configuration; _deploymentManager = deploymentManager; _repositoryManager = repositoryManager; }
protected GitServerHttpHandler(ITracer tracer, IGitServer gitServer, IOperationLock deploymentLock, IDeploymentManager deploymentManager) { GitServer = gitServer; Tracer = tracer; DeploymentLock = deploymentLock; DeploymentManager = deploymentManager; }
public DropboxHandler(ITracer tracer, IServerRepository repository, IDeploymentManager manager, IDeploymentSettingsManager settings, IEnvironment environment) { _tracer = tracer; _settings = settings; _dropBoxHelper = new DropboxHelper(tracer, repository, manager, settings, environment); }
public ProxyService(IHgServer hgServer, IServerConfiguration configuration, IDeploymentManager deploymentManager, IServerRepository severRepository) { _hgServer = hgServer; _configuration = configuration; _deploymentManager = deploymentManager; _severRepository = severRepository; }
public SourceControl(IRepository repository, IRepositoryManager repositoryManager, IDeploymentManager deploymentManager, IUserInformation userInformation) { _repository = repository; _repositoryManager = repositoryManager; _deploymentManager = deploymentManager; _userInformation = userInformation; }
public ImportRemoteInstanceController( IDataProtectionProvider dataProtectionProvider, RemoteClientService remoteClientService, IDeploymentManager deploymentManager, IHtmlLocalizer <ExportRemoteInstanceController> localizer) { _deploymentManager = deploymentManager; _remoteClientService = remoteClientService; _dataProtector = dataProtectionProvider.CreateProtector("OrchardCore.Deployment").ToTimeLimitedDataProtector(); }
public DeploymentController(ITracer tracer, IDeploymentManager deploymentManager, IOperationLock deploymentLock, RepositoryFactory repositoryFactory) { _tracer = tracer; _deploymentManager = deploymentManager; _deploymentLock = deploymentLock; _repositoryFactory = repositoryFactory; }
protected internal virtual void SetDeploymentName(string deploymentId, DeploymentBuilderImpl deploymentBuilder, CommandContext commandContext) { if (!ReferenceEquals(deploymentId, null) && (deploymentId.Length > 0)) { IDeploymentManager deploymentManager = commandContext.DeploymentManager; DeploymentEntity deployment = deploymentManager.FindDeploymentById(deploymentId); deploymentBuilder.Deployment.Name = deployment.Name; } }
public FetchDeploymentManager( IDeploymentSettingsManager settings, IEnvironment environment, ITracer tracer, //IOperationLock deploymentLock, IDictionary <string, IOperationLock> namedLocks, IDeploymentManager deploymentManager, IDeploymentStatusManager status) : this(settings, environment, tracer, namedLocks["deployment"], deploymentManager, status) { }
public LiveScmEditorController(ITracer tracer, IDeploymentManager deploymentManager, IOperationLock operationLock, IEnvironment environment, IRepositoryFactory repositoryFactory) : base(tracer, environment, environment.RepositoryPath) { _deploymentManager = deploymentManager; _operationLock = operationLock; _repository = repositoryFactory.GetGitRepository(); }
public static void Deploy(this IDeploymentManager deploymentManager, IRepository repository, string id, string deployer, bool clean) { ChangeSet changeSet = null; if (id != null) { changeSet = repository.GetChangeSet(id); } deploymentManager.Deploy(repository, changeSet, deployer, clean); }
private ReceivePackHandler CreateHandler(IGitServer gitServer = null, IDeploymentManager deploymentManager = null, IDeploymentSettingsManager settings = null, IRepositoryFactory repositoryFactory = null) { return(new ReceivePackHandler(Mock.Of <ITracer>(), gitServer ?? Mock.Of <IGitServer>(), Mock.Of <IOperationLock>(), deploymentManager ?? Mock.Of <IDeploymentManager>(), repositoryFactory ?? Mock.Of <IRepositoryFactory>())); }
private ReceivePackHandler CreateHandler(IGitServer gitServer = null, IDeploymentManager deploymentManager = null, IDeploymentSettingsManager settings = null, IRepositoryFactory repositoryFactory = null) { return new ReceivePackHandler(Mock.Of<ITracer>(), gitServer ?? Mock.Of<IGitServer>(), Mock.Of<IOperationLock>(), deploymentManager ?? Mock.Of<IDeploymentManager>(), repositoryFactory ?? Mock.Of<IRepositoryFactory>()); }
public LiveScmEditorController(ITracer tracer, IDeploymentManager deploymentManager, IOperationLock operationLock, IEnvironment environment, IRepository repository, IFileSystem fileSystem) : base(tracer, environment, fileSystem, environment.RepositoryPath) { _deploymentManager = deploymentManager; _operationLock = operationLock; _repository = repository; }
public void Invoke( HttpContext context, ITracer tracer, IGitServer gitServer, IDictionary <string, IOperationLock> namedLocks, IDeploymentManager deploymentManager) { GitServer = gitServer; Tracer = tracer; DeploymentManager = deploymentManager; DeploymentLock = namedLocks["deployment"]; }
public FetchHandler(ITracer tracer, IGitServer gitServer, IDeploymentManager deploymentManager, IOperationLock deploymentLock, RepositoryConfiguration configuration) { _gitServer = gitServer; _deploymentManager = deploymentManager; _tracer = tracer; _deploymentLock = deploymentLock; _configuration = configuration; }
public DeploymentController(ITracer tracer, IDeploymentManager deploymentManager, IDeploymentStatusManager status, IOperationLock deploymentLock, IRepositoryFactory repositoryFactory) { _tracer = tracer; _deploymentManager = deploymentManager; _status = status; _deploymentLock = deploymentLock; _repositoryFactory = repositoryFactory; }
public FetchHandler(ITracer tracer, IGitServer gitServer, IDeploymentManager deploymentManager, IDeploymentSettingsManager settings, IOperationLock deploymentLock, RepositoryConfiguration configuration, IEnvironment environment) : base(tracer, gitServer, deploymentLock, deploymentManager) { _settings = settings; _configuration = configuration; _environment = environment; }
public InfoRefsController( ITracer tracer, IGitServer gitServer, IDeploymentManager deploymentManager, IEnvironment environment, RepositoryConfiguration configuration) { _gitServer = gitServer; _deploymentManager = deploymentManager; _tracer = tracer; _webRootPath = environment.WebRootPath; _configuration = configuration; }
public InfoRefsController( ITracer tracer, IGitServer gitServer, IDeploymentManager deploymentManager, IDeploymentSettingsManager settings, IEnvironment environment) { _gitServer = gitServer; _deploymentManager = deploymentManager; _tracer = tracer; _settings = settings; _webRootPath = environment.WebRootPath; }
public DropboxHelper(ITracer tracer, IServerRepository repository, IDeploymentManager manager, IDeploymentSettingsManager settings, IEnvironment environment) { _tracer = tracer; _repository = repository; _manager = manager; _settings = settings; _environment = environment; _timeout = settings.GetCommandIdleTimeout(); }
public ImportController( IDeploymentManager deploymentManager, IAuthorizationService authorizationService, INotifier notifier, IHtmlLocalizer <ImportController> h ) { _deploymentManager = deploymentManager; _authorizationService = authorizationService; _notifier = notifier; H = h; }
public InfoRefsService( ITracer tracer, IGitServer gitServer, IDeploymentManager deploymentManager, IEnvironment environment, RepositoryConfiguration configuration) { _gitServer = gitServer; _deploymentManager = deploymentManager; _tracer = tracer; _deploymentTargetPath = environment.DeploymentTargetPath; _configuration = configuration; }
public LiveScmController(ITracer tracer, IOperationLock deploymentLock, IEnvironment environment, IRepository repository, IServerConfiguration serverConfiguration, IDeploymentManager deploymentManager) { _tracer = tracer; _deploymentLock = deploymentLock; _environment = environment; _repository = repository; _serverConfiguration = serverConfiguration; _deploymentManager = deploymentManager; }
public DeploymentController(ITracer tracer, IDeploymentManager deploymentManager, IDeploymentStatusManager status, IOperationLock deploymentLock, IRepositoryFactory repositoryFactory, IAutoSwapHandler autoSwapHandler) { _tracer = tracer; _deploymentManager = deploymentManager; _status = status; _deploymentLock = deploymentLock; _repositoryFactory = repositoryFactory; _autoSwapHandler = autoSwapHandler; }
public BpmtkTestCase(ITestOutputHelper output) { var loggerProvider = new XunitLoggerProvider(output); this.loggerFactory.AddProvider(loggerProvider); this.output = output; this.engine = this.BuildProcessEngine(); this.context = this.engine.CreateContext(); Context.SetCurrent(context); this.deploymentManager = context.DeploymentManager; this.runtimeManager = context.RuntimeManager; this.taskManager = context.TaskManager; this.identityManager = context.IdentityManager; this.transaction = context.DbSession.BeginTransaction(); var user = this.identityManager.FindUserById("felix"); if (user == null) { user = new User() { Id = "felix", Name = "felix" }; this.identityManager.CreateUser(user); } var group = this.identityManager.FindGroupById("tests"); if (group == null) { group = new Group() { Id = "tests", Name = "tests" }; group.Users = new List <UserGroup>(); group.Users.Add(new UserGroup() { User = user }); this.identityManager.CreateGroup(group); } this.context.SetAuthenticatedUser(user.Id); }
public ExportRemoteInstanceController( IAuthorizationService authorizationService, ISession session, RemoteInstanceService service, IDeploymentManager deploymentManager, INotifier notifier, IHtmlLocalizer <ExportRemoteInstanceController> localizer) { _authorizationService = authorizationService; _deploymentManager = deploymentManager; _session = session; _service = service; _notifier = notifier; H = localizer; }
public FetchHandler(ITracer tracer, IDeploymentManager deploymentManager, IDeploymentSettingsManager settings, IOperationLock deploymentLock, IEnvironment environment, IEnumerable<IServiceHookHandler> serviceHookHandlers, RepositoryFactory repositoryFactory) { _tracer = tracer; _deploymentLock = deploymentLock; _deploymentManager = deploymentManager; _settings = settings; _environment = environment; _serviceHookHandlers = serviceHookHandlers; _repositoryFactory = repositoryFactory; }
public ImportRemoteInstanceController( IAuthorizationService authorizationService, ISession session, RemoteClientService remoteClientService, IDeploymentManager deploymentManager, INotifier notifier, IRecipeExecutor recipeExecutor, IHtmlLocalizer <ExportRemoteInstanceController> h) { _authorizationService = authorizationService; _deploymentManager = deploymentManager; _session = session; _remoteClientService = remoteClientService; _notifier = notifier; _recipeExecutor = recipeExecutor; H = h; }
public DeploymentController(ITracer tracer, IEnvironment environment, IAnalytics analytics, IDeploymentManager deploymentManager, IDeploymentStatusManager status, IOperationLock deploymentLock, IRepositoryFactory repositoryFactory, IAutoSwapHandler autoSwapHandler) { _tracer = tracer; _environment = environment; _analytics = analytics; _deploymentManager = deploymentManager; _status = status; _deploymentLock = deploymentLock; _repositoryFactory = repositoryFactory; _autoSwapHandler = autoSwapHandler; }
private FetchDeploymentManager CreateFetchDeploymentManager(ITracer tracer = null, IDeploymentManager deploymentManager = null, IDeploymentSettingsManager settings = null, IDeploymentStatusManager status = null, IOperationLock deploymentLock = null, IEnvironment environment = null, IFileSystem fileSystem = null) { FileSystemHelpers.Instance = fileSystem ?? Mock.Of <IFileSystem>(); return(new FetchDeploymentManager( settings ?? Mock.Of <IDeploymentSettingsManager>(), environment ?? Mock.Of <IEnvironment>(), tracer ?? Mock.Of <ITracer>(), deploymentLock ?? Mock.Of <IOperationLock>(), deploymentManager ?? Mock.Of <IDeploymentManager>(), status ?? Mock.Of <IDeploymentStatusManager>())); }
public DeploymentController(ITracer tracer, IEnvironment environment, IAnalytics analytics, IDeploymentManager deploymentManager, IDeploymentStatusManager status, IDeploymentSettingsManager settings, IOperationLock deploymentLock, IRepositoryFactory repositoryFactory) { _tracer = tracer; _environment = environment; _analytics = analytics; _deploymentManager = deploymentManager; _status = status; _settings = settings; _deploymentLock = deploymentLock; _repositoryFactory = repositoryFactory; }
public DeploymentController(ITracer tracer, IEnvironment environment, IAnalytics analytics, IDeploymentManager deploymentManager, IDeploymentStatusManager status, IDeploymentSettingsManager settings, //IOperationLock deploymentLock, IDictionary <string, IOperationLock> namedLocks, IRepositoryFactory repositoryFactory) { _tracer = tracer; _environment = environment; _analytics = analytics; _deploymentManager = deploymentManager; _status = status; _settings = settings; _deploymentLock = (AllSafeLinuxLock)namedLocks["deployment"]; _repositoryFactory = repositoryFactory; }
private InfoRefsController CreateController(IGitServer gitServer = null, IDeploymentManager deploymentManager = null, IDeploymentSettingsManager settings = null, IRepositoryFactory repositoryFactory = null, IEnvironment environment = null, IFileSystem fileSystem = null, IOperationLock initLock = null) { return(new InfoRefsController(t => { if (t == typeof(ITracer)) { return Mock.Of <ITracer>(); } else if (t == typeof(IGitServer)) { return gitServer ?? Mock.Of <IGitServer>(); } else if (t == typeof(IDeploymentSettingsManager)) { return settings ?? Mock.Of <IDeploymentSettingsManager>(); } else if (t == typeof(IRepositoryFactory)) { return repositoryFactory ?? Mock.Of <IRepositoryFactory>(); } else if (t == typeof(IEnvironment)) { return environment ?? Mock.Of <IEnvironment>(); } else if (t == typeof(IFileSystem)) { return fileSystem ?? Mock.Of <IFileSystem>(); } else if (t == typeof(IOperationLock)) { return initLock ?? Mock.Of <IOperationLock>(); } throw new NotImplementedException("type " + t.Name + " is not implemented!"); })); }
public DeploymentController(ITracer tracer, IEnvironment environment, IAnalytics analytics, IDeploymentManager deploymentManager, IDeploymentStatusManager status, IDeploymentSettingsManager settings, IOperationLock deploymentLock, IRepositoryFactory repositoryFactory, IAutoSwapHandler autoSwapHandler) { _tracer = tracer; _environment = environment; _analytics = analytics; _deploymentManager = deploymentManager; _status = status; _settings = settings; _deploymentLock = deploymentLock; _repositoryFactory = repositoryFactory; _autoSwapHandler = autoSwapHandler; }
private FetchHandler CreateFetchHandler(ITracer tracer = null, IDeploymentManager deploymentManager = null, IDeploymentSettingsManager settings = null, IDeploymentStatusManager status = null, IOperationLock deploymentLock = null, IEnvironment environment = null, IServiceHookHandler serviceHookHandler = null, IRepositoryFactory repositoryFactory = null, IFileSystem fileSystem = null) { return(new FetchHandler(tracer ?? Mock.Of <ITracer>(), deploymentManager ?? Mock.Of <IDeploymentManager>(), settings ?? Mock.Of <IDeploymentSettingsManager>(), status ?? Mock.Of <IDeploymentStatusManager>(), deploymentLock ?? Mock.Of <IOperationLock>(), environment ?? Mock.Of <IEnvironment>(), new[] { serviceHookHandler ?? Mock.Of <IServiceHookHandler>() }, repositoryFactory ?? Mock.Of <IRepositoryFactory>(), fileSystem ?? Mock.Of <IFileSystem>())); }
protected internal virtual IList <ResourceEntity> GetResourcesByDeploymentId(ISet <string> deploymentIds, CommandContext commandContext) { List <ResourceEntity> result = new List <ResourceEntity>(); if (deploymentIds.Count > 0) { IDeploymentManager deploymentManager = commandContext.DeploymentManager; foreach (string deploymentId in deploymentIds) { DeploymentEntity deployment = deploymentManager.FindDeploymentById(deploymentId); IDictionary <string, ResourceEntity> resources = deployment.Resources; var values = resources.Values; result.AddRange(values); } } return(result); }
/// <summary> /// Initialises a new instance of the <see cref="DeploymentService" /> class. /// </summary> /// <param name="pathToConfigurationFile">The path to configuration file.</param> /// <param name="readConfigurationAndCheckForUpdates">if set to <c>true</c> [read configuration and check for updates].</param> /// <param name="repositoryManager">The repository manager.</param> /// <param name="projectBuilder">The project builder.</param> /// <param name="deploymentManager">The deployment manager.</param> /// <param name="exceptionManager">The exception manager.</param> /// <exception cref="System.ArgumentNullException">pathToConfigurationFile; A valid path to the configuration file has not been provided.</exception> public DeploymentService(string pathToConfigurationFile, bool readConfigurationAndCheckForUpdates, IDistributedRevControlRepositoryManager repositoryManager, IProjectBuilder projectBuilder, IDeploymentManager deploymentManager, IExceptionManager exceptionManager) { _repositoryManager = repositoryManager; _projectBuilder = projectBuilder; _deploymentManager = deploymentManager; _exceptionManager = exceptionManager; if (pathToConfigurationFile == null) { throw new ArgumentNullException("pathToConfigurationFile", "A valid path to the configuration file has not been provided."); } else { _pathToConfigurationFile = pathToConfigurationFile; if (readConfigurationAndCheckForUpdates) { ReadConfigurationFromFile(); CheckRepositoriesForUpdates(); } } }
public static Task RunDeploymentAsync(IDeploymentManager deploymentManager, string template, IDictionary <string, object> arguments, IDictionary <string, string> variables) { if (deploymentManager == null) { throw new ArgumentNullException("deploymentManager"); } if (template == null) { throw new ArgumentNullException("template"); } if (arguments == null) { throw new ArgumentNullException("arguments"); } if (variables == null) { throw new ArgumentNullException("variables"); } return(Task.Run(() => deploymentManager.RunDeployment(template, arguments, variables))); }
/// <summary> /// 部署执行 /// </summary> /// <param name="commandContext"></param> /// <returns></returns> protected internal virtual IDeploymentWithDefinitions DoExecute(CommandContext commandContext) { IDeploymentManager deploymentManager = commandContext.DeploymentManager; var deploymentIds = GetAllDeploymentIds(deploymentBuilder); if (deploymentIds.Count > 0) { var deploymentIdArray = deploymentIds.ToArray(); IList <DeploymentEntity> deployments = deploymentManager.FindDeploymentsByIds(deploymentIdArray); EnsureDeploymentsWithIdsExists(deploymentIds, deployments); } CheckCreateAndReadDeployments(commandContext, deploymentIds); // set deployment name if it should retrieved from an existing deployment var nameFromDeployment = deploymentBuilder.GetNameFromDeployment(); SetDeploymentName(nameFromDeployment, deploymentBuilder, commandContext); //TODO 加载resources到上下文 // get resources to re-deploy var resources = GetResources(deploymentBuilder, commandContext); // .. and add them the builder AddResources(resources, deploymentBuilder); var resourceNames = deploymentBuilder.ResourceNames; if ((resourceNames == null) || (resourceNames.Count == 0)) { throw new NotValidException("No deployment resources contained to deploy."); } IDeploymentWithDefinitions dep = commandContext.RunWithoutAuthorization <IDeploymentWithDefinitions>(() => { AcquireExclusiveLock(commandContext); DeploymentEntity deployment = InitDeployment(); //准备部署的xml数据源 byte[] IDictionary <string, ResourceEntity> resourcesToDeploy = ResolveResourcesToDeploy(commandContext, deployment); //准备忽略的resource IDictionary <string, ResourceEntity> resourcesToIgnore = new Dictionary <string, ResourceEntity>(deployment.Resources); foreach (var key in resourcesToDeploy.Keys) { if (resourcesToIgnore.ContainsKey(key)) { resourcesToIgnore.Remove(key); } } if (resourcesToDeploy.Count > 0) { Log.DebugCreatingNewDeployment(); deployment.Resources = resourcesToDeploy; Deploy(deployment); } else { Log.UsingExistingDeployment(); deployment = GetExistingDeployment(commandContext, deployment.Name); } ScheduleProcessDefinitionActivation(commandContext, deployment); if (deploymentBuilder is IProcessApplicationDeploymentBuilder) { // for process application deployments, job executor registration is managed by // process application manager ISet <string> processesToRegisterFor = RetrieveProcessKeysFromResources(resourcesToIgnore); IProcessApplicationRegistration registration = RegisterProcessApplication(commandContext, deployment, processesToRegisterFor); return(new ProcessApplicationDeploymentImpl(deployment, registration)); } else { RegisterWithJobExecutor(commandContext, deployment); } return(deployment); }); CreateUserOperationLog(deploymentBuilder, dep, commandContext); return(dep); }
public UploadPackHandler(ITracer tracer, IGitServer gitServer, IOperationLock deploymentLock, IDeploymentManager deploymentManager) : base(tracer, gitServer, deploymentLock, deploymentManager) { }
public FetchHandler(ITracer tracer, IDeploymentManager deploymentManager, IDeploymentSettingsManager settings, IDeploymentStatusManager status, IOperationLock deploymentLock, IEnvironment environment, IEnumerable<IServiceHookHandler> serviceHookHandlers, IRepositoryFactory repositoryFactory, IAutoSwapHandler autoSwapHandler) { _tracer = tracer; _deploymentLock = deploymentLock; _environment = environment; _deploymentManager = deploymentManager; _settings = settings; _status = status; _serviceHookHandlers = serviceHookHandlers; _repositoryFactory = repositoryFactory; _autoSwapHandler = autoSwapHandler; _markerFilePath = Path.Combine(environment.DeploymentsPath, "pending"); // Prefer marker creation in ctor to delay create when needed. // This is to keep the code simple and avoid creation synchronization. if (!FileSystemHelpers.FileExists(_markerFilePath)) { try { FileSystemHelpers.WriteAllText(_markerFilePath, String.Empty); } catch (Exception ex) { tracer.TraceError(ex); } } }
public GitServerHttpHandler(ITracer tracer, IGitServer gitServer, IOperationLock deploymentLock, IDeploymentManager deploymentManager) { _gitServer = gitServer; _tracer = tracer; _deploymentLock = deploymentLock; _deploymentManager = deploymentManager; }