azdev-automation
Version:
Azure DevOps automation framework enables access control automation of projects, pipelines and repositories configuration in Azure DevOps Services
62 lines (61 loc) • 2.56 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiFactory = void 0;
const azure_devops_node_api_1 = require("azure-devops-node-api");
class ApiFactory {
constructor(accountName, token, logger) {
this.debugLogger = logger.extend(this.constructor.name);
const auth = (0, azure_devops_node_api_1.getPersonalAccessTokenHandler)(token);
// Use integrated retry mechanism to address
// Intermittent Azure DevOps connectivity errors
const options = {
allowRetries: true,
maxRetries: 100,
socketTimeout: 30000,
};
this.webApi = new azure_devops_node_api_1.WebApi(`https://dev.azure.com/${accountName}`, auth, options);
}
async createCoreApi() {
const debug = this.debugLogger.extend(this.createCoreApi.name);
const coreApi = await this.webApi.getCoreApi();
debug("Azure DevOps Core API initialized");
return coreApi;
}
async createReleaseApi() {
const debug = this.debugLogger.extend(this.createReleaseApi.name);
const releaseApi = await this.webApi.getReleaseApi();
debug("Azure DevOps Release API initialized");
return releaseApi;
}
async createBuildApi() {
const debug = this.debugLogger.extend(this.createBuildApi.name);
const buildApi = await this.webApi.getBuildApi();
debug("Azure DevOps Build API initialized");
return buildApi;
}
async createGitApi() {
const debug = this.debugLogger.extend(this.createGitApi.name);
const getApi = await this.webApi.getGitApi();
debug("Azure DevOps Git API initialized");
return getApi;
}
async createTaskAgentApi() {
const debug = this.debugLogger.extend(this.createTaskAgentApi.name);
const taskAgentApi = await this.webApi.getTaskAgentApi();
debug("Azure DevOps Task Agent API initialized");
return taskAgentApi;
}
async createSecurityRolesApi() {
const debug = this.debugLogger.extend(this.createSecurityRolesApi.name);
const securityRolesApi = await this.webApi.getSecurityRolesApi();
debug("Azure DevOps Security Roles API initialized");
return securityRolesApi;
}
async createVsoClient() {
const debug = this.debugLogger.extend(this.createVsoClient.name);
debug("Azure DevOps API client initialized");
debug(this.webApi.options);
return this.webApi.vsoClient;
}
}
exports.ApiFactory = ApiFactory;