in api/WebApi.ts [99:165]
constructor(defaultUrl: string, authHandler: VsoBaseInterfaces.IRequestHandler, options?: VsoBaseInterfaces.IRequestOptions, requestSettings?: IWebApiRequestSettings) {
this.serverUrl = defaultUrl;
this.authHandler = authHandler;
this.options = options || {};
if (!this.isNoProxyHost(this.serverUrl)) {
// try to get proxy setting from environment variable set by VSTS-Task-Lib if there is no proxy setting in the options
if (!this.options.proxy || !this.options.proxy.proxyUrl) {
if (global['_vsts_task_lib_proxy']) {
let proxyFromEnv: VsoBaseInterfaces.IProxyConfiguration = {
proxyUrl: global['_vsts_task_lib_proxy_url'],
proxyUsername: global['_vsts_task_lib_proxy_username'],
proxyPassword: this._readTaskLibSecrets(global['_vsts_task_lib_proxy_password']),
proxyBypassHosts: JSON.parse(global['_vsts_task_lib_proxy_bypass'] || "[]"),
};
this.options.proxy = proxyFromEnv;
}
}
}
// try get cert setting from environment variable set by VSTS-Task-Lib if there is no cert setting in the options
if (!this.options.cert) {
if (global['_vsts_task_lib_cert']) {
let certFromEnv: VsoBaseInterfaces.ICertConfiguration = {
caFile: global['_vsts_task_lib_cert_ca'],
certFile: global['_vsts_task_lib_cert_clientcert'],
keyFile: global['_vsts_task_lib_cert_key'],
passphrase: this._readTaskLibSecrets(global['_vsts_task_lib_cert_passphrase']),
};
this.options.cert = certFromEnv;
}
}
// try get ignore SSL error setting from environment variable set by VSTS-Task-Lib if there is no ignore SSL error setting in the options
if (!this.options.ignoreSslError) {
this.options.ignoreSslError = !!global['_vsts_task_lib_skip_cert_validation'];
}
let userAgent: string;
const nodeApiName: string = 'azure-devops-node-api';
if(isBrowser) {
if(requestSettings) {
userAgent = `${requestSettings.productName}/${requestSettings.productVersion} (${nodeApiName}; ${window.navigator.userAgent})`
} else {
userAgent = `${nodeApiName} (${window.navigator.userAgent})`;
}
} else {
let nodeApiVersion: string = 'unknown';
const packageJsonPath: string = path.resolve(__dirname, 'package.json');
if (fs.existsSync(packageJsonPath)) {
nodeApiVersion = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')).version;
}
const osName: string = os.platform();
const osVersion: string = os.release();
if (requestSettings) {
userAgent = `${requestSettings.productName}/${requestSettings.productVersion} (${nodeApiName} ${nodeApiVersion}; ${osName} ${osVersion})`;
}
else {
userAgent = `${nodeApiName}/${nodeApiVersion} (${osName} ${osVersion})`;
}
}
this.rest = new rm.RestClient(userAgent, null, [this.authHandler], this.options);
this.vsoClient = new vsom.VsoClient(defaultUrl, this.rest);
}