azdev-automation
Version:
Azure DevOps automation framework enables access control automation of projects, pipelines and repositories configuration in Azure DevOps Services
90 lines (88 loc) • 2.92 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const automation_1 = require("./automation");
const logger_1 = require("./loggers/logger");
const parameterreader_1 = require("./readers/parameterreader");
const logger = new logger_1.Logger("azdev-automation", false);
const parameterReader = new parameterreader_1.ParameterReader(logger);
function newEndpoint(account, token) {
const endpoint = {
account,
token,
url: `https://dev.azure.com/${account}`,
};
return endpoint;
}
function readParameters() {
const usage = `
Usage:
$ ./console.js <parameters>
Options:
--config, -c [string], path to configuration file
--policies, -p [string], path to policies directory
--schemas, -s [string], path to schemas directory
--account, -a [string], Azure DevOps account name
--token, -t [string], Azure DevOps account PAT token
--projectSetup [boolean], control project setup feature
--accessPermissions [boolean], control access permissions feature
--serviceConnections [boolean], control service connections feature
--branchPolicies [boolean], control branch policies feature`;
const flags = {
config: {
type: "string",
alias: "c",
},
policies: {
type: "string",
alias: "p",
default: "policies",
},
schemas: {
type: "string",
alias: "s",
default: "schemas",
},
account: {
type: "string",
alias: "a",
},
token: {
type: "string",
alias: "t",
},
projectSetup: {
type: "boolean",
default: false,
},
accessPermissions: {
type: "boolean",
default: false,
},
serviceConnections: {
type: "boolean",
default: false,
},
branchPolicies: {
type: "boolean",
default: false,
},
};
const parameters = parameterReader.newParameters(usage, flags);
return parameters;
}
async function run() {
const consoleParameters = readParameters();
const endpoint = newEndpoint(consoleParameters.account, consoleParameters.token);
const parameters = {
config: consoleParameters.config,
policies: consoleParameters.policies,
schemas: consoleParameters.schemas,
projectSetup: consoleParameters.projectSetup,
accessPermissions: consoleParameters.accessPermissions,
branchPolicies: consoleParameters.branchPolicies,
serviceConnections: consoleParameters.serviceConnections,
};
const automation = new automation_1.Automation(endpoint, parameters);
await automation.run();
}
run();