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
JavaScript
"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;