azure-devops-node-api
Version:
Node client for Azure DevOps and TFS REST APIs
1,021 lines (1,020 loc) • 136 kB
JavaScript
"use strict";
/*
* ---------------------------------------------------------
* Copyright(C) Microsoft Corporation. All rights reserved.
* ---------------------------------------------------------
*
* ---------------------------------------------------------
* Generated file, DO NOT EDIT
* ---------------------------------------------------------
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const basem = require("./ClientApiBases");
const BuildInterfaces = require("./interfaces/BuildInterfaces");
class BuildApi extends basem.ClientApiBase {
constructor(baseUrl, handlers, options) {
super(baseUrl, handlers, 'node-Build-api', options);
}
/**
* Associates an artifact with a build.
*
* @param {BuildInterfaces.BuildArtifact} artifact - The artifact.
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
*/
createArtifact(artifact, project, buildId) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.create(url, artifact, options);
let ret = this.formatResponse(res.result, null, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a specific artifact for a build.
*
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
* @param {string} artifactName - The name of the artifact.
*/
getArtifact(project, buildId, artifactName) {
return __awaiter(this, void 0, void 0, function* () {
if (artifactName == null) {
throw new TypeError('artifactName can not be null or undefined');
}
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
let queryValues = {
artifactName: artifactName,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, null, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a specific artifact for a build.
*
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
* @param {string} artifactName - The name of the artifact.
*/
getArtifactContentZip(project, buildId, artifactName) {
return __awaiter(this, void 0, void 0, function* () {
if (artifactName == null) {
throw new TypeError('artifactName can not be null or undefined');
}
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
let queryValues = {
artifactName: artifactName,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues, queryValues);
let url = verData.requestUrl;
let apiVersion = verData.apiVersion;
let accept = this.createAcceptHeader("application/zip", apiVersion);
resolve((yield this.http.get(url, { "Accept": accept })).message);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets all artifacts for a build.
*
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
*/
getArtifacts(project, buildId) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, null, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a file from the build.
*
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
* @param {string} artifactName - The name of the artifact.
* @param {string} fileId - The primary key for the file.
* @param {string} fileName - The name that the file will be set to.
*/
getFile(project, buildId, artifactName, fileId, fileName) {
return __awaiter(this, void 0, void 0, function* () {
if (artifactName == null) {
throw new TypeError('artifactName can not be null or undefined');
}
if (fileId == null) {
throw new TypeError('fileId can not be null or undefined');
}
if (fileName == null) {
throw new TypeError('fileName can not be null or undefined');
}
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
let queryValues = {
artifactName: artifactName,
fileId: fileId,
fileName: fileName,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues, queryValues);
let url = verData.requestUrl;
let apiVersion = verData.apiVersion;
let accept = this.createAcceptHeader("application/octet-stream", apiVersion);
resolve((yield this.http.get(url, { "Accept": accept })).message);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets the list of attachments of a specific type that are associated with a build.
*
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
* @param {string} type - The type of attachment.
*/
getAttachments(project, buildId, type) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId,
type: type
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "f2192269-89fa-4f94-baf6-8fb128c55159", routeValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, null, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a specific attachment.
*
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
* @param {string} timelineId - The ID of the timeline.
* @param {string} recordId - The ID of the timeline record.
* @param {string} type - The type of the attachment.
* @param {string} name - The name of the attachment.
*/
getAttachment(project, buildId, timelineId, recordId, type, name) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId,
timelineId: timelineId,
recordId: recordId,
type: type,
name: name
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "af5122d3-3438-485e-a25a-2dbbfde84ee6", routeValues);
let url = verData.requestUrl;
let apiVersion = verData.apiVersion;
let accept = this.createAcceptHeader("application/octet-stream", apiVersion);
resolve((yield this.http.get(url, { "Accept": accept })).message);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* @param {BuildInterfaces.DefinitionResourceReference[]} resources
* @param {string} project - Project ID or project name
*/
authorizeProjectResources(resources, project) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.1", "build", "398c85bc-81aa-4822-947c-a194a05f0fef", routeValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.update(url, resources, options);
let ret = this.formatResponse(res.result, null, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* @param {string} project - Project ID or project name
* @param {string} type
* @param {string} id
*/
getProjectResources(project, type, id) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project
};
let queryValues = {
type: type,
id: id,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.1", "build", "398c85bc-81aa-4822-947c-a194a05f0fef", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, null, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a badge that indicates the status of the most recent build for a definition. Note that this API is deprecated. Prefer StatusBadgeController.GetStatusBadge.
*
* @param {string} project - The project ID or name.
* @param {number} definitionId - The ID of the definition.
* @param {string} branchName - The name of the branch.
*/
getBadge(project, definitionId, branchName) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
definitionId: definitionId
};
let queryValues = {
branchName: branchName,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "de6a4df8-22cd-44ee-af2d-39f6aa7a4261", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, null, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a list of branches for the given source code repository.
*
* @param {string} project - Project ID or project name
* @param {string} providerName - The name of the source provider.
* @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.
* @param {string} repository - The vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.
* @param {string} branchName - If supplied, the name of the branch to check for specifically.
*/
listBranches(project, providerName, serviceEndpointId, repository, branchName) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
providerName: providerName
};
let queryValues = {
serviceEndpointId: serviceEndpointId,
repository: repository,
branchName: branchName,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.1", "build", "e05d4403-9b81-4244-8763-20fde28d1976", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, null, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a badge that indicates the status of the most recent build for the specified branch.
*
* @param {string} project - Project ID or project name
* @param {string} repoType - The repository type.
* @param {string} repoId - The repository ID.
* @param {string} branchName - The branch name.
*/
getBuildBadge(project, repoType, repoId, branchName) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
repoType: repoType
};
let queryValues = {
repoId: repoId,
branchName: branchName,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "21b3b9ce-fad5-4567-9ad0-80679794e003", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, null, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a badge that indicates the status of the most recent build for the specified branch.
*
* @param {string} project - Project ID or project name
* @param {string} repoType - The repository type.
* @param {string} repoId - The repository ID.
* @param {string} branchName - The branch name.
*/
getBuildBadgeData(project, repoType, repoId, branchName) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
repoType: repoType
};
let queryValues = {
repoId: repoId,
branchName: branchName,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "21b3b9ce-fad5-4567-9ad0-80679794e003", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, null, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Deletes a build.
*
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
*/
deleteBuild(project, buildId) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.del(url, options);
let ret = this.formatResponse(res.result, null, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a build
*
* @param {string} project - Project ID or project name
* @param {number} buildId
* @param {string} propertyFilters
*/
getBuild(project, buildId, propertyFilters) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
let queryValues = {
propertyFilters: propertyFilters,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a list of builds.
*
* @param {string} project - Project ID or project name
* @param {number[]} definitions - A comma-delimited list of definition IDs. If specified, filters to builds for these definitions.
* @param {number[]} queues - A comma-delimited list of queue IDs. If specified, filters to builds that ran against these queues.
* @param {string} buildNumber - If specified, filters to builds that match this build number. Append * to do a prefix search.
* @param {Date} minTime - If specified, filters to builds that finished/started/queued after this date based on the queryOrder specified.
* @param {Date} maxTime - If specified, filters to builds that finished/started/queued before this date based on the queryOrder specified.
* @param {string} requestedFor - If specified, filters to builds requested for the specified user.
* @param {BuildInterfaces.BuildReason} reasonFilter - If specified, filters to builds that match this reason.
* @param {BuildInterfaces.BuildStatus} statusFilter - If specified, filters to builds that match this status.
* @param {BuildInterfaces.BuildResult} resultFilter - If specified, filters to builds that match this result.
* @param {string[]} tagFilters - A comma-delimited list of tags. If specified, filters to builds that have the specified tags.
* @param {string[]} properties - A comma-delimited list of properties to retrieve.
* @param {number} top - The maximum number of builds to return.
* @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of builds.
* @param {number} maxBuildsPerDefinition - The maximum number of builds to return per definition.
* @param {BuildInterfaces.QueryDeletedOption} deletedFilter - Indicates whether to exclude, include, or only return deleted builds.
* @param {BuildInterfaces.BuildQueryOrder} queryOrder - The order in which builds should be returned.
* @param {string} branchName - If specified, filters to builds that built branches that built this branch.
* @param {number[]} buildIds - A comma-delimited list that specifies the IDs of builds to retrieve.
* @param {string} repositoryId - If specified, filters to builds that built from this repository.
* @param {string} repositoryType - If specified, filters to builds that built from repositories of this type.
*/
getBuilds(project, definitions, queues, buildNumber, minTime, maxTime, requestedFor, reasonFilter, statusFilter, resultFilter, tagFilters, properties, top, continuationToken, maxBuildsPerDefinition, deletedFilter, queryOrder, branchName, buildIds, repositoryId, repositoryType) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project
};
let queryValues = {
definitions: definitions && definitions.join(","),
queues: queues && queues.join(","),
buildNumber: buildNumber,
minTime: minTime,
maxTime: maxTime,
requestedFor: requestedFor,
reasonFilter: reasonFilter,
statusFilter: statusFilter,
resultFilter: resultFilter,
tagFilters: tagFilters && tagFilters.join(","),
properties: properties && properties.join(","),
'$top': top,
continuationToken: continuationToken,
maxBuildsPerDefinition: maxBuildsPerDefinition,
deletedFilter: deletedFilter,
queryOrder: queryOrder,
branchName: branchName,
buildIds: buildIds && buildIds.join(","),
repositoryId: repositoryId,
repositoryType: repositoryType,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Queues a build
*
* @param {BuildInterfaces.Build} build
* @param {string} project - Project ID or project name
* @param {boolean} ignoreWarnings
* @param {string} checkInTicket
* @param {number} sourceBuildId
*/
queueBuild(build, project, ignoreWarnings, checkInTicket, sourceBuildId) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project
};
let queryValues = {
ignoreWarnings: ignoreWarnings,
checkInTicket: checkInTicket,
sourceBuildId: sourceBuildId,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.create(url, build, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Updates a build.
*
* @param {BuildInterfaces.Build} build - The build.
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
* @param {boolean} retry
*/
updateBuild(build, project, buildId, retry) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
let queryValues = {
retry: retry,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.update(url, build, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Updates multiple builds.
*
* @param {BuildInterfaces.Build[]} builds - The builds to update.
* @param {string} project - Project ID or project name
*/
updateBuilds(builds, project) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.5", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.update(url, builds, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets the changes associated with a build
*
* @param {string} project - Project ID or project name
* @param {number} buildId
* @param {string} continuationToken
* @param {number} top - The maximum number of changes to return
* @param {boolean} includeSourceChange
*/
getBuildChanges(project, buildId, continuationToken, top, includeSourceChange) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
buildId: buildId
};
let queryValues = {
continuationToken: continuationToken,
'$top': top,
includeSourceChange: includeSourceChange,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "54572c7b-bbd3-45d4-80dc-28be08941620", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets the changes made to the repository between two given builds.
*
* @param {string} project - Project ID or project name
* @param {number} fromBuildId - The ID of the first build.
* @param {number} toBuildId - The ID of the last build.
* @param {number} top - The maximum number of changes to return.
*/
getChangesBetweenBuilds(project, fromBuildId, toBuildId, top) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project
};
let queryValues = {
fromBuildId: fromBuildId,
toBuildId: toBuildId,
'$top': top,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "f10f0ea5-18a1-43ec-a8fb-2042c7be9b43", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a controller
*
* @param {number} controllerId
*/
getBuildController(controllerId) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
controllerId: controllerId
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "fcac1932-2ee1-437f-9b6f-7f696be858f6", routeValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets controller, optionally filtered by name
*
* @param {string} name
*/
getBuildControllers(name) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {};
let queryValues = {
name: name,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.2", "build", "fcac1932-2ee1-437f-9b6f-7f696be858f6", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Creates a new definition.
*
* @param {BuildInterfaces.BuildDefinition} definition - The definition.
* @param {string} project - Project ID or project name
* @param {number} definitionToCloneId
* @param {number} definitionToCloneRevision
*/
createDefinition(definition, project, definitionToCloneId, definitionToCloneRevision) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project
};
let queryValues = {
definitionToCloneId: definitionToCloneId,
definitionToCloneRevision: definitionToCloneRevision,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.create(url, definition, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Deletes a definition and all associated builds.
*
* @param {string} project - Project ID or project name
* @param {number} definitionId - The ID of the definition.
*/
deleteDefinition(project, definitionId) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
definitionId: definitionId
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.del(url, options);
let ret = this.formatResponse(res.result, null, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a definition, optionally at a specific revision.
*
* @param {string} project - Project ID or project name
* @param {number} definitionId - The ID of the definition.
* @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned.
* @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.
* @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results.
* @param {boolean} includeLatestBuilds
*/
getDefinition(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
definitionId: definitionId
};
let queryValues = {
revision: revision,
minMetricsTime: minMetricsTime,
propertyFilters: propertyFilters && propertyFilters.join(","),
includeLatestBuilds: includeLatestBuilds,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Gets a list of definitions.
*
* @param {string} project - Project ID or project name
* @param {string} name - If specified, filters to definitions whose names match this pattern.
* @param {string} repositoryId - A repository ID. If specified, filters to definitions that use this repository.
* @param {string} repositoryType - If specified, filters to definitions that have a repository of this type.
* @param {BuildInterfaces.DefinitionQueryOrder} queryOrder - Indicates the order in which definitions should be returned.
* @param {number} top - The maximum number of definitions to return.
* @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of definitions.
* @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.
* @param {number[]} definitionIds - A comma-delimited list that specifies the IDs of definitions to retrieve.
* @param {string} path - If specified, filters to definitions under this folder.
* @param {Date} builtAfter - If specified, filters to definitions that have builds after this date.
* @param {Date} notBuiltAfter - If specified, filters to definitions that do not have builds after this date.
* @param {boolean} includeAllProperties - Indicates whether the full definitions should be returned. By default, shallow representations of the definitions are returned.
* @param {boolean} includeLatestBuilds - Indicates whether to return the latest and latest completed builds for this definition.
* @param {string} taskIdFilter - If specified, filters to definitions that use the specified task.
* @param {number} processType - If specified, filters to definitions with the given process type.
* @param {string} yamlFilename - If specified, filters to YAML definitions that match the given filename.
*/
getDefinitions(project, name, repositoryId, repositoryType, queryOrder, top, continuationToken, minMetricsTime, definitionIds, path, builtAfter, notBuiltAfter, includeAllProperties, includeLatestBuilds, taskIdFilter, processType, yamlFilename) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project
};
let queryValues = {
name: name,
repositoryId: repositoryId,
repositoryType: repositoryType,
queryOrder: queryOrder,
'$top': top,
continuationToken: continuationToken,
minMetricsTime: minMetricsTime,
definitionIds: definitionIds && definitionIds.join(","),
path: path,
builtAfter: builtAfter,
notBuiltAfter: notBuiltAfter,
includeAllProperties: includeAllProperties,
includeLatestBuilds: includeLatestBuilds,
taskIdFilter: taskIdFilter,
processType: processType,
yamlFilename: yamlFilename,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.get(url, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionReference, true);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Restores a deleted definition
*
* @param {string} project - Project ID or project name
* @param {number} definitionId - The identifier of the definition to restore.
* @param {boolean} deleted - When false, restores a deleted definition.
*/
restoreDefinition(project, definitionId, deleted) {
return __awaiter(this, void 0, void 0, function* () {
if (deleted == null) {
throw new TypeError('deleted can not be null or undefined');
}
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
definitionId: definitionId
};
let queryValues = {
deleted: deleted,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.update(url, null, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);
resolve(ret);
}
catch (err) {
reject(err);
}
}));
});
}
/**
* Updates an existing definition.
*
* @param {BuildInterfaces.BuildDefinition} definition - The new version of the definition.
* @param {string} project - Project ID or project name
* @param {number} definitionId - The ID of the definition.
* @param {number} secretsSourceDefinitionId
* @param {number} secretsSourceDefinitionRevision
*/
updateDefinition(definition, project, definitionId, secretsSourceDefinitionId, secretsSourceDefinitionRevision) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
let routeValues = {
project: project,
definitionId: definitionId
};
let queryValues = {
secretsSourceDefinitionId: secretsSourceDefinitionId,
secretsSourceDefinitionRevision: secretsSourceDefinitionRevision,
};
try {
let verData = yield this.vsoClient.getVersioningData("6.0-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues);
let url = verData.requestUrl;
let options = this.createRequestOptions('application/json', verData.apiVersion);
let res;
res = yield this.rest.replace(url, definition, options);
let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);
resolve(ret);
}
catch (err) {
reject(err);
}