This commit is contained in:
Maxim Zaytsev 2021-11-16 16:10:15 +03:00 коммит произвёл GitHub
Родитель 5af9e5ce2c
Коммит e3daeea0d2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
16 изменённых файлов: 514 добавлений и 59 удалений

Просмотреть файл

@ -31,6 +31,7 @@ export interface IBuildApi extends basem.ClientApiBase {
listBranches(project: string, providerName: string, serviceEndpointId?: string, repository?: string, branchName?: string): Promise<string[]>;
getBuildBadge(project: string, repoType: string, repoId?: string, branchName?: string): Promise<BuildInterfaces.BuildBadge>;
getBuildBadgeData(project: string, repoType: string, repoId?: string, branchName?: string): Promise<string>;
getRetentionLeasesForBuild(project: string, buildId: number): Promise<BuildInterfaces.RetentionLease[]>;
deleteBuild(project: string, buildId: number): Promise<void>;
getBuild(project: string, buildId: number, propertyFilters?: string): Promise<BuildInterfaces.Build>;
getBuilds(project: string, definitions?: number[], queues?: number[], buildNumber?: string, minTime?: Date, maxTime?: Date, requestedFor?: string, reasonFilter?: BuildInterfaces.BuildReason, statusFilter?: BuildInterfaces.BuildStatus, resultFilter?: BuildInterfaces.BuildResult, tagFilters?: string[], properties?: string[], top?: number, continuationToken?: string, maxBuildsPerDefinition?: number, deletedFilter?: BuildInterfaces.QueryDeletedOption, queryOrder?: BuildInterfaces.BuildQueryOrder, branchName?: string, buildIds?: number[], repositoryId?: string, repositoryType?: string): Promise<BuildInterfaces.Build[]>;
@ -62,6 +63,7 @@ export interface IBuildApi extends basem.ClientApiBase {
getRetentionLeasesByMinimalRetentionLeases(project: string, leasesToFetch: BuildInterfaces.MinimalRetentionLease[]): Promise<BuildInterfaces.RetentionLease[]>;
getRetentionLeasesByOwnerId(project: string, ownerId?: string, definitionId?: number, runId?: number): Promise<BuildInterfaces.RetentionLease[]>;
getRetentionLeasesByUserId(project: string, userOwnerId: string, definitionId?: number, runId?: number): Promise<BuildInterfaces.RetentionLease[]>;
updateRetentionLease(leaseUpdate: BuildInterfaces.RetentionLeaseUpdate, project: string, leaseId: number): Promise<BuildInterfaces.RetentionLease>;
getBuildLog(project: string, buildId: number, logId: number, startLine?: number, endLine?: number): Promise<NodeJS.ReadableStream>;
getBuildLogLines(project: string, buildId: number, logId: number, startLine?: number, endLine?: number): Promise<string[]>;
getBuildLogs(project: string, buildId: number): Promise<BuildInterfaces.BuildLog[]>;
@ -771,6 +773,50 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi {
});
}
/**
* Gets all retention leases that apply to a specific build.
*
* @param {string} project - Project ID or project name
* @param {number} buildId - The ID of the build.
*/
public async getRetentionLeasesForBuild(
project: string,
buildId: number
): Promise<BuildInterfaces.RetentionLease[]> {
return new Promise<BuildInterfaces.RetentionLease[]>(async (resolve, reject) => {
let routeValues: any = {
project: project,
buildId: buildId
};
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"build",
"3da19a6a-f088-45c4-83ce-2ad3a87be6c4",
routeValues);
let url: string = verData.requestUrl!;
let options: restm.IRequestOptions = this.createRequestOptions('application/json',
verData.apiVersion);
let res: restm.IRestResponse<BuildInterfaces.RetentionLease[]>;
res = await this.rest.get<BuildInterfaces.RetentionLease[]>(url, options);
let ret = this.formatResponse(res.result,
BuildInterfaces.TypeInfo.RetentionLease,
true);
resolve(ret);
}
catch (err) {
reject(err);
}
});
}
/**
* Deletes a build.
*
@ -2141,7 +2187,7 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi {
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"6.1-preview.2",
"build",
"272051e4-9af1-45b5-ae22-8d960a5539d4",
routeValues);
@ -2191,7 +2237,7 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi {
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"6.1-preview.2",
"build",
"272051e4-9af1-45b5-ae22-8d960a5539d4",
routeValues,
@ -2236,7 +2282,7 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi {
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"6.1-preview.2",
"build",
"272051e4-9af1-45b5-ae22-8d960a5539d4",
routeValues);
@ -2286,7 +2332,7 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi {
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"6.1-preview.2",
"build",
"272051e4-9af1-45b5-ae22-8d960a5539d4",
routeValues,
@ -2340,7 +2386,7 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi {
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"6.1-preview.2",
"build",
"272051e4-9af1-45b5-ae22-8d960a5539d4",
routeValues,
@ -2397,7 +2443,7 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi {
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"6.1-preview.2",
"build",
"272051e4-9af1-45b5-ae22-8d960a5539d4",
routeValues,
@ -2423,6 +2469,52 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi {
});
}
/**
* Updates the duration or pipeline protection status of a retention lease.
*
* @param {BuildInterfaces.RetentionLeaseUpdate} leaseUpdate - The new data for the retention lease.
* @param {string} project - Project ID or project name
* @param {number} leaseId - The ID of the lease to update.
*/
public async updateRetentionLease(
leaseUpdate: BuildInterfaces.RetentionLeaseUpdate,
project: string,
leaseId: number
): Promise<BuildInterfaces.RetentionLease> {
return new Promise<BuildInterfaces.RetentionLease>(async (resolve, reject) => {
let routeValues: any = {
project: project,
leaseId: leaseId
};
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.2",
"build",
"272051e4-9af1-45b5-ae22-8d960a5539d4",
routeValues);
let url: string = verData.requestUrl!;
let options: restm.IRequestOptions = this.createRequestOptions('application/json',
verData.apiVersion);
let res: restm.IRestResponse<BuildInterfaces.RetentionLease>;
res = await this.rest.update<BuildInterfaces.RetentionLease>(url, leaseUpdate, options);
let ret = this.formatResponse(res.result,
BuildInterfaces.TypeInfo.RetentionLease,
false);
resolve(ret);
}
catch (err) {
reject(err);
}
});
}
/**
* Gets an individual log file for a build.
*

Просмотреть файл

@ -31,7 +31,7 @@ export interface IGalleryApi extends compatBase.GalleryCompatHttpClientBase {
queryAssociatedAzurePublisher(publisherName: string): Promise<GalleryInterfaces.AzurePublisher>;
getCategories(languages?: string): Promise<string[]>;
getCategoryDetails(categoryName: string, languages?: string, product?: string): Promise<GalleryInterfaces.CategoriesResult>;
getCategoryTree(product: string, categoryId: string, lcid?: number, source?: string, productVersion?: string, skus?: string, subSkus?: string): Promise<GalleryInterfaces.ProductCategory>;
getCategoryTree(product: string, categoryId: string, lcid?: number, source?: string, productVersion?: string, skus?: string, subSkus?: string, productArchitecture?: string): Promise<GalleryInterfaces.ProductCategory>;
getRootCategories(product: string, lcid?: number, source?: string, productVersion?: string, skus?: string, subSkus?: string): Promise<GalleryInterfaces.ProductCategoriesResult>;
getCertificate(publisherName: string, extensionName: string, version?: string): Promise<NodeJS.ReadableStream>;
getContentVerificationLog(publisherName: string, extensionName: string): Promise<NodeJS.ReadableStream>;
@ -67,6 +67,8 @@ export interface IGalleryApi extends compatBase.GalleryCompatHttpClientBase {
deletePublisherAsset(publisherName: string, assetType?: string): Promise<void>;
getPublisherAsset(publisherName: string, assetType?: string): Promise<NodeJS.ReadableStream>;
updatePublisherAsset(customHeaders: any, contentStream: NodeJS.ReadableStream, publisherName: string, assetType?: string, fileName?: String): Promise<{ [key: string] : string; }>;
fetchDomainToken(publisherName: string): Promise<string>;
verifyDomainToken(publisherName: string): Promise<void>;
queryPublishers(publisherQuery: GalleryInterfaces.PublisherQuery): Promise<GalleryInterfaces.PublisherQueryResult>;
createPublisher(publisher: GalleryInterfaces.Publisher): Promise<GalleryInterfaces.Publisher>;
deletePublisher(publisherName: string): Promise<void>;
@ -95,8 +97,9 @@ export interface IGalleryApi extends compatBase.GalleryCompatHttpClientBase {
updateExtensionStatistics(extensionStatisticsUpdate: GalleryInterfaces.ExtensionStatisticUpdate, publisherName: string, extensionName: string): Promise<void>;
getExtensionDailyStats(publisherName: string, extensionName: string, days?: number, aggregate?: GalleryInterfaces.ExtensionStatsAggregateType, afterDate?: Date): Promise<GalleryInterfaces.ExtensionDailyStats>;
getExtensionDailyStatsAnonymous(publisherName: string, extensionName: string, version: string): Promise<GalleryInterfaces.ExtensionDailyStats>;
incrementExtensionDailyStat(publisherName: string, extensionName: string, version: string, statType: string): Promise<void>;
getVerificationLog(publisherName: string, extensionName: string, version: string): Promise<NodeJS.ReadableStream>;
incrementExtensionDailyStat(publisherName: string, extensionName: string, version: string, statType: string, targetPlatform?: string): Promise<void>;
getVerificationLog(publisherName: string, extensionName: string, version: string, targetPlatform?: string): Promise<NodeJS.ReadableStream>;
updateVSCodeWebExtensionStatistics(itemName: string, version: string, statType: GalleryInterfaces.VSCodeWebExtensionStatisicsType): Promise<void>;
}
export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implements IGalleryApi {
@ -723,6 +726,7 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
* @param {string} productVersion
* @param {string} skus
* @param {string} subSkus
* @param {string} productArchitecture
*/
public async getCategoryTree(
product: string,
@ -731,7 +735,8 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
source?: string,
productVersion?: string,
skus?: string,
subSkus?: string
subSkus?: string,
productArchitecture?: string
): Promise<GalleryInterfaces.ProductCategory> {
return new Promise<GalleryInterfaces.ProductCategory>(async (resolve, reject) => {
@ -746,6 +751,7 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
productVersion: productVersion,
skus: skus,
subSkus: subSkus,
productArchitecture: productArchitecture,
};
try {
@ -2489,6 +2495,84 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
});
}
/**
* @param {string} publisherName
*/
public async fetchDomainToken(
publisherName: string
): Promise<string> {
return new Promise<string>(async (resolve, reject) => {
let routeValues: any = {
publisherName: publisherName
};
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"gallery",
"67a609ef-fa74-4b52-8664-78d76f7b3634",
routeValues);
let url: string = verData.requestUrl!;
let options: restm.IRequestOptions = this.createRequestOptions('application/json',
verData.apiVersion);
let res: restm.IRestResponse<string>;
res = await this.rest.get<string>(url, options);
let ret = this.formatResponse(res.result,
null,
false);
resolve(ret);
}
catch (err) {
reject(err);
}
});
}
/**
* @param {string} publisherName
*/
public async verifyDomainToken(
publisherName: string
): Promise<void> {
return new Promise<void>(async (resolve, reject) => {
let routeValues: any = {
publisherName: publisherName
};
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"gallery",
"67a609ef-fa74-4b52-8664-78d76f7b3634",
routeValues);
let url: string = verData.requestUrl!;
let options: restm.IRequestOptions = this.createRequestOptions('application/json',
verData.apiVersion);
let res: restm.IRestResponse<void>;
res = await this.rest.replace<void>(url, null, options);
let ret = this.formatResponse(res.result,
null,
false);
resolve(ret);
}
catch (err) {
reject(err);
}
});
}
/**
* @param {GalleryInterfaces.PublisherQuery} publisherQuery
*/
@ -3816,12 +3900,14 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
* @param {string} extensionName - Name of the extension
* @param {string} version - Version of the extension
* @param {string} statType - Type of stat to increment
* @param {string} targetPlatform
*/
public async incrementExtensionDailyStat(
publisherName: string,
extensionName: string,
version: string,
statType: string
statType: string,
targetPlatform?: string
): Promise<void> {
if (statType == null) {
throw new TypeError('statType can not be null or undefined');
@ -3836,6 +3922,7 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
let queryValues: any = {
statType: statType,
targetPlatform: targetPlatform,
};
try {
@ -3870,11 +3957,13 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
* @param {string} publisherName
* @param {string} extensionName
* @param {string} version
* @param {string} targetPlatform
*/
public async getVerificationLog(
publisherName: string,
extensionName: string,
version: string
version: string,
targetPlatform?: string
): Promise<NodeJS.ReadableStream> {
return new Promise<NodeJS.ReadableStream>(async (resolve, reject) => {
@ -3884,12 +3973,17 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
version: version
};
let queryValues: any = {
targetPlatform: targetPlatform,
};
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"gallery",
"c5523abe-b843-437f-875b-5833064efe4d",
routeValues);
routeValues,
queryValues);
let url: string = verData.requestUrl!;
@ -3903,4 +3997,49 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement
});
}
/**
* @param {string} itemName
* @param {string} version
* @param {GalleryInterfaces.VSCodeWebExtensionStatisicsType} statType
*/
public async updateVSCodeWebExtensionStatistics(
itemName: string,
version: string,
statType: GalleryInterfaces.VSCodeWebExtensionStatisicsType
): Promise<void> {
return new Promise<void>(async (resolve, reject) => {
let routeValues: any = {
itemName: itemName,
version: version,
statType: statType
};
try {
let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData(
"6.1-preview.1",
"gallery",
"205c91a8-7841-4fd3-ae4f-5a745d5a8df5",
routeValues);
let url: string = verData.requestUrl!;
let options: restm.IRequestOptions = this.createRequestOptions('application/json',
verData.apiVersion);
let res: restm.IRestResponse<void>;
res = await this.rest.create<void>(url, null, options);
let ret = this.formatResponse(res.result,
null,
false);
resolve(ret);
}
catch (err) {
reject(err);
}
});
}
}

