vsts/src/gitApiProvider.ts (21 lines of code) (raw):
import {GitApi} from 'azure-devops-node-api/GitApi'
import * as azdev from 'azure-devops-node-api'
import {getVariable} from './utils'
let gitApi: GitApi | null = null
async function initApi(): Promise<GitApi> {
const orgUrl = getVariable('System.TeamFoundationCollectionUri')
const token = getVariable('System.AccessToken')
const authHandler = azdev.getPersonalAccessTokenHandler(token)
const webApi = new azdev.WebApi(orgUrl, authHandler)
const api = await webApi.getGitApi()
gitApi = api
return api
}
export async function getGitApi(): Promise<GitApi> {
const api = gitApi
if (!api) {
return await initApi()
} else {
return api
}
}