import * as TfsCore from "../Core/Core"; import * as WebApi from "../WebApi/WebApi"; export interface AssociatedWorkItem { assignedTo: string; /** * Id of associated the work item. */ id: number; state: string; title: string; /** * REST Url of the work item. */ url: string; webUrl: string; workItemType: string; } export interface Change { /** * The type of change that was made to the item. */ changeType: VersionControlChangeType; /** * Current version. */ item: T; /** * Content of the item after the change. */ newContent: ItemContent; /** * Path of the item on the server. */ sourceServerItem: string; /** * URL to retrieve the item. */ url: string; } export interface CheckinNote { name: string; value: string; } export interface FileContentMetadata { contentType: string; encoding: number; extension: string; fileName: string; isBinary: boolean; isImage: boolean; vsLink: string; } export interface GitRepository { _links: any; /** * The timestamp when the repository was created. */ creationDate: Date; defaultBranch: string; id: string; /** * True if the repository is disabled. False otherwise. */ isDisabled: boolean; /** * True if the repository was created as a fork. */ isFork: boolean; /** * True if the repository is in maintenance. False otherwise. */ isInMaintenance: boolean; name: string; parentRepository: GitRepositoryRef; project: TfsCore.TeamProjectReference; remoteUrl: string; /** * Compressed size (bytes) of the repository. */ size: number; sshUrl: string; url: string; validRemoteUrls: string[]; webUrl: string; } export interface GitRepositoryRef { /** * Team Project Collection where this Fork resides */ collection: TfsCore.TeamProjectCollectionReference; id: string; /** * True if the repository was created as a fork */ isFork: boolean; name: string; project: TfsCore.TeamProjectReference; remoteUrl: string; sshUrl: string; url: string; } export interface ItemContent { content: string; contentType: ItemContentType; } export declare enum ItemContentType { RawText = 0, Base64Encoded = 1 } export interface ItemModel { _links: any; content: string; contentMetadata: FileContentMetadata; isFolder: boolean; isSymLink: boolean; path: string; url: string; } /** * Class representing a branch object. */ export interface TfvcBranch extends TfvcBranchRef { /** * List of children for the branch. */ children: TfvcBranch[]; /** * List of branch mappings. */ mappings: TfvcBranchMapping[]; /** * Path of the branch's parent. */ parent: TfvcShallowBranchRef; /** * List of paths of the related branches. */ relatedBranches: TfvcShallowBranchRef[]; } /** * A branch mapping. */ export interface TfvcBranchMapping { /** * Depth of the branch. */ depth: string; /** * Server item for the branch. */ serverItem: string; /** * Type of the branch. */ type: string; } /** * Metadata for a branchref. */ export interface TfvcBranchRef extends TfvcShallowBranchRef { /** * A collection of REST reference links. */ _links: any; /** * Creation date of the branch. */ createdDate: Date; /** * Branch description. */ description: string; /** * Is the branch deleted? */ isDeleted: boolean; /** * Alias or display name of user */ owner: WebApi.IdentityRef; /** * URL to retrieve the item. */ url: string; } /** * A change. */ export interface TfvcChange extends Change { /** * List of merge sources in case of rename or branch creation. */ mergeSources: TfvcMergeSource[]; /** * Version at which a (shelved) change was pended against */ pendingVersion: number; } /** * A collection of changes. */ export interface TfvcChangeset extends TfvcChangesetRef { /** * Changeset Account Id also known as Organization Id. */ accountId: string; /** * List of associated changes. */ changes: TfvcChange[]; /** * List of Checkin Notes for the changeset. */ checkinNotes: CheckinNote[]; /** * Changeset collection Id. */ collectionId: string; /** * True if more changes are available. */ hasMoreChanges: boolean; /** * Policy Override for the changeset. */ policyOverride: TfvcPolicyOverrideInfo; /** * Team Project Ids for the changeset. */ teamProjectIds: string[]; /** * List of work items associated with the changeset. */ workItems: AssociatedWorkItem[]; } /** * Metadata for a changeset. */ export interface TfvcChangesetRef { /** * A collection of REST reference links. */ _links: any; /** * Alias or display name of user. */ author: WebApi.IdentityRef; /** * Changeset Id. */ changesetId: number; /** * Alias or display name of user. */ checkedInBy: WebApi.IdentityRef; /** * Comment for the changeset. */ comment: string; /** * Was the Comment result truncated? */ commentTruncated: boolean; /** * Creation date of the changeset. */ createdDate: Date; /** * URL to retrieve the item. */ url: string; } /** * Criteria used in a search for change lists. */ export interface TfvcChangesetSearchCriteria { /** * Alias or display name of user who made the changes. */ author: string; /** * Whether or not to follow renames for the given item being queried. */ followRenames: boolean; /** * If provided, only include changesets created after this date (string). */ fromDate: string; /** * If provided, only include changesets after this changesetID. */ fromId: number; /** * Whether to include the _links field on the shallow references. */ includeLinks: boolean; /** * Path of item to search under. */ itemPath: string; mappings: TfvcMappingFilter[]; /** * If provided, only include changesets created before this date (string). */ toDate: string; /** * If provided, a version descriptor for the latest change list to include. */ toId: number; } /** * Request body for Get batched changesets. */ export interface TfvcChangesetsRequestData { /** * List of changeset Ids. */ changesetIds: number[]; /** * Max length of the comment. */ commentLength: number; /** * Whether to include the _links field on the shallow references */ includeLinks: boolean; } /** * Metadata for an item. */ export interface TfvcItem extends ItemModel { /** * Item changed datetime. */ changeDate: Date; /** * Greater than 0 if item is deleted. */ deletionId: number; /** * File encoding from database, -1 represents binary. */ encoding: number; /** * MD5 hash as a base 64 string, applies to files only. */ hashValue: string; /** * True if item is a branch. */ isBranch: boolean; /** * True if there is a change pending. */ isPendingChange: boolean; /** * The size of the file, if applicable. */ size: number; /** * Changeset version Id. */ version: number; } /** * Item path and Version descriptor properties */ export interface TfvcItemDescriptor { /** * Item path. */ path: string; /** * Defaults to OneLevel. */ recursionLevel: VersionControlRecursionType; /** * Specify the desired version, can be null or empty string only if VersionType is latest or tip. */ version: string; /** * Defaults to None. */ versionOption: TfvcVersionOption; /** * Defaults to Latest. */ versionType: TfvcVersionType; } /** * Request body used by Get Items Batch */ export interface TfvcItemRequestData { /** * If true, include metadata about the file type */ includeContentMetadata: boolean; /** * Whether to include the _links field on the shallow references */ includeLinks: boolean; itemDescriptors: TfvcItemDescriptor[]; } /** * Metadata for a label. */ export interface TfvcLabel extends TfvcLabelRef { /** * List of items. */ items: TfvcItem[]; } /** * Metadata for a Label. */ export interface TfvcLabelRef { /** * Collection of reference links. */ _links: any; /** * Label description. */ description: string; /** * Label Id. */ id: number; /** * Label scope. */ labelScope: string; /** * Last modified datetime for the label. */ modifiedDate: Date; /** * Label name. */ name: string; /** * Label owner. */ owner: WebApi.IdentityRef; /** * Label Url. */ url: string; } export interface TfvcLabelRequestData { /** * Whether to include the _links field on the shallow references */ includeLinks: boolean; itemLabelFilter: string; labelScope: string; maxItemCount: number; name: string; owner: string; } /** * MappingFilter can be used to include or exclude specific paths. */ export interface TfvcMappingFilter { /** * True if ServerPath should be excluded. */ exclude: boolean; /** * Path to be included or excluded. */ serverPath: string; } export interface TfvcMergeSource { /** * Indicates if this a rename source. If false, it is a merge source. */ isRename: boolean; /** * The server item of the merge source. */ serverItem: string; /** * Start of the version range. */ versionFrom: number; /** * End of the version range. */ versionTo: number; } /** * Policy failure information. */ export interface TfvcPolicyFailureInfo { /** * Policy failure message. */ message: string; /** * Name of the policy that failed. */ policyName: string; } /** * Information on the policy override. */ export interface TfvcPolicyOverrideInfo { /** * Overidden policy comment. */ comment: string; /** * Information on the failed policy that was overridden. */ policyFailures: TfvcPolicyFailureInfo[]; } /** * This is the shallow branchref class. */ export interface TfvcShallowBranchRef { /** * Path for the branch. */ path: string; } /** * Metadata for a shelveset. */ export interface TfvcShelveset extends TfvcShelvesetRef { /** * List of changes. */ changes: TfvcChange[]; /** * List of checkin notes. */ notes: CheckinNote[]; /** * Policy override information if applicable. */ policyOverride: TfvcPolicyOverrideInfo; /** * List of associated workitems. */ workItems: AssociatedWorkItem[]; } /** * Metadata for a shallow shelveset. */ export interface TfvcShelvesetRef { /** * List of reference links for the shelveset. */ _links: any; /** * Shelveset comment. */ comment: string; /** * Shelveset comment truncated as applicable. */ commentTruncated: boolean; /** * Shelveset create date. */ createdDate: Date; /** * Shelveset Id. */ id: string; /** * Shelveset name. */ name: string; /** * Shelveset Owner. */ owner: WebApi.IdentityRef; /** * Shelveset Url. */ url: string; } export interface TfvcShelvesetRequestData { /** * Whether to include policyOverride and notes Only applies when requesting a single deep shelveset */ includeDetails: boolean; /** * Whether to include the _links field on the shallow references. Does not apply when requesting a single deep shelveset object. Links will always be included in the deep shelveset. */ includeLinks: boolean; /** * Whether to include workItems */ includeWorkItems: boolean; /** * Max number of changes to include */ maxChangeCount: number; /** * Max length of comment */ maxCommentLength: number; /** * Shelveset name */ name: string; /** * Owner's ID. Could be a name or a guid. */ owner: string; } export interface TfvcStatistics { /** * Id of the last changeset the stats are based on. */ changesetId: number; /** * Count of files at the requested scope. */ fileCountTotal: number; } /** * Version descriptor properties. */ export interface TfvcVersionDescriptor { /** * Version object. */ version: string; versionOption: TfvcVersionOption; versionType: TfvcVersionType; } /** * Options for Version handling. */ export declare enum TfvcVersionOption { /** * None. */ None = 0, /** * Return the previous version. */ Previous = 1, /** * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier. */ UseRename = 2 } /** * Type of Version object */ export declare enum TfvcVersionType { /** * Version is treated as a ChangesetId. */ None = 0, /** * Version is treated as a ChangesetId. */ Changeset = 1, /** * Version is treated as a Shelveset name and owner. */ Shelveset = 2, /** * Version is treated as a Change. */ Change = 3, /** * Version is treated as a Date. */ Date = 4, /** * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used. */ Latest = 5, /** * Version will be treated as a Tip, if no version is defined latest will be used. */ Tip = 6, /** * Version will be treated as a MergeSource. */ MergeSource = 7 } export declare enum VersionControlChangeType { None = 0, Add = 1, Edit = 2, Encoding = 4, Rename = 8, Delete = 16, Undelete = 32, Branch = 64, Merge = 128, Lock = 256, Rollback = 512, SourceRename = 1024, TargetRename = 2048, Property = 4096, All = 8191 } export interface VersionControlProjectInfo { defaultSourceControlType: TfsCore.SourceControlTypes; project: TfsCore.TeamProjectReference; supportsGit: boolean; supportsTFVC: boolean; } export declare enum VersionControlRecursionType { /** * Only return the specified item. */ None = 0, /** * Return the specified item and its direct children. */ OneLevel = 1, /** * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder. */ OneLevelPlusNestedEmptyFolders = 4, /** * Return specified item and all descendants */ Full = 120 }