Просмотреть файл

@ -54,7 +54,7 @@ export interface IWorkItemTrackingApi extends basem.ClientApiBase {
createQuery(postedQuery: WorkItemTrackingInterfaces.QueryHierarchyItem, project: string, query: string, validateWiqlOnly?: boolean): Promise<WorkItemTrackingInterfaces.QueryHierarchyItem>;
deleteQuery(project: string, query: string): Promise<void>;
getQueries(project: string, expand?: WorkItemTrackingInterfaces.QueryExpand, depth?: number, includeDeleted?: boolean): Promise<WorkItemTrackingInterfaces.QueryHierarchyItem[]>;
getQuery(project: string, query: string, expand?: WorkItemTrackingInterfaces.QueryExpand, depth?: number, includeDeleted?: boolean): Promise<WorkItemTrackingInterfaces.QueryHierarchyItem>;
getQuery(project: string, query: string, expand?: WorkItemTrackingInterfaces.QueryExpand, depth?: number, includeDeleted?: boolean, useIsoDateFormat?: boolean): Promise<WorkItemTrackingInterfaces.QueryHierarchyItem>;
searchQueries(project: string, filter: string, top?: number, expand?: WorkItemTrackingInterfaces.QueryExpand, includeDeleted?: boolean): Promise<WorkItemTrackingInterfaces.QueryHierarchyItemsResult>;
updateQuery(queryUpdate: WorkItemTrackingInterfaces.QueryHierarchyItem, project: string, query: string, undeleteDescendants?: boolean): Promise<WorkItemTrackingInterfaces.QueryHierarchyItem>;
getQueriesBatch(queryGetRequest: WorkItemTrackingInterfaces.QueryBatchGetRequest, project: string): Promise<WorkItemTrackingInterfaces.QueryHierarchyItem[]>;
@ -1833,13 +1833,15 @@ export class WorkItemTrackingApi extends basem.ClientApiBase implements IWorkIte
* @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results.
* @param {number} depth - In the folder of queries, return child queries and folders to this depth.
* @param {boolean} includeDeleted - Include deleted queries and folders
* @param {boolean} useIsoDateFormat - DateTime query clauses will be formatted using a ISO 8601 compliant format
*/
public async getQuery(
project: string,
query: string,
expand?: WorkItemTrackingInterfaces.QueryExpand,
depth?: number,
includeDeleted?: boolean
includeDeleted?: boolean,
useIsoDateFormat?: boolean
): Promise<WorkItemTrackingInterfaces.QueryHierarchyItem> {
return new Promise<WorkItemTrackingInterfaces.QueryHierarchyItem>(async (resolve, reject) => {
@ -1852,6 +1854,7 @@ export class WorkItemTrackingApi extends basem.ClientApiBase implements IWorkIte
'$expand': expand,
'$depth': depth,
'$includeDeleted': includeDeleted,
'$useIsoDateFormat': useIsoDateFormat,
};
try {

Просмотреть файл

@ -732,6 +732,10 @@ export interface BuildDefinitionStep {
* The reference name for this step.
*/
refName?: string;
/**
* Number of retries.
*/
retryCountOnTaskFailure?: number;
/**
* The task associated with this step.
*/
@ -2036,9 +2040,12 @@ export interface MultipleAgentExecutionOptions extends AgentTargetExecutionOptio
maxConcurrency?: number;
}
/**
* Required information to create a new retention lease.
*/
export interface NewRetentionLease {
/**
* The number of days to consider the lease valid.
* The number of days to consider the lease valid. A retention lease valid for more than 100 years (36500 days) will display as retaining the build "forever".
*/
daysValid?: number;
/**
@ -2239,6 +2246,7 @@ export interface PullRequestTrigger extends BuildTrigger {
forks?: Forks;
isCommentRequiredForPullRequest?: boolean;
pathFilters?: string[];
requireCommentsForNonTeamMemberAndNonContributors?: boolean;
requireCommentsForNonTeamMembersOnly?: boolean;
settingsSourceType?: number;
}
@ -2365,6 +2373,10 @@ export interface RetentionLease {
* Non-unique string that identifies the owner of a retention lease.
*/
ownerId?: string;
/**
* If set, this lease will also prevent the pipeline from being deleted while the lease is still valid.
*/
protectPipeline?: boolean;
/**
* The pipeline run protected by this lease.
*/
@ -2375,6 +2387,20 @@ export interface RetentionLease {
validUntil?: Date;
}
/**
* An update to the retention parameters of a retention lease.
*/
export interface RetentionLeaseUpdate {
/**
* The number of days to consider the lease valid. A retention lease valid for more than 100 years (36500 days) will display as retaining the build "forever".
*/
daysValid?: number;
/**
* If set, this lease will also prevent the pipeline from being deleted while the lease is still valid.
*/
protectPipeline?: boolean;
}
/**
* Represents a retention policy for a build definition.
*/

Просмотреть файл

@ -12,6 +12,47 @@
/**
* Copy options of a Dashboard.
*/
export interface CopyDashboardOptions {
/**
* Dashboard Scope. Can be either Project or Project_Team
*/
copyDashboardScope: DashboardScope;
/**
* Description of the dashboard
*/
description?: string;
/**
* Name of the dashboard
*/
name?: string;
/**
* ID of the project. Provided by service at creation time.
*/
projectId: string;
/**
* Refresh interval of dashboard
*/
refreshInterval?: number;
/**
* ID of the team. Provided by service at creation time
*/
teamId?: string;
}
export interface CopyDashboardResponse {
/**
* Copied Dashboard
*/
copiedDashboard?: Dashboard;
/**
* Copy Dashboard options
*/
copyDashboardOptions: CopyDashboardOptions;
}
/**
* Model of a Dashboard.
*/
@ -356,6 +397,10 @@ export interface WidgetTypesResponse {
}
export var TypeInfo = {
CopyDashboardOptions: <any>{
},
CopyDashboardResponse: <any>{
},
Dashboard: <any>{
},
DashboardGroup: <any>{
@ -411,6 +456,21 @@ export var TypeInfo = {
},
};
TypeInfo.CopyDashboardOptions.fields = {
copyDashboardScope: {
enumType: TypeInfo.DashboardScope
}
};
TypeInfo.CopyDashboardResponse.fields = {
copiedDashboard: {
typeInfo: TypeInfo.Dashboard
},
copyDashboardOptions: {
typeInfo: TypeInfo.CopyDashboardOptions
}
};
TypeInfo.Dashboard.fields = {
dashboardScope: {
enumType: TypeInfo.DashboardScope

Просмотреть файл

@ -28,6 +28,7 @@ export interface ContainerItemBlobReference {
artifactId?: number;
compressionType?: BlobCompressionType;
scopeIdentifier?: string;
sessionId?: string;
}
/**

Просмотреть файл

@ -757,6 +757,14 @@ export enum ExtensionQueryFilterType {
* Filter to get extensions shared with particular organization
*/
OrganizationSharedWith = 21,
/**
* Filter to get VS IDE extensions by Product Architecture
*/
ProductArchitecture = 22,
/**
* Filter to get VS Code extensions by target platform.
*/
TargetPlatform = 23,
}
/**
@ -917,6 +925,7 @@ export interface FilterCriteria {
}
export interface InstallationTarget {
productArchitecture?: string;
target?: string;
targetVersion?: string;
}
@ -1105,6 +1114,9 @@ export enum PublishedExtensionFlags {
export interface Publisher extends PublisherBase {
_links?: any;
domain?: string;
isDnsTokenVerified?: boolean;
isDomainVerified?: boolean;
reCaptchaToken?: string;
}
@ -1129,7 +1141,9 @@ export interface PublisherBase {
*/
export interface PublisherFacts {
displayName?: string;
domain?: string;
flags?: PublisherFlags;
isDomainVerified?: boolean;
publisherId?: string;
publisherName?: string;
}
@ -1937,6 +1951,12 @@ export interface UserReportedConcern {
userId?: string;
}
export enum VSCodeWebExtensionStatisicsType {
Install = 1,
Update = 2,
Uninstall = 3,
}
export var TypeInfo = {
AcquisitionAssignmentType: {
enumValues: {
@ -2069,7 +2089,9 @@ export var TypeInfo = {
"publisherName": 18,
"publisherDisplayName": 19,
"includeWithPublisherFlags": 20,
"organizationSharedWith": 21
"organizationSharedWith": 21,
"productArchitecture": 22,
"targetPlatform": 23
}
},
ExtensionQueryFlags: {
@ -2313,6 +2335,13 @@ export var TypeInfo = {
},
UserReportedConcern: <any>{
},
VSCodeWebExtensionStatisicsType: {
enumValues: {
"install": 1,
"update": 2,
"uninstall": 3
}
},
};
TypeInfo.AcquisitionOperation.fields = {

Просмотреть файл

@ -1604,6 +1604,10 @@ export interface GitPullRequest {
* If this is a PR from a fork this will contain information about its source.
*/
forkSource?: GitForkRef;
/**
* Multiple mergebases warning
*/
hasMultipleMergeBases?: boolean;
/**
* Draft / WIP pull request.
*/

Просмотреть файл

@ -4073,6 +4073,10 @@ export interface WorkflowTask {
* Gets or sets the reference name of the task.
*/
refName?: string;
/**
* Gets or sets the task retryCount.
*/
retryCountOnTaskFailure?: number;
/**
* Gets or sets the ID of the task.
*/

Просмотреть файл

@ -1145,6 +1145,11 @@ export interface EnvironmentUpdateParameter {
export interface EventsConfig {
}
export enum ExclusiveLockType {
RunLatest = 0,
Sequential = 1,
}
export interface ExpressionValidationItem extends ValidationItem {
}
@ -1187,6 +1192,11 @@ export interface JobAssignedEvent extends JobEvent {
request?: TaskAgentJobRequest;
}
export interface JobCanceledEvent extends JobEvent {
reason?: string;
timeout?: any;
}
export interface JobCancelMessage {
jobId?: string;
timeout?: any;
@ -1544,6 +1554,10 @@ export interface ResourceLockRequest {
* The date/time this request was finished.
*/
finishTime?: Date;
/**
* The behavior this request should exhibit in relation to other lock requests
*/
lockType?: ExclusiveLockType;
/**
* Attempt of the graph node
*/
@ -1589,6 +1603,7 @@ export enum ResourceLockStatus {
TimedOut = 3,
Canceled = 4,
Abandoned = 5,
WaitingOnChecks = 6,
}
export interface ResourcesHubData {
@ -2113,6 +2128,7 @@ export interface TaskAgentJobStep {
id?: string;
inputs?: { [key: string] : string; };
name?: string;
retryCountOnTaskFailure?: number;
task?: TaskAgentJobTask;
timeoutInMinutes?: number;
type?: TaskAgentJobStepType;
@ -2993,6 +3009,10 @@ export interface TaskGroupStep {
* Gets or sets dictionary of inputs.
*/
inputs?: { [key: string] : string; };
/**
* Gets or sets the maximum number of retries
*/
retryCountOnTaskFailure?: number;
/**
* Gets or sets the reference of the task.
*/
@ -3108,6 +3128,7 @@ export interface TaskInstance extends TaskReference {
environment?: { [key: string] : string; };
instanceId?: string;
refName?: string;
retryCountOnTaskFailure?: number;
timeoutInMinutes?: number;
}
@ -3712,6 +3733,12 @@ export var TypeInfo = {
"kubernetes": 4
}
},
ExclusiveLockType: {
enumValues: {
"runLatest": 0,
"sequential": 1
}
},
Issue: <any>{
},
IssueType: {
@ -3794,7 +3821,8 @@ export var TypeInfo = {
"finished": 2,
"timedOut": 3,
"canceled": 4,
"abandoned": 5
"abandoned": 5,
"waitingOnChecks": 6
}
},
ResourceUsage: <any>{
@ -4421,6 +4449,9 @@ TypeInfo.ResourceLockRequest.fields = {
finishTime: {
isDate: true,
},
lockType: {
enumType: TypeInfo.ExclusiveLockType
},
queueTime: {
isDate: true,
},

Просмотреть файл

@ -729,7 +729,7 @@ export interface FailingSince {
*/
build?: BuildReference;
/**
* Time since failing.
* Time since failing(UTC).
*/
date: Date;
/**
@ -1512,7 +1512,7 @@ export interface ReleaseReference {
*/
attempt?: number;
/**
* Release Creation Date.
* Release Creation Date(UTC).
*/
creationDate?: Date;
/**
@ -1520,7 +1520,7 @@ export interface ReleaseReference {
*/
definitionId?: number;
/**
* Environment creation Date.
* Environment creation Date(UTC).
*/
environmentCreationDate?: Date;
/**
@ -2446,7 +2446,7 @@ export interface TestActionResult2 {
*/
export interface TestActionResultModel extends TestResultModelBase {
/**
* Path identifier test step in test case workitem.
* Path identifier for test step in test case workitem. Note: 1) It is represented in Hexadecimal format with 8 digits for a step. 2) Internally, the step ID value for first step starts with 2 so actionPath = 00000002 step 9, will have an ID = 10 and actionPath = 0000000a step 15, will have an ID =16 and actionPath = 00000010 3) actionPath of shared step is concatenated with the parent step of test case. Example, it would be something of type - 0000000300000001 where 00000003 denotes action path of test step and 00000001 denotes action path for shared step
*/
actionPath?: string;
/**
@ -2624,7 +2624,7 @@ export interface TestCaseResult {
*/
comment?: string;
/**
* Time when test execution completed. Completed date should be greater than StartedDate.
* Time when test execution completed(UTC). Completed date should be greater than StartedDate.
*/
completedDate?: Date;
/**
@ -2636,7 +2636,7 @@ export interface TestCaseResult {
*/
configuration?: ShallowReference;
/**
* Timestamp when test result created.
* Timestamp when test result created(UTC).
*/
createdDate?: Date;
/**
@ -2672,7 +2672,7 @@ export interface TestCaseResult {
*/
lastUpdatedBy?: VSSInterfaces.IdentityRef;
/**
* Last updated datetime of test result.
* Last updated datetime of test result(UTC).
*/
lastUpdatedDate?: Date;
/**
@ -2728,7 +2728,7 @@ export interface TestCaseResult {
*/
stackTrace?: string;
/**
* Time when test execution started.
* Time when test execution started(UTC).
*/
startedDate?: Date;
/**
@ -3057,7 +3057,7 @@ export interface TestIterationDetailsModel {
*/
comment?: string;
/**
* Time when execution completed.
* Time when execution completed(UTC).
*/
completedDate?: Date;
/**
@ -3081,7 +3081,7 @@ export interface TestIterationDetailsModel {
*/
parameters?: TestResultParameterModel[];
/**
* Time when execution started.
* Time when execution started(UTC).
*/
startedDate?: Date;
/**
@ -3947,7 +3947,7 @@ export interface TestResultModelBase {
*/
comment?: string;
/**
* Time when execution completed.
* Time when execution completed(UTC).
*/
completedDate?: Date;
/**
@ -3963,7 +3963,7 @@ export interface TestResultModelBase {
*/
outcome?: string;
/**
* Time when execution started.
* Time when execution started(UTC).
*/
startedDate?: Date;
}
@ -4823,7 +4823,7 @@ export interface TestSubResult {
*/
comment?: string;
/**
* Time when test execution completed.
* Time when test execution completed(UTC).
*/
completedDate?: Date;
/**
@ -4855,7 +4855,7 @@ export interface TestSubResult {
*/
id?: number;
/**
* Time when result last updated.
* Time when result last updated(UTC).
*/
lastUpdatedDate?: Date;
/**
@ -4879,7 +4879,7 @@ export interface TestSubResult {
*/
stackTrace?: string;
/**
* Time when test execution started.
* Time when test execution started(UTC).
*/
startedDate?: Date;
/**

Просмотреть файл

@ -457,6 +457,10 @@ export interface DeliveryViewData extends PlanViewData {
* All the team data
*/
teams?: TimelineTeamData[];
/**
* List of all work item ids that have a dependency but not a violation
*/
workItemDependencies?: number[];
/**
* List of all work item ids that have a violation
*/
@ -483,6 +487,10 @@ export interface DeliveryViewPropertyCollection {
* Card style settings
*/
styleSettings?: Rule[];
/**
* tag style settings
*/
tagStyleSettings?: Rule[];
/**
* Team backlog mappings
*/

2
package-lock.json сгенерированный
Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "azure-devops-node-api",
"version": "11.0.1",
"version": "11.1.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

Просмотреть файл

@ -1,7 +1,7 @@
{
"name": "azure-devops-node-api",
"description": "Node client for Azure DevOps and TFS REST APIs",
"version": "11.0.1",
"version": "11.1.0",
"main": "./WebApi.js",
"types": "./WebApi.d.ts",
"scripts": {

88
samples/package-lock.json сгенерированный
Просмотреть файл

@ -7,31 +7,89 @@
"azure-devops-node-api": {
"version": "file:../_build",
"requires": {
"os": "0.1.1",
"tunnel": "0.0.4",
"typed-rest-client": "1.0.9",
"underscore": "1.8.3"
"tunnel": "0.0.6",
"typed-rest-client": "^1.8.4"
},
"dependencies": {
"os": {
"version": "0.1.1",
"bundled": true
"call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"get-intrinsic": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1"
}
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"requires": {
"function-bind": "^1.1.1"
}
},
"has-symbols": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
},
"object-inspect": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
},
"qs": {
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
"integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
"requires": {
"side-channel": "^1.0.4"
}
},
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
}
},
"tunnel": {
"version": "0.0.4",
"bundled": true
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
},
"typed-rest-client": {
"version": "1.0.9",
"bundled": true,
"version": "1.8.6",
"resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.6.tgz",
"integrity": "sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA==",
"requires": {
"tunnel": "0.0.4",
"underscore": "1.8.3"
"qs": "^6.9.1",
"tunnel": "0.0.6",
"underscore": "^1.12.1"
}
},
"underscore": {
"version": "1.8.3",
"bundled": true
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz",
"integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g=="
}
}
}

18
test/package-lock.json сгенерированный
Просмотреть файл

@ -49,9 +49,9 @@
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
},
"object-inspect": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
"integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw=="
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
},
"qs": {
"version": "6.10.1",
@ -77,9 +77,9 @@
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
},
"typed-rest-client": {
"version": "1.8.4",
"resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz",
"integrity": "sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg==",
"version": "1.8.6",
"resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.6.tgz",
"integrity": "sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA==",
"requires": {
"qs": "^6.9.1",
"tunnel": "0.0.6",
@ -87,9 +87,9 @@
}
},
"underscore": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.0.tgz",
"integrity": "sha512-sCs4H3pCytsb5K7i072FAEC9YlSYFIbosvM0tAKAlpSSUgD7yC1iXSEGdl5XrDKQ1YUB+p/HDzYrSG2H2Vl36g=="
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz",
"integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g=="
}
}
}