UNPKG

azdev-automation

Version:

Azure DevOps automation framework enables access control automation of projects, pipelines and repositories configuration in Azure DevOps Services

88 lines (87 loc) 6.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AutomationFactory = void 0; const azdevclient_1 = require("../common/azdevclient"); const commonhelper_1 = require("../helpers/commonhelper"); const buildhelper_1 = require("../helpers/buildhelper"); const projecthelper_1 = require("../helpers/projecthelper"); const releasehelper_1 = require("../helpers/releasehelper"); const repositoryhelper_1 = require("../helpers/repositoryhelper"); const securityhelper_1 = require("../helpers/securityhelper"); const taskagenthelper_1 = require("../helpers/taskagenthelper"); const iazdevclient_1 = require("../common/iazdevclient"); const securitymapper_1 = require("../mappers/securitymapper"); const buildupdater_1 = require("../updaters/buildupdater"); const projectupdater_1 = require("../updaters/projectupdater"); const releaseupdater_1 = require("../updaters/releaseupdater"); const repositoryupdater_1 = require("../updaters/repositoryupdater"); const workhelper_1 = require("../helpers/workhelper"); const workupdater_1 = require("../updaters/workupdater"); const endpointupdater_1 = require("../updaters/endpointupdater"); const endpointhelper_1 = require("../helpers/endpointhelper"); class AutomationFactory { constructor(apiFactory, logger) { this.logger = logger; this.debugLogger = logger.extend(this.constructor.name); this.apiFactory = apiFactory; } async createProjectUpdater() { const coreApi = await this.apiFactory.createCoreApi(); const vsoClient = await this.apiFactory.createVsoClient(); const azdevClient = new azdevclient_1.AzDevClient(vsoClient.restClient, iazdevclient_1.AzDevApiType.Core, vsoClient.basePath, this.logger); const commonHelper = new commonhelper_1.CommonHelper(this.logger); const securityMapper = new securitymapper_1.SecurityMapper(this.logger); const projectHelper = new projecthelper_1.ProjectHelper(coreApi, azdevClient, this.logger); const securityHelper = new securityhelper_1.SecurityHelper(azdevClient, commonHelper, securityMapper, this.logger); return new projectupdater_1.ProjectUpdater(projectHelper, securityHelper, commonHelper, this.logger); } async createBuildUpdater() { const vsoClient = await this.apiFactory.createVsoClient(); const azdevClient = new azdevclient_1.AzDevClient(vsoClient.restClient, iazdevclient_1.AzDevApiType.Core, vsoClient.basePath, this.logger); const buildApi = await this.apiFactory.createBuildApi(); const buildHelper = new buildhelper_1.BuildHelper(buildApi, this.logger); const commonHelper = new commonhelper_1.CommonHelper(this.logger); const securityMapper = new securitymapper_1.SecurityMapper(this.logger); const securityHelper = new securityhelper_1.SecurityHelper(azdevClient, commonHelper, securityMapper, this.logger); return new buildupdater_1.BuildUpdater(buildHelper, securityHelper, commonHelper, this.logger); } async createReleaseUpdater() { const vsoClient = await this.apiFactory.createVsoClient(); const azdevClient = new azdevclient_1.AzDevClient(vsoClient.restClient, iazdevclient_1.AzDevApiType.Core, vsoClient.basePath, this.logger); const releaseApi = await this.apiFactory.createReleaseApi(); const releaseHelper = new releasehelper_1.ReleaseHelper(releaseApi, this.logger); const commonHelper = new commonhelper_1.CommonHelper(this.logger); const securityMapper = new securitymapper_1.SecurityMapper(this.logger); const taskAgentApi = await this.apiFactory.createTaskAgentApi(); const taskAgentHelper = new taskagenthelper_1.TaskAgentHelper(taskAgentApi, this.logger); const securityHelper = new securityhelper_1.SecurityHelper(azdevClient, commonHelper, securityMapper, this.logger); return new releaseupdater_1.ReleaseUpdater(releaseHelper, taskAgentHelper, securityHelper, commonHelper, this.logger); } async createRepositoryUpdater() { const vsoClient = await this.apiFactory.createVsoClient(); const azdevClient = new azdevclient_1.AzDevClient(vsoClient.restClient, iazdevclient_1.AzDevApiType.Core, vsoClient.basePath, this.logger); const gitApi = await this.apiFactory.createGitApi(); const repositoryHelper = new repositoryhelper_1.RepositoryHelper(gitApi, this.logger); const commonHelper = new commonhelper_1.CommonHelper(this.logger); const securityMapper = new securitymapper_1.SecurityMapper(this.logger); const securityHelper = new securityhelper_1.SecurityHelper(azdevClient, commonHelper, securityMapper, this.logger); return new repositoryupdater_1.RepositoryUpdater(repositoryHelper, securityHelper, commonHelper, this.logger); } async createWorkUpdater() { const vsoClient = await this.apiFactory.createVsoClient(); const azdevClient = new azdevclient_1.AzDevClient(vsoClient.restClient, iazdevclient_1.AzDevApiType.Core, vsoClient.basePath, this.logger); const commonHelper = new commonhelper_1.CommonHelper(this.logger); const workHelper = new workhelper_1.WorkHelper(azdevClient, this.logger); const securityMapper = new securitymapper_1.SecurityMapper(this.logger); const securityHelper = new securityhelper_1.SecurityHelper(azdevClient, commonHelper, securityMapper, this.logger); return new workupdater_1.WorkUpdater(workHelper, securityHelper, commonHelper, this.logger); } async createEndpointUpdater() { const vsoClient = await this.apiFactory.createVsoClient(); const azdevClient = new azdevclient_1.AzDevClient(vsoClient.restClient, iazdevclient_1.AzDevApiType.Core, vsoClient.basePath, this.logger); const commonHelper = new commonhelper_1.CommonHelper(this.logger); const endpointHelper = new endpointhelper_1.EndpointHelper(azdevClient, this.logger); return new endpointupdater_1.EndpointUpdater(endpointHelper, commonHelper, this.logger); } } exports.AutomationFactory = AutomationFactory;