UNPKG

112 kBTypeScriptView Raw
1import PolicyInterfaces = require("../interfaces/PolicyInterfaces");
2import TfsCoreInterfaces = require("../interfaces/CoreInterfaces");
3import VSSInterfaces = require("../interfaces/common/VSSInterfaces");
4export interface AdvSecEnablementStatus {
5 /**
6 * Enabled by VSID
7 */
8 changedById?: string;
9 /**
10 * Enabled changed on datetime
11 */
12 changedOnDate?: Date;
13 /**
14 * True if Dependabot is enabled for the repository, false if it is disabled.
15 */
16 dependabotEnabled?: boolean;
17 /**
18 * Enabled status 0 disabled, 1 enabled, Null never explicitly set, always whatever project is, ya this should probably be an enum somewhere
19 */
20 enabled?: boolean;
21 /**
22 * ProjectId
23 */
24 projectId?: string;
25 /**
26 * RepositoryId
27 */
28 repositoryId?: string;
29}
30export interface AdvSecEnablementUpdate {
31 /**
32 * New Dependabot status.
33 */
34 newDependabotStatus?: boolean;
35 /**
36 * New status
37 */
38 newStatus?: boolean;
39 /**
40 * ProjectId
41 */
42 projectId?: string;
43 /**
44 * RepositoryId Actual RepositoryId to Modify or Magic Repository Id "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF" for ALL Repositories for that project
45 */
46 repositoryId?: string;
47}
48export interface AssociatedWorkItem {
49 assignedTo?: string;
50 /**
51 * Id of associated the work item.
52 */
53 id?: number;
54 state?: string;
55 title?: string;
56 /**
57 * REST Url of the work item.
58 */
59 url?: string;
60 webUrl?: string;
61 workItemType?: string;
62}
63export interface AsyncGitOperationNotification {
64 operationId?: number;
65}
66export interface AsyncRefOperationCommitLevelEventNotification extends AsyncGitOperationNotification {
67 commitId?: string;
68}
69export interface AsyncRefOperationCompletedNotification extends AsyncGitOperationNotification {
70 newRefName?: string;
71}
72export interface AsyncRefOperationConflictNotification extends AsyncRefOperationCommitLevelEventNotification {
73}
74export interface AsyncRefOperationGeneralFailureNotification extends AsyncGitOperationNotification {
75}
76export interface AsyncRefOperationProgressNotification extends AsyncRefOperationCommitLevelEventNotification {
77 progress?: number;
78}
79export interface AsyncRefOperationTimeoutNotification extends AsyncGitOperationNotification {
80}
81/**
82 * Meta data for a file attached to an artifact.
83 */
84export interface Attachment {
85 /**
86 * Links to other related objects.
87 */
88 _links?: any;
89 /**
90 * The person that uploaded this attachment.
91 */
92 author?: VSSInterfaces.IdentityRef;
93 /**
94 * Content hash of on-disk representation of file content. Its calculated by the server by using SHA1 hash function.
95 */
96 contentHash?: string;
97 /**
98 * The time the attachment was uploaded.
99 */
100 createdDate?: Date;
101 /**
102 * The description of the attachment.
103 */
104 description?: string;
105 /**
106 * The display name of the attachment. Can't be null or empty.
107 */
108 displayName?: string;
109 /**
110 * Id of the attachment.
111 */
112 id?: number;
113 /**
114 * Extended properties.
115 */
116 properties?: any;
117 /**
118 * The url to download the content of the attachment.
119 */
120 url?: string;
121}
122/**
123 * Real time event (SignalR) for an auto-complete update on a pull request
124 */
125export interface AutoCompleteUpdatedEvent extends RealTimePullRequestEvent {
126}
127/**
128 * Used by AdvSec to return billable committers.
129 */
130export interface BillableCommitter {
131 /**
132 * RepositoryId commit was pushed to.
133 */
134 repoId?: string;
135 /**
136 * Visual Studio ID /Team Foundation ID
137 */
138 vSID?: string;
139}
140export interface BillableCommitterDetail extends BillableCommitter {
141 /**
142 * ID (SHA-1) of the commit.
143 */
144 commitId?: string;
145 /**
146 * Committer email address after parsing.
147 */
148 committerEmail?: string;
149 /**
150 * Time reported by the commit.
151 */
152 commitTime?: Date;
153 /**
154 * DisplayName of the Pusher.
155 */
156 displayName?: string;
157 /**
158 * MailNickName of the Pusher.
159 */
160 mailNickName?: string;
161 /**
162 * Project Id commit was pushed to.
163 */
164 projectId?: string;
165 /**
166 * Project name commit was pushed to.
167 */
168 projectName?: string;
169 /**
170 * Time of the push that contained the commit.
171 */
172 pushedTime?: Date;
173 /**
174 * Pusher Id for the push.
175 */
176 pusherId?: string;
177 /**
178 * Push Id that contained the commit.
179 */
180 pushId?: number;
181 /**
182 * Repository name commit was pushed to.
183 */
184 repoName?: string;
185 /**
186 * SamAccountName of the Pusher.
187 */
188 samAccountName?: string;
189}
190/**
191 * Used by AdvSec to estimate billable pushers for a Host or Project.
192 */
193export interface BillablePusher {
194 /**
195 * ProjectId that was pushed to.
196 */
197 projectId?: string;
198 /**
199 * RepositoryId that was pushed to.
200 */
201 repoId?: string;
202 /**
203 * Visual Studio ID /Team Foundation ID
204 */
205 vSID?: string;
206}
207/**
208 * Real time event (SignalR) for a source/target branch update on a pull request
209 */
210export interface BranchUpdatedEvent extends RealTimePullRequestEvent {
211 /**
212 * If true, the source branch of the pull request was updated
213 */
214 isSourceUpdate?: boolean;
215}
216export interface Change<T> {
217 /**
218 * The type of change that was made to the item.
219 */
220 changeType?: VersionControlChangeType;
221 /**
222 * Current version.
223 */
224 item?: T;
225 /**
226 * Content of the item after the change.
227 */
228 newContent?: ItemContent;
229 /**
230 * Path of the item on the server.
231 */
232 sourceServerItem?: string;
233 /**
234 * URL to retrieve the item.
235 */
236 url?: string;
237}
238export interface ChangeCountDictionary {
239}
240export interface ChangeList<T> {
241 allChangesIncluded?: boolean;
242 changeCounts?: {
243 [key: number]: number;
244 };
245 changes?: Change<T>[];
246 comment?: string;
247 commentTruncated?: boolean;
248 creationDate?: Date;
249 notes?: CheckinNote[];
250 owner?: string;
251 ownerDisplayName?: string;
252 ownerId?: string;
253 sortDate?: Date;
254 version?: string;
255}
256/**
257 * Criteria used in a search for change lists
258 */
259export interface ChangeListSearchCriteria {
260 /**
261 * If provided, a version descriptor to compare against base
262 */
263 compareVersion?: string;
264 /**
265 * If true, don't include delete history entries
266 */
267 excludeDeletes?: boolean;
268 /**
269 * Whether or not to follow renames for the given item being queried
270 */
271 followRenames?: boolean;
272 /**
273 * If provided, only include history entries created after this date (string)
274 */
275 fromDate?: string;
276 /**
277 * If provided, a version descriptor for the earliest change list to include
278 */
279 fromVersion?: string;
280 /**
281 * Path of item to search under. If the itemPaths memebr is used then it will take precedence over this.
282 */
283 itemPath?: string;
284 /**
285 * List of item paths to search under. If this member is used then itemPath will be ignored.
286 */
287 itemPaths?: string[];
288 /**
289 * Version of the items to search
290 */
291 itemVersion?: string;
292 /**
293 * Number of results to skip (used when clicking more...)
294 */
295 skip?: number;
296 /**
297 * If provided, only include history entries created before this date (string)
298 */
299 toDate?: string;
300 /**
301 * If provided, the maximum number of history entries to return
302 */
303 top?: number;
304 /**
305 * If provided, a version descriptor for the latest change list to include
306 */
307 toVersion?: string;
308 /**
309 * Alias or display name of user who made the changes
310 */
311 user?: string;
312}
313export interface CheckinNote {
314 name?: string;
315 value?: string;
316}
317/**
318 * Represents a comment which is one of potentially many in a comment thread.
319 */
320export interface Comment {
321 /**
322 * Links to other related objects.
323 */
324 _links?: any;
325 /**
326 * The author of the comment.
327 */
328 author?: VSSInterfaces.IdentityRef;
329 /**
330 * The comment type at the time of creation.
331 */
332 commentType?: CommentType;
333 /**
334 * The comment content.
335 */
336 content?: string;
337 /**
338 * The comment ID. IDs start at 1 and are unique to a pull request.
339 */
340 id?: number;
341 /**
342 * Whether or not this comment was soft-deleted.
343 */
344 isDeleted?: boolean;
345 /**
346 * The date the comment's content was last updated.
347 */
348 lastContentUpdatedDate?: Date;
349 /**
350 * The date the comment was last updated.
351 */
352 lastUpdatedDate?: Date;
353 /**
354 * The ID of the parent comment. This is used for replies.
355 */
356 parentCommentId?: number;
357 /**
358 * The date the comment was first published.
359 */
360 publishedDate?: Date;
361 /**
362 * A list of the users who have liked this comment.
363 */
364 usersLiked?: VSSInterfaces.IdentityRef[];
365}
366/**
367 * Comment iteration context is used to identify which diff was being viewed when the thread was created.
368 */
369export interface CommentIterationContext {
370 /**
371 * The iteration of the file on the left side of the diff when the thread was created. If this value is equal to SecondComparingIteration, then this version is the common commit between the source and target branches of the pull request.
372 */
373 firstComparingIteration?: number;
374 /**
375 * The iteration of the file on the right side of the diff when the thread was created.
376 */
377 secondComparingIteration?: number;
378}
379export interface CommentPosition {
380 /**
381 * The line number of a thread's position. Starts at 1.
382 */
383 line?: number;
384 /**
385 * The character offset of a thread's position inside of a line. Starts at 1.
386 */
387 offset?: number;
388}
389/**
390 * Represents a comment thread of a pull request. A thread contains meta data about the file it was left on along with one or more comments (an initial comment and the subsequent replies).
391 */
392export interface CommentThread {
393 /**
394 * Links to other related objects.
395 */
396 _links?: any;
397 /**
398 * A list of the comments.
399 */
400 comments?: Comment[];
401 /**
402 * The comment thread id.
403 */
404 id?: number;
405 /**
406 * Set of identities related to this thread
407 */
408 identities?: {
409 [key: string]: VSSInterfaces.IdentityRef;
410 };
411 /**
412 * Specify if the thread is deleted which happens when all comments are deleted.
413 */
414 isDeleted?: boolean;
415 /**
416 * The time this thread was last updated.
417 */
418 lastUpdatedDate?: Date;
419 /**
420 * Optional properties associated with the thread as a collection of key-value pairs.
421 */
422 properties?: any;
423 /**
424 * The time this thread was published.
425 */
426 publishedDate?: Date;
427 /**
428 * The status of the comment thread.
429 */
430 status?: CommentThreadStatus;
431 /**
432 * Specify thread context such as position in left/right file.
433 */
434 threadContext?: CommentThreadContext;
435}
436export interface CommentThreadContext {
437 /**
438 * File path relative to the root of the repository. It's up to the client to use any path format.
439 */
440 filePath?: string;
441 /**
442 * Position of last character of the thread's span in left file.
443 */
444 leftFileEnd?: CommentPosition;
445 /**
446 * Position of first character of the thread's span in left file.
447 */
448 leftFileStart?: CommentPosition;
449 /**
450 * Position of last character of the thread's span in right file.
451 */
452 rightFileEnd?: CommentPosition;
453 /**
454 * Position of first character of the thread's span in right file.
455 */
456 rightFileStart?: CommentPosition;
457}
458/**
459 * The status of a comment thread.
460 */
461export declare enum CommentThreadStatus {
462 /**
463 * The thread status is unknown.
464 */
465 Unknown = 0,
466 /**
467 * The thread status is active.
468 */
469 Active = 1,
470 /**
471 * The thread status is resolved as fixed.
472 */
473 Fixed = 2,
474 /**
475 * The thread status is resolved as won't fix.
476 */
477 WontFix = 3,
478 /**
479 * The thread status is closed.
480 */
481 Closed = 4,
482 /**
483 * The thread status is resolved as by design.
484 */
485 ByDesign = 5,
486 /**
487 * The thread status is pending.
488 */
489 Pending = 6
490}
491/**
492 * Comment tracking criteria is used to identify which iteration context the thread has been tracked to (if any) along with some detail about the original position and filename.
493 */
494export interface CommentTrackingCriteria {
495 /**
496 * The iteration of the file on the left side of the diff that the thread will be tracked to. Threads were tracked if this is greater than 0.
497 */
498 firstComparingIteration?: number;
499 /**
500 * Original filepath the thread was created on before tracking. This will be different than the current thread filepath if the file in question was renamed in a later iteration.
501 */
502 origFilePath?: string;
503 /**
504 * Original position of last character of the thread's span in left file.
505 */
506 origLeftFileEnd?: CommentPosition;
507 /**
508 * Original position of first character of the thread's span in left file.
509 */
510 origLeftFileStart?: CommentPosition;
511 /**
512 * Original position of last character of the thread's span in right file.
513 */
514 origRightFileEnd?: CommentPosition;
515 /**
516 * Original position of first character of the thread's span in right file.
517 */
518 origRightFileStart?: CommentPosition;
519 /**
520 * The iteration of the file on the right side of the diff that the thread will be tracked to. Threads were tracked if this is greater than 0.
521 */
522 secondComparingIteration?: number;
523}
524/**
525 * The type of a comment.
526 */
527export declare enum CommentType {
528 /**
529 * The comment type is not known.
530 */
531 Unknown = 0,
532 /**
533 * This is a regular user comment.
534 */
535 Text = 1,
536 /**
537 * The comment comes as a result of a code change.
538 */
539 CodeChange = 2,
540 /**
541 * The comment represents a system message.
542 */
543 System = 3
544}
545/**
546 * Real time event (SignalR) for a completion errors on a pull request
547 */
548export interface CompletionErrorsEvent extends RealTimePullRequestEvent {
549 /**
550 * The error message associated with the completion error
551 */
552 errorMessage?: string;
553}
554/**
555 * Real time event (SignalR) for a discussions update on a pull request
556 */
557export interface DiscussionsUpdatedEvent extends RealTimePullRequestEvent {
558}
559export interface FileContentMetadata {
560 contentType?: string;
561 encoding?: number;
562 extension?: string;
563 fileName?: string;
564 isBinary?: boolean;
565 isImage?: boolean;
566 vsLink?: string;
567}
568/**
569 * Provides properties that describe file differences
570 */
571export interface FileDiff {
572 /**
573 * The collection of line diff blocks
574 */
575 lineDiffBlocks?: LineDiffBlock[];
576 /**
577 * Original path of item if different from current path.
578 */
579 originalPath?: string;
580 /**
581 * Current path of item
582 */
583 path?: string;
584}
585/**
586 * Provides parameters that describe inputs for the file diff
587 */
588export interface FileDiffParams {
589 /**
590 * Original path of the file
591 */
592 originalPath?: string;
593 /**
594 * Current path of the file
595 */
596 path?: string;
597}
598/**
599 * Provides properties that describe inputs for the file diffs
600 */
601export interface FileDiffsCriteria {
602 /**
603 * Commit ID of the base version
604 */
605 baseVersionCommit?: string;
606 /**
607 * List of parameters for each of the files for which we need to get the file diff
608 */
609 fileDiffParams?: FileDiffParams[];
610 /**
611 * Commit ID of the target version
612 */
613 targetVersionCommit?: string;
614}
615/**
616 * A Git annotated tag.
617 */
618export interface GitAnnotatedTag {
619 /**
620 * The tagging Message
621 */
622 message?: string;
623 /**
624 * The name of the annotated tag.
625 */
626 name?: string;
627 /**
628 * The objectId (Sha1Id) of the tag.
629 */
630 objectId?: string;
631 /**
632 * User info and date of tagging.
633 */
634 taggedBy?: GitUserDate;
635 /**
636 * Tagged git object.
637 */
638 taggedObject?: GitObject;
639 url?: string;
640}
641/**
642 * Current status of the asynchronous operation.
643 */
644export declare enum GitAsyncOperationStatus {
645 /**
646 * The operation is waiting in a queue and has not yet started.
647 */
648 Queued = 1,
649 /**
650 * The operation is currently in progress.
651 */
652 InProgress = 2,
653 /**
654 * The operation has completed.
655 */
656 Completed = 3,
657 /**
658 * The operation has failed. Check for an error message.
659 */
660 Failed = 4,
661 /**
662 * The operation has been abandoned.
663 */
664 Abandoned = 5
665}
666export interface GitAsyncRefOperation {
667 _links?: any;
668 detailedStatus?: GitAsyncRefOperationDetail;
669 parameters?: GitAsyncRefOperationParameters;
670 status?: GitAsyncOperationStatus;
671 /**
672 * A URL that can be used to make further requests for status about the operation
673 */
674 url?: string;
675}
676/**
677 * Information about the progress of a cherry pick or revert operation.
678 */
679export interface GitAsyncRefOperationDetail {
680 /**
681 * Indicates if there was a conflict generated when trying to cherry pick or revert the changes.
682 */
683 conflict?: boolean;
684 /**
685 * The current commit from the list of commits that are being cherry picked or reverted.
686 */
687 currentCommitId?: string;
688 /**
689 * Detailed information about why the cherry pick or revert failed to complete.
690 */
691 failureMessage?: string;
692 /**
693 * A number between 0 and 1 indicating the percent complete of the operation.
694 */
695 progress?: number;
696 /**
697 * Provides a status code that indicates the reason the cherry pick or revert failed.
698 */
699 status?: GitAsyncRefOperationFailureStatus;
700 /**
701 * Indicates if the operation went beyond the maximum time allowed for a cherry pick or revert operation.
702 */
703 timedout?: boolean;
704}
705export declare enum GitAsyncRefOperationFailureStatus {
706 /**
707 * No status
708 */
709 None = 0,
710 /**
711 * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid.
712 */
713 InvalidRefName = 1,
714 /**
715 * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name.
716 */
717 RefNameConflict = 2,
718 /**
719 * The ref update request could not be completed because the user lacks the permission to create a branch
720 */
721 CreateBranchPermissionRequired = 3,
722 /**
723 * The ref update request could not be completed because the user lacks write permissions required to write this ref
724 */
725 WritePermissionRequired = 4,
726 /**
727 * Target branch was deleted after Git async operation started
728 */
729 TargetBranchDeleted = 5,
730 /**
731 * Git object is too large to materialize into memory
732 */
733 GitObjectTooLarge = 6,
734 /**
735 * Identity who authorized the operation was not found
736 */
737 OperationIndentityNotFound = 7,
738 /**
739 * Async operation was not found
740 */
741 AsyncOperationNotFound = 8,
742 /**
743 * Unexpected failure
744 */
745 Other = 9,
746 /**
747 * Initiator of async operation has signature with empty name or email
748 */
749 EmptyCommitterSignature = 10
750}
751/**
752 * Parameters that are provided in the request body when requesting to cherry pick or revert.
753 */
754export interface GitAsyncRefOperationParameters {
755 /**
756 * Proposed target branch name for the cherry pick or revert operation.
757 */
758 generatedRefName?: string;
759 /**
760 * The target branch for the cherry pick or revert operation.
761 */
762 ontoRefName?: string;
763 /**
764 * The git repository for the cherry pick or revert operation.
765 */
766 repository?: GitRepository;
767 /**
768 * Details about the source of the cherry pick or revert operation (e.g. A pull request or a specific commit).
769 */
770 source?: GitAsyncRefOperationSource;
771}
772/**
773 * GitAsyncRefOperationSource specifies the pull request or list of commits to use when making a cherry pick and revert operation request. Only one should be provided.
774 */
775export interface GitAsyncRefOperationSource {
776 /**
777 * A list of commits to cherry pick or revert
778 */
779 commitList?: GitCommitRef[];
780 /**
781 * Id of the pull request to cherry pick or revert
782 */
783 pullRequestId?: number;
784}
785export interface GitBaseVersionDescriptor extends GitVersionDescriptor {
786 /**
787 * Version string identifier (name of tag/branch, SHA1 of commit)
788 */
789 baseVersion?: string;
790 /**
791 * Version options - Specify additional modifiers to version (e.g Previous)
792 */
793 baseVersionOptions?: GitVersionOptions;
794 /**
795 * Version type (branch, tag, or commit). Determines how Id is interpreted
796 */
797 baseVersionType?: GitVersionType;
798}
799export interface GitBlobRef {
800 _links?: any;
801 /**
802 * SHA1 hash of git object
803 */
804 objectId?: string;
805 /**
806 * Size of blob content (in bytes)
807 */
808 size?: number;
809 url?: string;
810}
811/**
812 * Ahead and behind counts for a particular ref.
813 */
814export interface GitBranchStats {
815 /**
816 * Number of commits ahead.
817 */
818 aheadCount?: number;
819 /**
820 * Number of commits behind.
821 */
822 behindCount?: number;
823 /**
824 * Current commit.
825 */
826 commit?: GitCommitRef;
827 /**
828 * True if this is the result for the base version.
829 */
830 isBaseVersion?: boolean;
831 /**
832 * Name of the ref.
833 */
834 name?: string;
835}
836export interface GitChange extends Change<GitItem> {
837 /**
838 * ID of the change within the group of changes.
839 */
840 changeId?: number;
841 /**
842 * New Content template to be used when pushing new changes.
843 */
844 newContentTemplate?: GitTemplate;
845 /**
846 * Original path of item if different from current path.
847 */
848 originalPath?: string;
849}
850/**
851 * This object is returned from Cherry Pick operations and provides the id and status of the operation
852 */
853export interface GitCherryPick extends GitAsyncRefOperation {
854 cherryPickId?: number;
855}
856export interface GitCommit extends GitCommitRef {
857 treeId?: string;
858}
859export interface GitCommitChanges {
860 changeCounts?: ChangeCountDictionary;
861 changes?: GitChange[];
862}
863export interface GitCommitDiffs {
864 aheadCount?: number;
865 allChangesIncluded?: boolean;
866 baseCommit?: string;
867 behindCount?: number;
868 changeCounts?: {
869 [key: number]: number;
870 };
871 changes?: GitChange[];
872 commonCommit?: string;
873 targetCommit?: string;
874}
875/**
876 * Provides properties that describe a Git commit and associated metadata.
877 */
878export interface GitCommitRef {
879 /**
880 * A collection of related REST reference links.
881 */
882 _links?: any;
883 /**
884 * Author of the commit.
885 */
886 author?: GitUserDate;
887 /**
888 * Counts of the types of changes (edits, deletes, etc.) included with the commit.
889 */
890 changeCounts?: ChangeCountDictionary;
891 /**
892 * An enumeration of the changes included with the commit.
893 */
894 changes?: GitChange[];
895 /**
896 * Comment or message of the commit.
897 */
898 comment?: string;
899 /**
900 * Indicates if the comment is truncated from the full Git commit comment message.
901 */
902 commentTruncated?: boolean;
903 /**
904 * ID (SHA-1) of the commit.
905 */
906 commitId?: string;
907 /**
908 * Committer of the commit.
909 */
910 committer?: GitUserDate;
911 /**
912 * Indicates that commit contains too many changes to be displayed
913 */
914 commitTooManyChanges?: boolean;
915 /**
916 * An enumeration of the parent commit IDs for this commit.
917 */
918 parents?: string[];
919 /**
920 * The push associated with this commit.
921 */
922 push?: GitPushRef;
923 /**
924 * Remote URL path to the commit.
925 */
926 remoteUrl?: string;
927 /**
928 * A list of status metadata from services and extensions that may associate additional information to the commit.
929 */
930 statuses?: GitStatus[];
931 /**
932 * REST URL for this resource.
933 */
934 url?: string;
935 /**
936 * A list of workitems associated with this commit.
937 */
938 workItems?: VSSInterfaces.ResourceRef[];
939}
940export interface GitCommitToCreate {
941 baseRef?: GitRef;
942 comment?: string;
943 pathActions?: GitPathAction[];
944}
945export interface GitConflict {
946 _links?: any;
947 conflictId?: number;
948 conflictPath?: string;
949 conflictType?: GitConflictType;
950 mergeBaseCommit?: GitCommitRef;
951 mergeOrigin?: GitMergeOriginRef;
952 mergeSourceCommit?: GitCommitRef;
953 mergeTargetCommit?: GitCommitRef;
954 resolutionError?: GitResolutionError;
955 resolutionStatus?: GitResolutionStatus;
956 resolvedBy?: VSSInterfaces.IdentityRef;
957 resolvedDate?: Date;
958 url?: string;
959}
960/**
961 * Data object for AddAdd conflict
962 */
963export interface GitConflictAddAdd extends GitConflict {
964 resolution?: GitResolutionMergeContent;
965 sourceBlob?: GitBlobRef;
966 targetBlob?: GitBlobRef;
967}
968/**
969 * Data object for RenameAdd conflict
970 */
971export interface GitConflictAddRename extends GitConflict {
972 baseBlob?: GitBlobRef;
973 resolution?: GitResolutionPathConflict;
974 sourceBlob?: GitBlobRef;
975 targetBlob?: GitBlobRef;
976 targetOriginalPath?: string;
977}
978/**
979 * Data object for EditDelete conflict
980 */
981export interface GitConflictDeleteEdit extends GitConflict {
982 baseBlob?: GitBlobRef;
983 resolution?: GitResolutionPickOneAction;
984 targetBlob?: GitBlobRef;
985}
986/**
987 * Data object for RenameDelete conflict
988 */
989export interface GitConflictDeleteRename extends GitConflict {
990 baseBlob?: GitBlobRef;
991 resolution?: GitResolutionPickOneAction;
992 targetBlob?: GitBlobRef;
993 targetNewPath?: string;
994}
995/**
996 * Data object for FileDirectory conflict
997 */
998export interface GitConflictDirectoryFile extends GitConflict {
999 resolution?: GitResolutionPathConflict;
1000 sourceTree?: GitTreeRef;
1001 targetBlob?: GitBlobRef;
1002}
1003/**
1004 * Data object for DeleteEdit conflict
1005 */
1006export interface GitConflictEditDelete extends GitConflict {
1007 baseBlob?: GitBlobRef;
1008 resolution?: GitResolutionPickOneAction;
1009 sourceBlob?: GitBlobRef;
1010}
1011/**
1012 * Data object for EditEdit conflict
1013 */
1014export interface GitConflictEditEdit extends GitConflict {
1015 baseBlob?: GitBlobRef;
1016 resolution?: GitResolutionMergeContent;
1017 sourceBlob?: GitBlobRef;
1018 targetBlob?: GitBlobRef;
1019}
1020/**
1021 * Data object for DirectoryFile conflict
1022 */
1023export interface GitConflictFileDirectory extends GitConflict {
1024 resolution?: GitResolutionPathConflict;
1025 sourceBlob?: GitBlobRef;
1026 targetTree?: GitTreeRef;
1027}
1028/**
1029 * Data object for Rename1to2 conflict
1030 */
1031export interface GitConflictRename1to2 extends GitConflict {
1032 baseBlob?: GitBlobRef;
1033 resolution?: GitResolutionRename1to2;
1034 sourceBlob?: GitBlobRef;
1035 sourceNewPath?: string;
1036 targetBlob?: GitBlobRef;
1037 targetNewPath?: string;
1038}
1039/**
1040 * Data object for Rename2to1 conflict
1041 */
1042export interface GitConflictRename2to1 extends GitConflict {
1043 resolution?: GitResolutionPathConflict;
1044 sourceNewBlob?: GitBlobRef;
1045 sourceOriginalBlob?: GitBlobRef;
1046 sourceOriginalPath?: string;
1047 targetNewBlob?: GitBlobRef;
1048 targetOriginalBlob?: GitBlobRef;
1049 targetOriginalPath?: string;
1050}
1051/**
1052 * Data object for AddRename conflict
1053 */
1054export interface GitConflictRenameAdd extends GitConflict {
1055 baseBlob?: GitBlobRef;
1056 resolution?: GitResolutionPathConflict;
1057 sourceBlob?: GitBlobRef;
1058 sourceOriginalPath?: string;
1059 targetBlob?: GitBlobRef;
1060}
1061/**
1062 * Data object for DeleteRename conflict
1063 */
1064export interface GitConflictRenameDelete extends GitConflict {
1065 baseBlob?: GitBlobRef;
1066 resolution?: GitResolutionPickOneAction;
1067 sourceBlob?: GitBlobRef;
1068 sourceNewPath?: string;
1069}
1070/**
1071 * Data object for RenameRename conflict
1072 */
1073export interface GitConflictRenameRename extends GitConflict {
1074 baseBlob?: GitBlobRef;
1075 originalPath?: string;
1076 resolution?: GitResolutionMergeContent;
1077 sourceBlob?: GitBlobRef;
1078 targetBlob?: GitBlobRef;
1079}
1080/**
1081 * The type of a merge conflict.
1082 */
1083export declare enum GitConflictType {
1084 /**
1085 * No conflict
1086 */
1087 None = 0,
1088 /**
1089 * Added on source and target; content differs
1090 */
1091 AddAdd = 1,
1092 /**
1093 * Added on source and rename destination on target
1094 */
1095 AddRename = 2,
1096 /**
1097 * Deleted on source and edited on target
1098 */
1099 DeleteEdit = 3,
1100 /**
1101 * Deleted on source and renamed on target
1102 */
1103 DeleteRename = 4,
1104 /**
1105 * Path is a directory on source and a file on target
1106 */
1107 DirectoryFile = 5,
1108 /**
1109 * Children of directory which has DirectoryFile or FileDirectory conflict
1110 */
1111 DirectoryChild = 6,
1112 /**
1113 * Edited on source and deleted on target
1114 */
1115 EditDelete = 7,
1116 /**
1117 * Edited on source and target; content differs
1118 */
1119 EditEdit = 8,
1120 /**
1121 * Path is a file on source and a directory on target
1122 */
1123 FileDirectory = 9,
1124 /**
1125 * Same file renamed on both source and target; destination paths differ
1126 */
1127 Rename1to2 = 10,
1128 /**
1129 * Different files renamed to same destination path on both source and target
1130 */
1131 Rename2to1 = 11,
1132 /**
1133 * Rename destination on source and new file on target
1134 */
1135 RenameAdd = 12,
1136 /**
1137 * Renamed on source and deleted on target
1138 */
1139 RenameDelete = 13,
1140 /**
1141 * Rename destination on both source and target; content differs
1142 */
1143 RenameRename = 14
1144}
1145export interface GitConflictUpdateResult {
1146 /**
1147 * Conflict ID that was provided by input
1148 */
1149 conflictId?: number;
1150 /**
1151 * Reason for failing
1152 */
1153 customMessage?: string;
1154 /**
1155 * New state of the conflict after updating
1156 */
1157 updatedConflict?: GitConflict;
1158 /**
1159 * Status of the update on the server
1160 */
1161 updateStatus?: GitConflictUpdateStatus;
1162}
1163/**
1164 * Represents the possible outcomes from a request to update a pull request conflict
1165 */
1166export declare enum GitConflictUpdateStatus {
1167 /**
1168 * Indicates that pull request conflict update request was completed successfully
1169 */
1170 Succeeded = 0,
1171 /**
1172 * Indicates that the update request did not fit the expected data contract
1173 */
1174 BadRequest = 1,
1175 /**
1176 * Indicates that the requested resolution was not valid
1177 */
1178 InvalidResolution = 2,
1179 /**
1180 * Indicates that the conflict in the update request was not a supported conflict type
1181 */
1182 UnsupportedConflictType = 3,
1183 /**
1184 * Indicates that the conflict could not be found
1185 */
1186 NotFound = 4
1187}
1188export interface GitDeletedRepository {
1189 createdDate?: Date;
1190 deletedBy?: VSSInterfaces.IdentityRef;
1191 deletedDate?: Date;
1192 id?: string;
1193 name?: string;
1194 project?: TfsCoreInterfaces.TeamProjectReference;
1195}
1196export interface GitFilePathsCollection {
1197 commitId?: string;
1198 paths?: string[];
1199 url?: string;
1200}
1201/**
1202 * Status information about a requested fork operation.
1203 */
1204export interface GitForkOperationStatusDetail {
1205 /**
1206 * All valid steps for the forking process
1207 */
1208 allSteps?: string[];
1209 /**
1210 * Index into AllSteps for the current step
1211 */
1212 currentStep?: number;
1213 /**
1214 * Error message if the operation failed.
1215 */
1216 errorMessage?: string;
1217}
1218/**
1219 * Information about a fork ref.
1220 */
1221export interface GitForkRef extends GitRef {
1222 /**
1223 * The repository ID of the fork.
1224 */
1225 repository?: GitRepository;
1226}
1227/**
1228 * Request to sync data between two forks.
1229 */
1230export interface GitForkSyncRequest {
1231 /**
1232 * Collection of related links
1233 */
1234 _links?: any;
1235 detailedStatus?: GitForkOperationStatusDetail;
1236 /**
1237 * Unique identifier for the operation.
1238 */
1239 operationId?: number;
1240 /**
1241 * Fully-qualified identifier for the source repository.
1242 */
1243 source: GlobalGitRepositoryKey;
1244 /**
1245 * If supplied, the set of ref mappings to use when performing a "sync" or create. If missing, all refs will be synchronized.
1246 */
1247 sourceToTargetRefs?: SourceToTargetRef[];
1248 status?: GitAsyncOperationStatus;
1249}
1250/**
1251 * Parameters for creating a fork request
1252 */
1253export interface GitForkSyncRequestParameters {
1254 /**
1255 * Fully-qualified identifier for the source repository.
1256 */
1257 source: GlobalGitRepositoryKey;
1258 /**
1259 * If supplied, the set of ref mappings to use when performing a "sync" or create. If missing, all refs will be synchronized.
1260 */
1261 sourceToTargetRefs?: SourceToTargetRef[];
1262}
1263export interface GitForkTeamProjectReference extends TfsCoreInterfaces.TeamProjectReference {
1264}
1265/**
1266 * Accepted types of version
1267 */
1268export declare enum GitHistoryMode {
1269 /**
1270 * The history mode used by `git log`. This is the default.
1271 */
1272 SimplifiedHistory = 0,
1273 /**
1274 * The history mode used by `git log --first-parent`
1275 */
1276 FirstParent = 1,
1277 /**
1278 * The history mode used by `git log --full-history`
1279 */
1280 FullHistory = 2,
1281 /**
1282 * The history mode used by `git log --full-history --simplify-merges`
1283 */
1284 FullHistorySimplifyMerges = 3
1285}
1286export interface GitImportFailedEvent {
1287 sourceRepositoryName?: string;
1288 targetRepository?: GitRepository;
1289}
1290/**
1291 * Parameter for creating a git import request when source is Git version control
1292 */
1293export interface GitImportGitSource {
1294 /**
1295 * Tells if this is a sync request or not
1296 */
1297 overwrite?: boolean;
1298 /**
1299 * Url for the source repo
1300 */
1301 url?: string;
1302}
1303/**
1304 * A request to import data from a remote source control system.
1305 */
1306export interface GitImportRequest {
1307 /**
1308 * Links to related resources.
1309 */
1310 _links?: any;
1311 /**
1312 * Detailed status of the import, including the current step and an error message, if applicable.
1313 */
1314 detailedStatus?: GitImportStatusDetail;
1315 /**
1316 * The unique identifier for this import request.
1317 */
1318 importRequestId?: number;
1319 /**
1320 * Parameters for creating the import request.
1321 */
1322 parameters?: GitImportRequestParameters;
1323 /**
1324 * The target repository for this import.
1325 */
1326 repository?: GitRepository;
1327 /**
1328 * Current status of the import.
1329 */
1330 status?: GitAsyncOperationStatus;
1331 /**
1332 * A link back to this import request resource.
1333 */
1334 url?: string;
1335}
1336/**
1337 * Parameters for creating an import request
1338 */
1339export interface GitImportRequestParameters {
1340 /**
1341 * Option to delete service endpoint when import is done
1342 */
1343 deleteServiceEndpointAfterImportIsDone?: boolean;
1344 /**
1345 * Source for importing git repository
1346 */
1347 gitSource?: GitImportGitSource;
1348 /**
1349 * Service Endpoint for connection to external endpoint
1350 */
1351 serviceEndpointId?: string;
1352 /**
1353 * Source for importing tfvc repository
1354 */
1355 tfvcSource?: GitImportTfvcSource;
1356}
1357/**
1358 * Additional status information about an import request.
1359 */
1360export interface GitImportStatusDetail {
1361 /**
1362 * All valid steps for the import process
1363 */
1364 allSteps?: string[];
1365 /**
1366 * Index into AllSteps for the current step
1367 */
1368 currentStep?: number;
1369 /**
1370 * Error message if the operation failed.
1371 */
1372 errorMessage?: string;
1373}
1374export interface GitImportSucceededEvent {
1375 sourceRepositoryName?: string;
1376 targetRepository?: GitRepository;
1377}
1378/**
1379 * Parameter for creating a git import request when source is tfvc version control
1380 */
1381export interface GitImportTfvcSource {
1382 /**
1383 * Set true to import History, false otherwise
1384 */
1385 importHistory?: boolean;
1386 /**
1387 * Get history for last n days (max allowed value is 180 days)
1388 */
1389 importHistoryDurationInDays?: number;
1390 /**
1391 * Path which we want to import (this can be copied from Path Control in Explorer)
1392 */
1393 path?: string;
1394}
1395export interface GitItem extends ItemModel {
1396 /**
1397 * SHA1 of commit item was fetched at
1398 */
1399 commitId?: string;
1400 /**
1401 * Type of object (Commit, Tree, Blob, Tag, ...)
1402 */
1403 gitObjectType?: GitObjectType;
1404 /**
1405 * Shallow ref to commit that last changed this item Only populated if latestProcessedChange is requested May not be accurate if latest change is not yet cached
1406 */
1407 latestProcessedChange?: GitCommitRef;
1408 /**
1409 * Git object id
1410 */
1411 objectId?: string;
1412 /**
1413 * Git object id
1414 */
1415 originalObjectId?: string;
1416}
1417export interface GitItemDescriptor {
1418 /**
1419 * Path to item
1420 */
1421 path?: string;
1422 /**
1423 * Specifies whether to include children (OneLevel), all descendants (Full), or None
1424 */
1425 recursionLevel?: VersionControlRecursionType;
1426 /**
1427 * Version string (interpretation based on VersionType defined in subclass
1428 */
1429 version?: string;
1430 /**
1431 * Version modifiers (e.g. previous)
1432 */
1433 versionOptions?: GitVersionOptions;
1434 /**
1435 * How to interpret version (branch,tag,commit)
1436 */
1437 versionType?: GitVersionType;
1438}
1439export interface GitItemRequestData {
1440 /**
1441 * Whether to include metadata for all items
1442 */
1443 includeContentMetadata?: boolean;
1444 /**
1445 * Whether to include the _links field on the shallow references
1446 */
1447 includeLinks?: boolean;
1448 /**
1449 * Collection of items to fetch, including path, version, and recursion level
1450 */
1451 itemDescriptors?: GitItemDescriptor[];
1452 /**
1453 * Whether to include shallow ref to commit that last changed each item
1454 */
1455 latestProcessedChange?: boolean;
1456}
1457export interface GitLastChangeItem {
1458 /**
1459 * Gets or sets the commit Id this item was modified most recently for the provided version.
1460 */
1461 commitId?: string;
1462 /**
1463 * Gets or sets the path of the item.
1464 */
1465 path?: string;
1466}
1467export interface GitLastChangeTreeItems {
1468 /**
1469 * The list of commits referenced by Items, if they were requested.
1470 */
1471 commits?: GitCommitRef[];
1472 /**
1473 * The last change of items.
1474 */
1475 items?: GitLastChangeItem[];
1476 /**
1477 * The last explored time, in case the result is not comprehensive. Null otherwise.
1478 */
1479 lastExploredTime?: Date;
1480}
1481export interface GitMerge extends GitMergeParameters {
1482 /**
1483 * Reference links.
1484 */
1485 _links?: any;
1486 /**
1487 * Detailed status of the merge operation.
1488 */
1489 detailedStatus?: GitMergeOperationStatusDetail;
1490 /**
1491 * Unique identifier for the merge operation.
1492 */
1493 mergeOperationId?: number;
1494 /**
1495 * Status of the merge operation.
1496 */
1497 status?: GitAsyncOperationStatus;
1498}
1499/**
1500 * Status information about a requested merge operation.
1501 */
1502export interface GitMergeOperationStatusDetail {
1503 /**
1504 * Error message if the operation failed.
1505 */
1506 failureMessage?: string;
1507 /**
1508 * The commitId of the resultant merge commit.
1509 */
1510 mergeCommitId?: string;
1511}
1512export interface GitMergeOriginRef {
1513 cherryPickId?: number;
1514 pullRequestId?: number;
1515 revertId?: number;
1516}
1517/**
1518 * Parameters required for performing git merge.
1519 */
1520export interface GitMergeParameters {
1521 /**
1522 * Comment or message of the commit.
1523 */
1524 comment?: string;
1525 /**
1526 * An enumeration of the parent commit IDs for the merge commit.
1527 */
1528 parents?: string[];
1529}
1530/**
1531 * Git object identifier and type information.
1532 */
1533export interface GitObject {
1534 /**
1535 * Object Id (Sha1Id).
1536 */
1537 objectId?: string;
1538 /**
1539 * Type of object (Commit, Tree, Blob, Tag)
1540 */
1541 objectType?: GitObjectType;
1542}
1543export declare enum GitObjectType {
1544 Bad = 0,
1545 Commit = 1,
1546 Tree = 2,
1547 Blob = 3,
1548 Tag = 4,
1549 Ext2 = 5,
1550 OfsDelta = 6,
1551 RefDelta = 7
1552}
1553export interface GitPathAction {
1554 action?: GitPathActions;
1555 base64Content?: string;
1556 path?: string;
1557 rawTextContent?: string;
1558 targetPath?: string;
1559}
1560export declare enum GitPathActions {
1561 None = 0,
1562 Edit = 1,
1563 Delete = 2,
1564 Add = 3,
1565 Rename = 4
1566}
1567export interface GitPathToItemsCollection {
1568 items?: {
1569 [key: string]: GitItem[];
1570 };
1571}
1572export interface GitPolicyConfigurationResponse {
1573 /**
1574 * The HTTP client methods find the continuation token header in the response and populate this field.
1575 */
1576 continuationToken?: string;
1577 policyConfigurations?: PolicyInterfaces.PolicyConfiguration[];
1578}
1579/**
1580 * Represents all the data associated with a pull request.
1581 */
1582export interface GitPullRequest {
1583 /**
1584 * Links to other related objects.
1585 */
1586 _links?: any;
1587 /**
1588 * A string which uniquely identifies this pull request. To generate an artifact ID for a pull request, use this template: ```vstfs:///Git/PullRequestId/{projectId}/{repositoryId}/{pullRequestId}```
1589 */
1590 artifactId?: string;
1591 /**
1592 * If set, auto-complete is enabled for this pull request and this is the identity that enabled it.
1593 */
1594 autoCompleteSetBy?: VSSInterfaces.IdentityRef;
1595 /**
1596 * The user who closed the pull request.
1597 */
1598 closedBy?: VSSInterfaces.IdentityRef;
1599 /**
1600 * The date when the pull request was closed (completed, abandoned, or merged externally).
1601 */
1602 closedDate?: Date;
1603 /**
1604 * The code review ID of the pull request. Used internally.
1605 */
1606 codeReviewId?: number;
1607 /**
1608 * The commits contained in the pull request.
1609 */
1610 commits?: GitCommitRef[];
1611 /**
1612 * Options which affect how the pull request will be merged when it is completed.
1613 */
1614 completionOptions?: GitPullRequestCompletionOptions;
1615 /**
1616 * The most recent date at which the pull request entered the queue to be completed. Used internally.
1617 */
1618 completionQueueTime?: Date;
1619 /**
1620 * The identity of the user who created the pull request.
1621 */
1622 createdBy?: VSSInterfaces.IdentityRef;
1623 /**
1624 * The date when the pull request was created.
1625 */
1626 creationDate?: Date;
1627 /**
1628 * The description of the pull request.
1629 */
1630 description?: string;
1631 /**
1632 * If this is a PR from a fork this will contain information about its source.
1633 */
1634 forkSource?: GitForkRef;
1635 /**
1636 * Multiple mergebases warning
1637 */
1638 hasMultipleMergeBases?: boolean;
1639 /**
1640 * Draft / WIP pull request.
1641 */
1642 isDraft?: boolean;
1643 /**
1644 * The labels associated with the pull request.
1645 */
1646 labels?: TfsCoreInterfaces.WebApiTagDefinition[];
1647 /**
1648 * The commit of the most recent pull request merge. If empty, the most recent merge is in progress or was unsuccessful.
1649 */
1650 lastMergeCommit?: GitCommitRef;
1651 /**
1652 * The commit at the head of the source branch at the time of the last pull request merge.
1653 */
1654 lastMergeSourceCommit?: GitCommitRef;
1655 /**
1656 * The commit at the head of the target branch at the time of the last pull request merge.
1657 */
1658 lastMergeTargetCommit?: GitCommitRef;
1659 /**
1660 * If set, pull request merge failed for this reason.
1661 */
1662 mergeFailureMessage?: string;
1663 /**
1664 * The type of failure (if any) of the pull request merge.
1665 */
1666 mergeFailureType?: PullRequestMergeFailureType;
1667 /**
1668 * The ID of the job used to run the pull request merge. Used internally.
1669 */
1670 mergeId?: string;
1671 /**
1672 * Options used when the pull request merge runs. These are separate from completion options since completion happens only once and a new merge will run every time the source branch of the pull request changes.
1673 */
1674 mergeOptions?: GitPullRequestMergeOptions;
1675 /**
1676 * The current status of the pull request merge.
1677 */
1678 mergeStatus?: PullRequestAsyncStatus;
1679 /**
1680 * The ID of the pull request.
1681 */
1682 pullRequestId?: number;
1683 /**
1684 * Used internally.
1685 */
1686 remoteUrl?: string;
1687 /**
1688 * The repository containing the target branch of the pull request.
1689 */
1690 repository?: GitRepository;
1691 /**
1692 * A list of reviewers on the pull request along with the state of their votes.
1693 */
1694 reviewers?: IdentityRefWithVote[];
1695 /**
1696 * The name of the source branch of the pull request.
1697 */
1698 sourceRefName?: string;
1699 /**
1700 * The status of the pull request.
1701 */
1702 status?: PullRequestStatus;
1703 /**
1704 * If true, this pull request supports multiple iterations. Iteration support means individual pushes to the source branch of the pull request can be reviewed and comments left in one iteration will be tracked across future iterations.
1705 */
1706 supportsIterations?: boolean;
1707 /**
1708 * The name of the target branch of the pull request.
1709 */
1710 targetRefName?: string;
1711 /**
1712 * The title of the pull request.
1713 */
1714 title?: string;
1715 /**
1716 * Used internally.
1717 */
1718 url?: string;
1719 /**
1720 * Any work item references associated with this pull request.
1721 */
1722 workItemRefs?: VSSInterfaces.ResourceRef[];
1723}
1724/**
1725 * Change made in a pull request.
1726 */
1727export interface GitPullRequestChange extends GitChange {
1728 /**
1729 * ID used to track files through multiple changes.
1730 */
1731 changeTrackingId?: number;
1732}
1733/**
1734 * Represents a comment thread of a pull request. A thread contains meta data about the file it was left on (if any) along with one or more comments (an initial comment and the subsequent replies).
1735 */
1736export interface GitPullRequestCommentThread extends CommentThread {
1737 /**
1738 * Extended context information unique to pull requests
1739 */
1740 pullRequestThreadContext?: GitPullRequestCommentThreadContext;
1741}
1742/**
1743 * Comment thread context contains details about what diffs were being viewed at the time of thread creation and whether or not the thread has been tracked from that original diff.
1744 */
1745export interface GitPullRequestCommentThreadContext {
1746 /**
1747 * Used to track a comment across iterations. This value can be found by looking at the iteration's changes list. Must be set for pull requests with iteration support. Otherwise, it's not required for 'legacy' pull requests.
1748 */
1749 changeTrackingId?: number;
1750 /**
1751 * The iteration context being viewed when the thread was created.
1752 */
1753 iterationContext?: CommentIterationContext;
1754 /**
1755 * The criteria used to track this thread. If this property is filled out when the thread is returned, then the thread has been tracked from its original location using the given criteria.
1756 */
1757 trackingCriteria?: CommentTrackingCriteria;
1758}
1759/**
1760 * Preferences about how the pull request should be completed.
1761 */
1762export interface GitPullRequestCompletionOptions {
1763 /**
1764 * List of any policy configuration Id's which auto-complete should not wait for. Only applies to optional policies (isBlocking == false). Auto-complete always waits for required policies (isBlocking == true).
1765 */
1766 autoCompleteIgnoreConfigIds?: number[];
1767 /**
1768 * If true, policies will be explicitly bypassed while the pull request is completed.
1769 */
1770 bypassPolicy?: boolean;
1771 /**
1772 * If policies are bypassed, this reason is stored as to why bypass was used.
1773 */
1774 bypassReason?: string;
1775 /**
1776 * If true, the source branch of the pull request will be deleted after completion.
1777 */
1778 deleteSourceBranch?: boolean;
1779 /**
1780 * If set, this will be used as the commit message of the merge commit.
1781 */
1782 mergeCommitMessage?: string;
1783 /**
1784 * Specify the strategy used to merge the pull request during completion. If MergeStrategy is not set to any value, a no-FF merge will be created if SquashMerge == false. If MergeStrategy is not set to any value, the pull request commits will be squashed if SquashMerge == true. The SquashMerge property is deprecated. It is recommended that you explicitly set MergeStrategy in all cases. If an explicit value is provided for MergeStrategy, the SquashMerge property will be ignored.
1785 */
1786 mergeStrategy?: GitPullRequestMergeStrategy;
1787 /**
1788 * SquashMerge is deprecated. You should explicitly set the value of MergeStrategy. If MergeStrategy is set to any value, the SquashMerge value will be ignored. If MergeStrategy is not set, the merge strategy will be no-fast-forward if this flag is false, or squash if true.
1789 */
1790 squashMerge?: boolean;
1791 /**
1792 * If true, we will attempt to transition any work items linked to the pull request into the next logical state (i.e. Active -> Resolved)
1793 */
1794 transitionWorkItems?: boolean;
1795 /**
1796 * If true, the current completion attempt was triggered via auto-complete. Used internally.
1797 */
1798 triggeredByAutoComplete?: boolean;
1799}
1800/**
1801 * Provides properties that describe a Git pull request iteration. Iterations are created as a result of creating and pushing updates to a pull request.
1802 */
1803export interface GitPullRequestIteration {
1804 /**
1805 * A collection of related REST reference links.
1806 */
1807 _links?: any;
1808 /**
1809 * Author of the pull request iteration.
1810 */
1811 author?: VSSInterfaces.IdentityRef;
1812 /**
1813 * Changes included with the pull request iteration.
1814 */
1815 changeList?: GitPullRequestChange[];
1816 /**
1817 * The commits included with the pull request iteration.
1818 */
1819 commits?: GitCommitRef[];
1820 /**
1821 * The first common Git commit of the source and target refs.
1822 */
1823 commonRefCommit?: GitCommitRef;
1824 /**
1825 * The creation date of the pull request iteration.
1826 */
1827 createdDate?: Date;
1828 /**
1829 * Description of the pull request iteration.
1830 */
1831 description?: string;
1832 /**
1833 * Indicates if the Commits property contains a truncated list of commits in this pull request iteration.
1834 */
1835 hasMoreCommits?: boolean;
1836 /**
1837 * ID of the pull request iteration. Iterations are created as a result of creating and pushing updates to a pull request.
1838 */
1839 id?: number;
1840 /**
1841 * If the iteration reason is Retarget, this is the refName of the new target
1842 */
1843 newTargetRefName?: string;
1844 /**
1845 * If the iteration reason is Retarget, this is the original target refName
1846 */
1847 oldTargetRefName?: string;
1848 /**
1849 * The Git push information associated with this pull request iteration.
1850 */
1851 push?: GitPushRef;
1852 /**
1853 * The reason for which the pull request iteration was created.
1854 */
1855 reason?: IterationReason;
1856 /**
1857 * The source Git commit of this iteration.
1858 */
1859 sourceRefCommit?: GitCommitRef;
1860 /**
1861 * The target Git commit of this iteration.
1862 */
1863 targetRefCommit?: GitCommitRef;
1864 /**
1865 * The updated date of the pull request iteration.
1866 */
1867 updatedDate?: Date;
1868}
1869/**
1870 * Collection of changes made in a pull request.
1871 */
1872export interface GitPullRequestIterationChanges {
1873 /**
1874 * Changes made in the iteration.
1875 */
1876 changeEntries?: GitPullRequestChange[];
1877 /**
1878 * Value to specify as skip to get the next page of changes. This will be zero if there are no more changes.
1879 */
1880 nextSkip?: number;
1881 /**
1882 * Value to specify as top to get the next page of changes. This will be zero if there are no more changes.
1883 */
1884 nextTop?: number;
1885}
1886/**
1887 * The options which are used when a pull request merge is created.
1888 */
1889export interface GitPullRequestMergeOptions {
1890 /**
1891 * If true, conflict resolutions applied during the merge will be put in separate commits to preserve authorship info for git blame, etc.
1892 */
1893 conflictAuthorshipCommits?: boolean;
1894 /**
1895 * If true, renames where there is more than one valid way to map the original file locations to renamed file locations will be treated as false positives and ignored.
1896 */
1897 detectRenameFalsePositives?: boolean;
1898 /**
1899 * If true, rename detection will not be performed during the merge.
1900 */
1901 disableRenames?: boolean;
1902}
1903/**
1904 * Enumeration of possible merge strategies which can be used to complete a pull request.
1905 */
1906export declare enum GitPullRequestMergeStrategy {
1907 /**
1908 * A two-parent, no-fast-forward merge. The source branch is unchanged. This is the default behavior.
1909 */
1910 NoFastForward = 1,
1911 /**
1912 * Put all changes from the pull request into a single-parent commit.
1913 */
1914 Squash = 2,
1915 /**
1916 * Rebase the source branch on top of the target branch HEAD commit, and fast-forward the target branch. The source branch is updated during the rebase operation.
1917 */
1918 Rebase = 3,
1919 /**
1920 * Rebase the source branch on top of the target branch HEAD commit, and create a two-parent, no-fast-forward merge. The source branch is updated during the rebase operation.
1921 */
1922 RebaseMerge = 4
1923}
1924/**
1925 * A set of pull request queries and their results.
1926 */
1927export interface GitPullRequestQuery {
1928 /**
1929 * The queries to perform.
1930 */
1931 queries?: GitPullRequestQueryInput[];
1932 /**
1933 * The results of the queries. This matches the QueryInputs list so Results[n] are the results of QueryInputs[n]. Each entry in the list is a dictionary of commit->pull requests.
1934 */
1935 results?: {
1936 [key: string]: GitPullRequest[];
1937 }[];
1938}
1939/**
1940 * Pull request query input parameters.
1941 */
1942export interface GitPullRequestQueryInput {
1943 /**
1944 * The list of commit IDs to search for.
1945 */
1946 items?: string[];
1947 /**
1948 * The type of query to perform.
1949 */
1950 type?: GitPullRequestQueryType;
1951}
1952/**
1953 * Accepted types of pull request queries.
1954 */
1955export declare enum GitPullRequestQueryType {
1956 /**
1957 * No query type set.
1958 */
1959 NotSet = 0,
1960 /**
1961 * Search for pull requests that created the supplied merge commits.
1962 */
1963 LastMergeCommit = 1,
1964 /**
1965 * Search for pull requests that merged the supplied commits.
1966 */
1967 Commit = 2
1968}
1969export interface GitPullRequestReviewFileContentInfo {
1970 _links?: any;
1971 /**
1972 * The file change path.
1973 */
1974 path?: string;
1975 /**
1976 * Content hash of on-disk representation of file content. Its calculated by the client by using SHA1 hash function. Ensure that uploaded file has same encoding as in source control.
1977 */
1978 sHA1Hash?: string;
1979}
1980export declare enum GitPullRequestReviewFileType {
1981 ChangeEntry = 0,
1982 Attachment = 1
1983}
1984/**
1985 * Pull requests can be searched for matching this criteria.
1986 */
1987export interface GitPullRequestSearchCriteria {
1988 /**
1989 * If set, search for pull requests that were created by this identity.
1990 */
1991 creatorId?: string;
1992 /**
1993 * Whether to include the _links field on the shallow references
1994 */
1995 includeLinks?: boolean;
1996 /**
1997 * If specified, filters pull requests that created/closed before this date based on the queryTimeRangeType specified.
1998 */
1999 maxTime?: Date;
2000 /**
2001 * If specified, filters pull requests that created/closed after this date based on the queryTimeRangeType specified.
2002 */
2003 minTime?: Date;
2004 /**
2005 * The type of time range which should be used for minTime and maxTime. Defaults to Created if unset.
2006 */
2007 queryTimeRangeType?: PullRequestTimeRangeType;
2008 /**
2009 * If set, search for pull requests whose target branch is in this repository.
2010 */
2011 repositoryId?: string;
2012 /**
2013 * If set, search for pull requests that have this identity as a reviewer.
2014 */
2015 reviewerId?: string;
2016 /**
2017 * If set, search for pull requests from this branch.
2018 */
2019 sourceRefName?: string;
2020 /**
2021 * If set, search for pull requests whose source branch is in this repository.
2022 */
2023 sourceRepositoryId?: string;
2024 /**
2025 * If set, search for pull requests that are in this state. Defaults to Active if unset.
2026 */
2027 status?: PullRequestStatus;
2028 /**
2029 * If set, search for pull requests into this branch.
2030 */
2031 targetRefName?: string;
2032}
2033/**
2034 * This class contains the metadata of a service/extension posting pull request status. Status can be associated with a pull request or an iteration.
2035 */
2036export interface GitPullRequestStatus extends GitStatus {
2037 /**
2038 * ID of the iteration to associate status with. Minimum value is 1.
2039 */
2040 iterationId?: number;
2041 /**
2042 * Custom properties of the status.
2043 */
2044 properties?: any;
2045}
2046export interface GitPush extends GitPushRef {
2047 commits?: GitCommitRef[];
2048 refUpdates?: GitRefUpdate[];
2049 repository?: GitRepository;
2050}
2051export interface GitPushEventData {
2052 afterId?: string;
2053 beforeId?: string;
2054 branch?: string;
2055 commits?: GitCommit[];
2056 repository?: GitRepository;
2057}
2058export interface GitPushRef {
2059 _links?: any;
2060 date?: Date;
2061 pushCorrelationId?: string;
2062 pushedBy?: VSSInterfaces.IdentityRef;
2063 pushId?: number;
2064 url?: string;
2065}
2066export interface GitPushSearchCriteria {
2067 fromDate?: Date;
2068 /**
2069 * Whether to include the _links field on the shallow references
2070 */
2071 includeLinks?: boolean;
2072 includeRefUpdates?: boolean;
2073 pusherId?: string;
2074 refName?: string;
2075 toDate?: Date;
2076}
2077export interface GitQueryBranchStatsCriteria {
2078 baseCommit?: GitVersionDescriptor;
2079 targetCommits?: GitVersionDescriptor[];
2080}
2081export interface GitQueryCommitsCriteria {
2082 /**
2083 * Number of entries to skip
2084 */
2085 $skip?: number;
2086 /**
2087 * Maximum number of entries to retrieve
2088 */
2089 $top?: number;
2090 /**
2091 * Alias or display name of the author
2092 */
2093 author?: string;
2094 /**
2095 * Only applicable when ItemVersion specified. If provided, start walking history starting at this commit.
2096 */
2097 compareVersion?: GitVersionDescriptor;
2098 /**
2099 * Only applies when an itemPath is specified. This determines whether to exclude delete entries of the specified path.
2100 */
2101 excludeDeletes?: boolean;
2102 /**
2103 * If provided, a lower bound for filtering commits alphabetically
2104 */
2105 fromCommitId?: string;
2106 /**
2107 * If provided, only include history entries created after this date (string)
2108 */
2109 fromDate?: string;
2110 /**
2111 * What Git history mode should be used. This only applies to the search criteria when Ids = null and an itemPath is specified.
2112 */
2113 historyMode?: GitHistoryMode;
2114 /**
2115 * If provided, specifies the exact commit ids of the commits to fetch. May not be combined with other parameters.
2116 */
2117 ids?: string[];
2118 /**
2119 * Whether to include the _links field on the shallow references
2120 */
2121 includeLinks?: boolean;
2122 /**
2123 * Whether to include the push information
2124 */
2125 includePushData?: boolean;
2126 /**
2127 * Whether to include the image Url for committers and authors
2128 */
2129 includeUserImageUrl?: boolean;
2130 /**
2131 * Whether to include linked work items
2132 */
2133 includeWorkItems?: boolean;
2134 /**
2135 * Path of item to search under
2136 */
2137 itemPath?: string;
2138 /**
2139 * If provided, identifies the commit or branch to search
2140 */
2141 itemVersion?: GitVersionDescriptor;
2142 /**
2143 * If enabled, this option will ignore the itemVersion and compareVersion parameters
2144 */
2145 showOldestCommitsFirst?: boolean;
2146 /**
2147 * If provided, an upper bound for filtering commits alphabetically
2148 */
2149 toCommitId?: string;
2150 /**
2151 * If provided, only include history entries created before this date (string)
2152 */
2153 toDate?: string;
2154 /**
2155 * Alias or display name of the committer
2156 */
2157 user?: string;
2158}
2159export interface GitQueryRefsCriteria {
2160 /**
2161 * List of commit Ids to be searched
2162 */
2163 commitIds?: string[];
2164 /**
2165 * List of complete or partial names for refs to be searched
2166 */
2167 refNames?: string[];
2168 /**
2169 * Type of search on refNames, if provided
2170 */
2171 searchType?: GitRefSearchType;
2172}
2173export interface GitRecycleBinRepositoryDetails {
2174 /**
2175 * Setting to false will undo earlier deletion and restore the repository.
2176 */
2177 deleted?: boolean;
2178}
2179export interface GitRef {
2180 _links?: any;
2181 creator?: VSSInterfaces.IdentityRef;
2182 isLocked?: boolean;
2183 isLockedBy?: VSSInterfaces.IdentityRef;
2184 name?: string;
2185 objectId?: string;
2186 peeledObjectId?: string;
2187 statuses?: GitStatus[];
2188 url?: string;
2189}
2190export interface GitRefFavorite {
2191 _links?: any;
2192 id?: number;
2193 identityId?: string;
2194 name?: string;
2195 repositoryId?: string;
2196 type?: RefFavoriteType;
2197 url?: string;
2198}
2199/**
2200 * Search type on ref name
2201 */
2202export declare enum GitRefSearchType {
2203 Exact = 0,
2204 StartsWith = 1,
2205 Contains = 2
2206}
2207export interface GitRefUpdate {
2208 isLocked?: boolean;
2209 name?: string;
2210 newObjectId?: string;
2211 oldObjectId?: string;
2212 repositoryId?: string;
2213}
2214/**
2215 * Enumerates the modes under which ref updates can be written to their repositories.
2216 */
2217export declare enum GitRefUpdateMode {
2218 /**
2219 * Indicates the Git protocol model where any refs that can be updated will be updated, but any failures will not prevent other updates from succeeding.
2220 */
2221 BestEffort = 0,
2222 /**
2223 * Indicates that all ref updates must succeed or none will succeed. All ref updates will be atomically written. If any failure is encountered, previously successful updates will be rolled back and the entire operation will fail.
2224 */
2225 AllOrNone = 1
2226}
2227export interface GitRefUpdateResult {
2228 /**
2229 * Custom message for the result object For instance, Reason for failing.
2230 */
2231 customMessage?: string;
2232 /**
2233 * Whether the ref is locked or not
2234 */
2235 isLocked?: boolean;
2236 /**
2237 * Ref name
2238 */
2239 name?: string;
2240 /**
2241 * New object ID
2242 */
2243 newObjectId?: string;
2244 /**
2245 * Old object ID
2246 */
2247 oldObjectId?: string;
2248 /**
2249 * Name of the plugin that rejected the updated.
2250 */
2251 rejectedBy?: string;
2252 /**
2253 * Repository ID
2254 */
2255 repositoryId?: string;
2256 /**
2257 * True if the ref update succeeded, false otherwise
2258 */
2259 success?: boolean;
2260 /**
2261 * Status of the update from the TFS server.
2262 */
2263 updateStatus?: GitRefUpdateStatus;
2264}
2265/**
2266 * Represents the possible outcomes from a request to update a ref in a repository.
2267 */
2268export declare enum GitRefUpdateStatus {
2269 /**
2270 * Indicates that the ref update request was completed successfully.
2271 */
2272 Succeeded = 0,
2273 /**
2274 * Indicates that the ref update request could not be completed because part of the graph would be disconnected by this change, and the caller does not have ForcePush permission on the repository.
2275 */
2276 ForcePushRequired = 1,
2277 /**
2278 * Indicates that the ref update request could not be completed because the old object ID presented in the request was not the object ID of the ref when the database attempted the update. The most likely scenario is that the caller lost a race to update the ref.
2279 */
2280 StaleOldObjectId = 2,
2281 /**
2282 * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid.
2283 */
2284 InvalidRefName = 3,
2285 /**
2286 * The request was not processed
2287 */
2288 Unprocessed = 4,
2289 /**
2290 * The ref update request could not be completed because the new object ID for the ref could not be resolved to a commit object (potentially through any number of tags)
2291 */
2292 UnresolvableToCommit = 5,
2293 /**
2294 * The ref update request could not be completed because the user lacks write permissions required to write this ref
2295 */
2296 WritePermissionRequired = 6,
2297 /**
2298 * The ref update request could not be completed because the user lacks note creation permissions required to write this note
2299 */
2300 ManageNotePermissionRequired = 7,
2301 /**
2302 * The ref update request could not be completed because the user lacks the permission to create a branch
2303 */
2304 CreateBranchPermissionRequired = 8,
2305 /**
2306 * The ref update request could not be completed because the user lacks the permission to create a tag
2307 */
2308 CreateTagPermissionRequired = 9,
2309 /**
2310 * The ref update could not be completed because it was rejected by the plugin.
2311 */
2312 RejectedByPlugin = 10,
2313 /**
2314 * The ref update could not be completed because the ref is locked by another user.
2315 */
2316 Locked = 11,
2317 /**
2318 * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name.
2319 */
2320 RefNameConflict = 12,
2321 /**
2322 * The ref update could not be completed because it was rejected by policy.
2323 */
2324 RejectedByPolicy = 13,
2325 /**
2326 * Indicates that the ref update request was completed successfully, but the ref doesn't actually exist so no changes were made. This should only happen during deletes.
2327 */
2328 SucceededNonExistentRef = 14,
2329 /**
2330 * Indicates that the ref update request was completed successfully, but the passed-in ref was corrupt - as in, the old object ID was bad. This should only happen during deletes.
2331 */
2332 SucceededCorruptRef = 15
2333}
2334export interface GitRepository {
2335 _links?: any;
2336 defaultBranch?: string;
2337 id?: string;
2338 /**
2339 * True if the repository is disabled. False otherwise.
2340 */
2341 isDisabled?: boolean;
2342 /**
2343 * True if the repository was created as a fork.
2344 */
2345 isFork?: boolean;
2346 /**
2347 * True if the repository is in maintenance. False otherwise.
2348 */
2349 isInMaintenance?: boolean;
2350 name?: string;
2351 parentRepository?: GitRepositoryRef;
2352 project?: TfsCoreInterfaces.TeamProjectReference;
2353 remoteUrl?: string;
2354 /**
2355 * Compressed size (bytes) of the repository.
2356 */
2357 size?: number;
2358 sshUrl?: string;
2359 url?: string;
2360 validRemoteUrls?: string[];
2361 webUrl?: string;
2362}
2363export interface GitRepositoryCreateOptions {
2364 name?: string;
2365 parentRepository?: GitRepositoryRef;
2366 project?: TfsCoreInterfaces.TeamProjectReference;
2367}
2368export interface GitRepositoryRef {
2369 /**
2370 * Team Project Collection where this Fork resides
2371 */
2372 collection?: TfsCoreInterfaces.TeamProjectCollectionReference;
2373 id?: string;
2374 /**
2375 * True if the repository was created as a fork
2376 */
2377 isFork?: boolean;
2378 name?: string;
2379 project?: TfsCoreInterfaces.TeamProjectReference;
2380 remoteUrl?: string;
2381 sshUrl?: string;
2382 url?: string;
2383}
2384export interface GitRepositoryStats {
2385 activePullRequestsCount?: number;
2386 branchesCount?: number;
2387 commitsCount?: number;
2388 repositoryId?: string;
2389}
2390export interface GitResolution {
2391 /**
2392 * User who created the resolution.
2393 */
2394 author?: VSSInterfaces.IdentityRef;
2395}
2396/**
2397 * The type of a merge conflict.
2398 */
2399export declare enum GitResolutionError {
2400 /**
2401 * No error
2402 */
2403 None = 0,
2404 /**
2405 * User set a blob id for resolving a content merge, but blob was not found in repo during application
2406 */
2407 MergeContentNotFound = 1,
2408 /**
2409 * Attempted to resolve a conflict by moving a file to another path, but path was already in use
2410 */
2411 PathInUse = 2,
2412 /**
2413 * No error
2414 */
2415 InvalidPath = 3,
2416 /**
2417 * GitResolutionAction was set to an unrecognized value
2418 */
2419 UnknownAction = 4,
2420 /**
2421 * GitResolutionMergeType was set to an unrecognized value
2422 */
2423 UnknownMergeType = 5,
2424 /**
2425 * Any error for which a more specific code doesn't apply
2426 */
2427 OtherError = 255
2428}
2429export interface GitResolutionMergeContent extends GitResolution {
2430 mergeType?: GitResolutionMergeType;
2431 userMergedBlob?: GitBlobRef;
2432 userMergedContent?: number[];
2433}
2434export declare enum GitResolutionMergeType {
2435 Undecided = 0,
2436 TakeSourceContent = 1,
2437 TakeTargetContent = 2,
2438 AutoMerged = 3,
2439 UserMerged = 4
2440}
2441export interface GitResolutionPathConflict extends GitResolution {
2442 action?: GitResolutionPathConflictAction;
2443 renamePath?: string;
2444}
2445export declare enum GitResolutionPathConflictAction {
2446 Undecided = 0,
2447 KeepSourceRenameTarget = 1,
2448 KeepSourceDeleteTarget = 2,
2449 KeepTargetRenameSource = 3,
2450 KeepTargetDeleteSource = 4
2451}
2452export interface GitResolutionPickOneAction extends GitResolution {
2453 action?: GitResolutionWhichAction;
2454}
2455export interface GitResolutionRename1to2 extends GitResolutionMergeContent {
2456 action?: GitResolutionRename1to2Action;
2457}
2458export declare enum GitResolutionRename1to2Action {
2459 Undecided = 0,
2460 KeepSourcePath = 1,
2461 KeepTargetPath = 2,
2462 KeepBothFiles = 3
2463}
2464/**
2465 * Resolution status of a conflict.
2466 */
2467export declare enum GitResolutionStatus {
2468 Unresolved = 0,
2469 PartiallyResolved = 1,
2470 Resolved = 2
2471}
2472export declare enum GitResolutionWhichAction {
2473 Undecided = 0,
2474 PickSourceAction = 1,
2475 PickTargetAction = 2
2476}
2477export interface GitRevert extends GitAsyncRefOperation {
2478 revertId?: number;
2479}
2480/**
2481 * This class contains the metadata of a service/extension posting a status.
2482 */
2483export interface GitStatus {
2484 /**
2485 * Reference links.
2486 */
2487 _links?: any;
2488 /**
2489 * Context of the status.
2490 */
2491 context?: GitStatusContext;
2492 /**
2493 * Identity that created the status.
2494 */
2495 createdBy?: VSSInterfaces.IdentityRef;
2496 /**
2497 * Creation date and time of the status.
2498 */
2499 creationDate?: Date;
2500 /**
2501 * Status description. Typically describes current state of the status.
2502 */
2503 description?: string;
2504 /**
2505 * Status identifier.
2506 */
2507 id?: number;
2508 /**
2509 * State of the status.
2510 */
2511 state?: GitStatusState;
2512 /**
2513 * URL with status details.
2514 */
2515 targetUrl?: string;
2516 /**
2517 * Last update date and time of the status.
2518 */
2519 updatedDate?: Date;
2520}
2521/**
2522 * Status context that uniquely identifies the status.
2523 */
2524export interface GitStatusContext {
2525 /**
2526 * Genre of the status. Typically name of the service/tool generating the status, can be empty.
2527 */
2528 genre?: string;
2529 /**
2530 * Name identifier of the status, cannot be null or empty.
2531 */
2532 name?: string;
2533}
2534/**
2535 * State of the status.
2536 */
2537export declare enum GitStatusState {
2538 /**
2539 * Status state not set. Default state.
2540 */
2541 NotSet = 0,
2542 /**
2543 * Status pending.
2544 */
2545 Pending = 1,
2546 /**
2547 * Status succeeded.
2548 */
2549 Succeeded = 2,
2550 /**
2551 * Status failed.
2552 */
2553 Failed = 3,
2554 /**
2555 * Status with an error.
2556 */
2557 Error = 4,
2558 /**
2559 * Status is not applicable to the target object.
2560 */
2561 NotApplicable = 5,
2562 /**
2563 * Status Partially Succeeded, build finished with warnings.
2564 */
2565 PartiallySucceeded = 6
2566}
2567/**
2568 * An object describing the git suggestion. Git suggestions are currently limited to suggested pull requests.
2569 */
2570export interface GitSuggestion {
2571 /**
2572 * Specific properties describing the suggestion.
2573 */
2574 properties?: {
2575 [key: string]: any;
2576 };
2577 /**
2578 * The type of suggestion (e.g. pull request).
2579 */
2580 type?: string;
2581}
2582export interface GitTargetVersionDescriptor extends GitVersionDescriptor {
2583 /**
2584 * Version string identifier (name of tag/branch, SHA1 of commit)
2585 */
2586 targetVersion?: string;
2587 /**
2588 * Version options - Specify additional modifiers to version (e.g Previous)
2589 */
2590 targetVersionOptions?: GitVersionOptions;
2591 /**
2592 * Version type (branch, tag, or commit). Determines how Id is interpreted
2593 */
2594 targetVersionType?: GitVersionType;
2595}
2596export interface GitTemplate {
2597 /**
2598 * Name of the Template
2599 */
2600 name?: string;
2601 /**
2602 * Type of the Template
2603 */
2604 type?: string;
2605}
2606export interface GitTreeDiff {
2607 /**
2608 * ObjectId of the base tree of this diff.
2609 */
2610 baseTreeId?: string;
2611 /**
2612 * List of tree entries that differ between the base and target tree. Renames and object type changes are returned as a delete for the old object and add for the new object. If a continuation token is returned in the response header, some tree entries are yet to be processed and may yield more diff entries. If the continuation token is not returned all the diff entries have been included in this response.
2613 */
2614 diffEntries?: GitTreeDiffEntry[];
2615 /**
2616 * ObjectId of the target tree of this diff.
2617 */
2618 targetTreeId?: string;
2619 /**
2620 * REST Url to this resource.
2621 */
2622 url?: string;
2623}
2624export interface GitTreeDiffEntry {
2625 /**
2626 * SHA1 hash of the object in the base tree, if it exists. Will be null in case of adds.
2627 */
2628 baseObjectId?: string;
2629 /**
2630 * Type of change that affected this entry.
2631 */
2632 changeType?: VersionControlChangeType;
2633 /**
2634 * Object type of the tree entry. Blob, Tree or Commit("submodule")
2635 */
2636 objectType?: GitObjectType;
2637 /**
2638 * Relative path in base and target trees.
2639 */
2640 path?: string;
2641 /**
2642 * SHA1 hash of the object in the target tree, if it exists. Will be null in case of deletes.
2643 */
2644 targetObjectId?: string;
2645}
2646export interface GitTreeDiffResponse {
2647 /**
2648 * The HTTP client methods find the continuation token header in the response and populate this field.
2649 */
2650 continuationToken?: string[];
2651 treeDiff?: GitTreeDiff;
2652}
2653export interface GitTreeEntryRef {
2654 /**
2655 * Blob or tree
2656 */
2657 gitObjectType?: GitObjectType;
2658 /**
2659 * Mode represented as octal string
2660 */
2661 mode?: string;
2662 /**
2663 * SHA1 hash of git object
2664 */
2665 objectId?: string;
2666 /**
2667 * Path relative to parent tree object
2668 */
2669 relativePath?: string;
2670 /**
2671 * Size of content
2672 */
2673 size?: number;
2674 /**
2675 * url to retrieve tree or blob
2676 */
2677 url?: string;
2678}
2679export interface GitTreeRef {
2680 _links?: any;
2681 /**
2682 * SHA1 hash of git object
2683 */
2684 objectId?: string;
2685 /**
2686 * Sum of sizes of all children
2687 */
2688 size?: number;
2689 /**
2690 * Blobs and trees under this tree
2691 */
2692 treeEntries?: GitTreeEntryRef[];
2693 /**
2694 * Url to tree
2695 */
2696 url?: string;
2697}
2698/**
2699 * User info and date for Git operations.
2700 */
2701export interface GitUserDate {
2702 /**
2703 * Date of the Git operation.
2704 */
2705 date?: Date;
2706 /**
2707 * Email address of the user performing the Git operation.
2708 */
2709 email?: string;
2710 /**
2711 * Url for the user's avatar.
2712 */
2713 imageUrl?: string;
2714 /**
2715 * Name of the user performing the Git operation.
2716 */
2717 name?: string;
2718}
2719export interface GitVersionDescriptor {
2720 /**
2721 * Version string identifier (name of tag/branch, SHA1 of commit)
2722 */
2723 version?: string;
2724 /**
2725 * Version options - Specify additional modifiers to version (e.g Previous)
2726 */
2727 versionOptions?: GitVersionOptions;
2728 /**
2729 * Version type (branch, tag, or commit). Determines how Id is interpreted
2730 */
2731 versionType?: GitVersionType;
2732}
2733/**
2734 * Accepted types of version options
2735 */
2736export declare enum GitVersionOptions {
2737 /**
2738 * Not specified
2739 */
2740 None = 0,
2741 /**
2742 * Commit that changed item prior to the current version
2743 */
2744 PreviousChange = 1,
2745 /**
2746 * First parent of commit (HEAD^)
2747 */
2748 FirstParent = 2
2749}
2750/**
2751 * Accepted types of version
2752 */
2753export declare enum GitVersionType {
2754 /**
2755 * Interpret the version as a branch name
2756 */
2757 Branch = 0,
2758 /**
2759 * Interpret the version as a tag name
2760 */
2761 Tag = 1,
2762 /**
2763 * Interpret the version as a commit ID (SHA1)
2764 */
2765 Commit = 2
2766}
2767/**
2768 * Globally unique key for a repository.
2769 */
2770export interface GlobalGitRepositoryKey {
2771 /**
2772 * Team Project Collection ID of the collection for the repository.
2773 */
2774 collectionId?: string;
2775 /**
2776 * Team Project ID of the project for the repository.
2777 */
2778 projectId: string;
2779 /**
2780 * ID of the repository.
2781 */
2782 repositoryId: string;
2783}
2784export interface HistoryEntry<T> {
2785 /**
2786 * The Change list (changeset/commit/shelveset) for this point in history
2787 */
2788 changeList?: ChangeList<T>;
2789 /**
2790 * The change made to the item from this change list (only relevant for File history, not folders)
2791 */
2792 itemChangeType?: VersionControlChangeType;
2793 /**
2794 * The path of the item at this point in history (only relevant for File history, not folders)
2795 */
2796 serverItem?: string;
2797}
2798/**
2799 * Identity information including a vote on a pull request.
2800 */
2801export interface IdentityRefWithVote extends VSSInterfaces.IdentityRef {
2802 /**
2803 * Indicates if this reviewer has declined to review this pull request.
2804 */
2805 hasDeclined?: boolean;
2806 /**
2807 * Indicates if this reviewer is flagged for attention on this pull request.
2808 */
2809 isFlagged?: boolean;
2810 /**
2811 * Indicates if this approve vote should still be handled even though vote didn't change.
2812 */
2813 isReapprove?: boolean;
2814 /**
2815 * Indicates if this is a required reviewer for this pull request. <br /> Branches can have policies that require particular reviewers are required for pull requests.
2816 */
2817 isRequired?: boolean;
2818 /**
2819 * URL to retrieve information about this identity
2820 */
2821 reviewerUrl?: string;
2822 /**
2823 * Vote on a pull request:<br /> 10 - approved 5 - approved with suggestions 0 - no vote -5 - waiting for author -10 - rejected
2824 */
2825 vote?: number;
2826 /**
2827 * Groups or teams that this reviewer contributed to. <br /> Groups and teams can be reviewers on pull requests but can not vote directly. When a member of the group or team votes, that vote is rolled up into the group or team vote. VotedFor is a list of such votes.
2828 */
2829 votedFor?: IdentityRefWithVote[];
2830}
2831export interface ImportRepositoryValidation {
2832 gitSource?: GitImportGitSource;
2833 password?: string;
2834 tfvcSource?: GitImportTfvcSource;
2835 username?: string;
2836}
2837export interface IncludedGitCommit {
2838 commitId?: string;
2839 commitTime?: Date;
2840 parentCommitIds?: string[];
2841 repositoryId?: string;
2842}
2843/**
2844 * Real time event (SignalR) for IsDraft update on a pull request
2845 */
2846export interface IsDraftUpdatedEvent extends RealTimePullRequestEvent {
2847}
2848export interface ItemContent {
2849 content?: string;
2850 contentType?: ItemContentType;
2851}
2852export declare enum ItemContentType {
2853 RawText = 0,
2854 Base64Encoded = 1
2855}
2856/**
2857 * Optional details to include when returning an item model
2858 */
2859export interface ItemDetailsOptions {
2860 /**
2861 * If true, include metadata about the file type
2862 */
2863 includeContentMetadata?: boolean;
2864 /**
2865 * Specifies whether to include children (OneLevel), all descendants (Full) or None for folder items
2866 */
2867 recursionLevel?: VersionControlRecursionType;
2868}
2869export interface ItemModel {
2870 _links?: any;
2871 content?: string;
2872 contentMetadata?: FileContentMetadata;
2873 isFolder?: boolean;
2874 isSymLink?: boolean;
2875 path?: string;
2876 url?: string;
2877}
2878/**
2879 * The reason for which the pull request iteration was created.
2880 */
2881export declare enum IterationReason {
2882 Push = 0,
2883 ForcePush = 1,
2884 Create = 2,
2885 Rebase = 4,
2886 Unknown = 8,
2887 Retarget = 16,
2888 ResolveConflicts = 32
2889}
2890/**
2891 * Real time event (SignalR) for updated labels on a pull request
2892 */
2893export interface LabelsUpdatedEvent extends RealTimePullRequestEvent {
2894}
2895/**
2896 * The class to represent the line diff block
2897 */
2898export interface LineDiffBlock {
2899 /**
2900 * Type of change that was made to the block.
2901 */
2902 changeType?: LineDiffBlockChangeType;
2903 /**
2904 * Line number where this block starts in modified file.
2905 */
2906 modifiedLineNumberStart?: number;
2907 /**
2908 * Count of lines in this block in modified file.
2909 */
2910 modifiedLinesCount?: number;
2911 /**
2912 * Line number where this block starts in original file.
2913 */
2914 originalLineNumberStart?: number;
2915 /**
2916 * Count of lines in this block in original file.
2917 */
2918 originalLinesCount?: number;
2919}
2920/**
2921 * Type of change for a line diff block
2922 */
2923export declare enum LineDiffBlockChangeType {
2924 /**
2925 * No change - both the blocks are identical
2926 */
2927 None = 0,
2928 /**
2929 * Lines were added to the block in the modified file
2930 */
2931 Add = 1,
2932 /**
2933 * Lines were deleted from the block in the original file
2934 */
2935 Delete = 2,
2936 /**
2937 * Lines were modified
2938 */
2939 Edit = 3
2940}
2941/**
2942 * Real time event (SignalR) for a merge completed on a pull request
2943 */
2944export interface MergeCompletedEvent extends RealTimePullRequestEvent {
2945}
2946/**
2947 * Real time event (SignalR) for a policy evaluation update on a pull request
2948 */
2949export interface PolicyEvaluationUpdatedEvent extends RealTimePullRequestEvent {
2950}
2951/**
2952 * The status of a pull request merge.
2953 */
2954export declare enum PullRequestAsyncStatus {
2955 /**
2956 * Status is not set. Default state.
2957 */
2958 NotSet = 0,
2959 /**
2960 * Pull request merge is queued.
2961 */
2962 Queued = 1,
2963 /**
2964 * Pull request merge failed due to conflicts.
2965 */
2966 Conflicts = 2,
2967 /**
2968 * Pull request merge succeeded.
2969 */
2970 Succeeded = 3,
2971 /**
2972 * Pull request merge rejected by policy.
2973 */
2974 RejectedByPolicy = 4,
2975 /**
2976 * Pull request merge failed.
2977 */
2978 Failure = 5
2979}
2980/**
2981 * Real time event (SignalR) for pull request creation
2982 */
2983export interface PullRequestCreatedEvent extends RealTimePullRequestEvent {
2984}
2985/**
2986 * The specific type of a pull request merge failure.
2987 */
2988export declare enum PullRequestMergeFailureType {
2989 /**
2990 * Type is not set. Default type.
2991 */
2992 None = 0,
2993 /**
2994 * Pull request merge failure type unknown.
2995 */
2996 Unknown = 1,
2997 /**
2998 * Pull request merge failed due to case mismatch.
2999 */
3000 CaseSensitive = 2,
3001 /**
3002 * Pull request merge failed due to an object being too large.
3003 */
3004 ObjectTooLarge = 3
3005}
3006/**
3007 * Status of a pull request.
3008 */
3009export declare enum PullRequestStatus {
3010 /**
3011 * Status not set. Default state.
3012 */
3013 NotSet = 0,
3014 /**
3015 * Pull request is active.
3016 */
3017 Active = 1,
3018 /**
3019 * Pull request is abandoned.
3020 */
3021 Abandoned = 2,
3022 /**
3023 * Pull request is completed.
3024 */
3025 Completed = 3,
3026 /**
3027 * Used in pull request search criteria to include all statuses.
3028 */
3029 All = 4
3030}
3031/**
3032 * Initial config contract sent to extensions creating tabs on the pull request page
3033 */
3034export interface PullRequestTabExtensionConfig {
3035 pullRequestId?: number;
3036 repositoryId?: string;
3037}
3038/**
3039 * Specifies the desired type of time range for pull requests queries.
3040 */
3041export declare enum PullRequestTimeRangeType {
3042 /**
3043 * The date when the pull request was created.
3044 */
3045 Created = 1,
3046 /**
3047 * The date when the pull request was closed (completed, abandoned, or merged externally).
3048 */
3049 Closed = 2
3050}
3051/**
3052 * Base contract for a real time pull request event (SignalR)
3053 */
3054export interface RealTimePullRequestEvent {
3055 /**
3056 * The id of this event. Can be used to track send/receive state between client and server.
3057 */
3058 eventId?: string;
3059 /**
3060 * The id of the pull request this event was generated for.
3061 */
3062 pullRequestId?: number;
3063}
3064export declare enum RefFavoriteType {
3065 Invalid = 0,
3066 Folder = 1,
3067 Ref = 2
3068}
3069/**
3070 * Real time event (SignalR) for when the target branch of a pull request is changed
3071 */
3072export interface RetargetEvent extends RealTimePullRequestEvent {
3073}
3074/**
3075 * Real time event (SignalR) for an update to reviewers on a pull request
3076 */
3077export interface ReviewersUpdatedEvent extends RealTimePullRequestEvent {
3078}
3079/**
3080 * Real time event (SignalR) for reviewer votes being reset on a pull request
3081 */
3082export interface ReviewersVotesResetEvent extends RealTimePullRequestEvent {
3083}
3084/**
3085 * Real time event (SignalR) for a reviewer vote update on a pull request
3086 */
3087export interface ReviewerVoteUpdatedEvent extends RealTimePullRequestEvent {
3088}
3089/**
3090 * Context used while sharing a pull request.
3091 */
3092export interface ShareNotificationContext {
3093 /**
3094 * Optional user note or message.
3095 */
3096 message?: string;
3097 /**
3098 * Identities of users who will receive a share notification.
3099 */
3100 receivers?: VSSInterfaces.IdentityRef[];
3101}
3102export interface SourceToTargetRef {
3103 /**
3104 * The source ref to copy. For example, refs/heads/master.
3105 */
3106 sourceRef?: string;
3107 /**
3108 * The target ref to update. For example, refs/heads/master.
3109 */
3110 targetRef?: string;
3111}
3112/**
3113 * Real time event (SignalR) for an added status on a pull request
3114 */
3115export interface StatusAddedEvent extends RealTimePullRequestEvent {
3116}
3117/**
3118 * Real time event (SignalR) for deleted statuses on a pull request
3119 */
3120export interface StatusesDeletedEvent extends RealTimePullRequestEvent {
3121}
3122/**
3123 * Real time event (SignalR) for a status update on a pull request
3124 */
3125export interface StatusUpdatedEvent extends RealTimePullRequestEvent {
3126}
3127/**
3128 * Represents a Supported IDE entity.
3129 */
3130export interface SupportedIde {
3131 /**
3132 * The download URL for the IDE.
3133 */
3134 downloadUrl?: string;
3135 /**
3136 * The type of the IDE.
3137 */
3138 ideType?: SupportedIdeType;
3139 /**
3140 * The name of the IDE.
3141 */
3142 name?: string;
3143 /**
3144 * The URL to open the protocol handler for the IDE.
3145 */
3146 protocolHandlerUrl?: string;
3147 /**
3148 * A list of SupportedPlatforms.
3149 */
3150 supportedPlatforms?: string[];
3151}
3152/**
3153 * Enumeration that represents the types of IDEs supported.
3154 */
3155export declare enum SupportedIdeType {
3156 Unknown = 0,
3157 AndroidStudio = 1,
3158 AppCode = 2,
3159 CLion = 3,
3160 DataGrip = 4,
3161 Eclipse = 13,
3162 IntelliJ = 5,
3163 MPS = 6,
3164 PhpStorm = 7,
3165 PyCharm = 8,
3166 RubyMine = 9,
3167 Tower = 10,
3168 VisualStudio = 11,
3169 VSCode = 14,
3170 WebStorm = 12
3171}
3172/**
3173 * Class representing a branch object.
3174 */
3175export interface TfvcBranch extends TfvcBranchRef {
3176 /**
3177 * List of children for the branch.
3178 */
3179 children?: TfvcBranch[];
3180 /**
3181 * List of branch mappings.
3182 */
3183 mappings?: TfvcBranchMapping[];
3184 /**
3185 * Path of the branch's parent.
3186 */
3187 parent?: TfvcShallowBranchRef;
3188 /**
3189 * List of paths of the related branches.
3190 */
3191 relatedBranches?: TfvcShallowBranchRef[];
3192}
3193/**
3194 * A branch mapping.
3195 */
3196export interface TfvcBranchMapping {
3197 /**
3198 * Depth of the branch.
3199 */
3200 depth?: string;
3201 /**
3202 * Server item for the branch.
3203 */
3204 serverItem?: string;
3205 /**
3206 * Type of the branch.
3207 */
3208 type?: string;
3209}
3210/**
3211 * Metadata for a branchref.
3212 */
3213export interface TfvcBranchRef extends TfvcShallowBranchRef {
3214 /**
3215 * A collection of REST reference links.
3216 */
3217 _links?: any;
3218 /**
3219 * Creation date of the branch.
3220 */
3221 createdDate?: Date;
3222 /**
3223 * Branch description.
3224 */
3225 description?: string;
3226 /**
3227 * Is the branch deleted?
3228 */
3229 isDeleted?: boolean;
3230 /**
3231 * Alias or display name of user
3232 */
3233 owner?: VSSInterfaces.IdentityRef;
3234 /**
3235 * URL to retrieve the item.
3236 */
3237 url?: string;
3238}
3239/**
3240 * A change.
3241 */
3242export interface TfvcChange extends Change<TfvcItem> {
3243 /**
3244 * List of merge sources in case of rename or branch creation.
3245 */
3246 mergeSources?: TfvcMergeSource[];
3247 /**
3248 * Version at which a (shelved) change was pended against
3249 */
3250 pendingVersion?: number;
3251}
3252/**
3253 * A collection of changes.
3254 */
3255export interface TfvcChangeset extends TfvcChangesetRef {
3256 /**
3257 * Changeset Account Id also known as Organization Id.
3258 */
3259 accountId?: string;
3260 /**
3261 * List of associated changes.
3262 */
3263 changes?: TfvcChange[];
3264 /**
3265 * List of Checkin Notes for the changeset.
3266 */
3267 checkinNotes?: CheckinNote[];
3268 /**
3269 * Changeset collection Id.
3270 */
3271 collectionId?: string;
3272 /**
3273 * True if more changes are available.
3274 */
3275 hasMoreChanges?: boolean;
3276 /**
3277 * Policy Override for the changeset.
3278 */
3279 policyOverride?: TfvcPolicyOverrideInfo;
3280 /**
3281 * Team Project Ids for the changeset.
3282 */
3283 teamProjectIds?: string[];
3284 /**
3285 * List of work items associated with the changeset.
3286 */
3287 workItems?: AssociatedWorkItem[];
3288}
3289/**
3290 * Metadata for a changeset.
3291 */
3292export interface TfvcChangesetRef {
3293 /**
3294 * A collection of REST reference links.
3295 */
3296 _links?: any;
3297 /**
3298 * Alias or display name of user.
3299 */
3300 author?: VSSInterfaces.IdentityRef;
3301 /**
3302 * Changeset Id.
3303 */
3304 changesetId?: number;
3305 /**
3306 * Alias or display name of user.
3307 */
3308 checkedInBy?: VSSInterfaces.IdentityRef;
3309 /**
3310 * Comment for the changeset.
3311 */
3312 comment?: string;
3313 /**
3314 * Was the Comment result truncated?
3315 */
3316 commentTruncated?: boolean;
3317 /**
3318 * Creation date of the changeset.
3319 */
3320 createdDate?: Date;
3321 /**
3322 * URL to retrieve the item.
3323 */
3324 url?: string;
3325}
3326/**
3327 * Criteria used in a search for change lists.
3328 */
3329export interface TfvcChangesetSearchCriteria {
3330 /**
3331 * Alias or display name of user who made the changes.
3332 */
3333 author?: string;
3334 /**
3335 * Whether or not to follow renames for the given item being queried.
3336 */
3337 followRenames?: boolean;
3338 /**
3339 * If provided, only include changesets created after this date (string).
3340 */
3341 fromDate?: string;
3342 /**
3343 * If provided, only include changesets after this changesetID.
3344 */
3345 fromId?: number;
3346 /**
3347 * Whether to include the _links field on the shallow references.
3348 */
3349 includeLinks?: boolean;
3350 /**
3351 * Path of item to search under.
3352 */
3353 itemPath?: string;
3354 mappings?: TfvcMappingFilter[];
3355 /**
3356 * If provided, only include changesets created before this date (string).
3357 */
3358 toDate?: string;
3359 /**
3360 * If provided, a version descriptor for the latest change list to include.
3361 */
3362 toId?: number;
3363}
3364/**
3365 * Request body for Get batched changesets.
3366 */
3367export interface TfvcChangesetsRequestData {
3368 /**
3369 * List of changeset Ids.
3370 */
3371 changesetIds?: number[];
3372 /**
3373 * Max length of the comment.
3374 */
3375 commentLength?: number;
3376 /**
3377 * Whether to include the _links field on the shallow references
3378 */
3379 includeLinks?: boolean;
3380}
3381export interface TfvcCheckinEventData {
3382 changeset?: TfvcChangeset;
3383 project?: TfsCoreInterfaces.TeamProjectReference;
3384}
3385export interface TfvcHistoryEntry extends HistoryEntry<TfvcItem> {
3386 /**
3387 * The encoding of the item at this point in history (only relevant for File history, not folders)
3388 */
3389 encoding?: number;
3390 /**
3391 * The file id of the item at this point in history (only relevant for File history, not folders)
3392 */
3393 fileId?: number;
3394}
3395/**
3396 * Metadata for an item.
3397 */
3398export interface TfvcItem extends ItemModel {
3399 /**
3400 * Item changed datetime.
3401 */
3402 changeDate?: Date;
3403 /**
3404 * Greater than 0 if item is deleted.
3405 */
3406 deletionId?: number;
3407 /**
3408 * File encoding from database, -1 represents binary.
3409 */
3410 encoding?: number;
3411 /**
3412 * MD5 hash as a base 64 string, applies to files only.
3413 */
3414 hashValue?: string;
3415 /**
3416 * True if item is a branch.
3417 */
3418 isBranch?: boolean;
3419 /**
3420 * True if there is a change pending.
3421 */
3422 isPendingChange?: boolean;
3423 /**
3424 * The size of the file, if applicable.
3425 */
3426 size?: number;
3427 /**
3428 * Changeset version Id.
3429 */
3430 version?: number;
3431}
3432/**
3433 * Item path and Version descriptor properties
3434 */
3435export interface TfvcItemDescriptor {
3436 /**
3437 * Item path.
3438 */
3439 path?: string;
3440 /**
3441 * Defaults to OneLevel.
3442 */
3443 recursionLevel?: VersionControlRecursionType;
3444 /**
3445 * Specify the desired version, can be null or empty string only if VersionType is latest or tip.
3446 */
3447 version?: string;
3448 /**
3449 * Defaults to None.
3450 */
3451 versionOption?: TfvcVersionOption;
3452 /**
3453 * Defaults to Latest.
3454 */
3455 versionType?: TfvcVersionType;
3456}
3457/**
3458 * Metadata for an item including the previous hash value for files.
3459 */
3460export interface TfvcItemPreviousHash extends TfvcItem {
3461 /**
3462 * MD5 hash as a base 64 string, applies to files only.
3463 */
3464 previousHashValue?: string;
3465}
3466/**
3467 * Request body used by Get Items Batch
3468 */
3469export interface TfvcItemRequestData {
3470 /**
3471 * If true, include metadata about the file type
3472 */
3473 includeContentMetadata?: boolean;
3474 /**
3475 * Whether to include the _links field on the shallow references
3476 */
3477 includeLinks?: boolean;
3478 itemDescriptors?: TfvcItemDescriptor[];
3479}
3480/**
3481 * Metadata for a label.
3482 */
3483export interface TfvcLabel extends TfvcLabelRef {
3484 /**
3485 * List of items.
3486 */
3487 items?: TfvcItem[];
3488}
3489/**
3490 * Metadata for a Label.
3491 */
3492export interface TfvcLabelRef {
3493 /**
3494 * Collection of reference links.
3495 */
3496 _links?: any;
3497 /**
3498 * Label description.
3499 */
3500 description?: string;
3501 /**
3502 * Label Id.
3503 */
3504 id?: number;
3505 /**
3506 * Label scope.
3507 */
3508 labelScope?: string;
3509 /**
3510 * Last modified datetime for the label.
3511 */
3512 modifiedDate?: Date;
3513 /**
3514 * Label name.
3515 */
3516 name?: string;
3517 /**
3518 * Label owner.
3519 */
3520 owner?: VSSInterfaces.IdentityRef;
3521 /**
3522 * Label Url.
3523 */
3524 url?: string;
3525}
3526export interface TfvcLabelRequestData {
3527 /**
3528 * Whether to include the _links field on the shallow references
3529 */
3530 includeLinks?: boolean;
3531 itemLabelFilter?: string;
3532 labelScope?: string;
3533 maxItemCount?: number;
3534 name?: string;
3535 owner?: string;
3536}
3537/**
3538 * MappingFilter can be used to include or exclude specific paths.
3539 */
3540export interface TfvcMappingFilter {
3541 /**
3542 * True if ServerPath should be excluded.
3543 */
3544 exclude?: boolean;
3545 /**
3546 * Path to be included or excluded.
3547 */
3548 serverPath?: string;
3549}
3550export interface TfvcMergeSource {
3551 /**
3552 * Indicates if this a rename source. If false, it is a merge source.
3553 */
3554 isRename?: boolean;
3555 /**
3556 * The server item of the merge source.
3557 */
3558 serverItem?: string;
3559 /**
3560 * Start of the version range.
3561 */
3562 versionFrom?: number;
3563 /**
3564 * End of the version range.
3565 */
3566 versionTo?: number;
3567}
3568/**
3569 * Policy failure information.
3570 */
3571export interface TfvcPolicyFailureInfo {
3572 /**
3573 * Policy failure message.
3574 */
3575 message?: string;
3576 /**
3577 * Name of the policy that failed.
3578 */
3579 policyName?: string;
3580}
3581/**
3582 * Information on the policy override.
3583 */
3584export interface TfvcPolicyOverrideInfo {
3585 /**
3586 * Overidden policy comment.
3587 */
3588 comment?: string;
3589 /**
3590 * Information on the failed policy that was overridden.
3591 */
3592 policyFailures?: TfvcPolicyFailureInfo[];
3593}
3594/**
3595 * This is the shallow branchref class.
3596 */
3597export interface TfvcShallowBranchRef {
3598 /**
3599 * Path for the branch.
3600 */
3601 path?: string;
3602}
3603/**
3604 * Metadata for a shelveset.
3605 */
3606export interface TfvcShelveset extends TfvcShelvesetRef {
3607 /**
3608 * List of changes.
3609 */
3610 changes?: TfvcChange[];
3611 /**
3612 * List of checkin notes.
3613 */
3614 notes?: CheckinNote[];
3615 /**
3616 * Policy override information if applicable.
3617 */
3618 policyOverride?: TfvcPolicyOverrideInfo;
3619 /**
3620 * List of associated workitems.
3621 */
3622 workItems?: AssociatedWorkItem[];
3623}
3624/**
3625 * Metadata for a shallow shelveset.
3626 */
3627export interface TfvcShelvesetRef {
3628 /**
3629 * List of reference links for the shelveset.
3630 */
3631 _links?: any;
3632 /**
3633 * Shelveset comment.
3634 */
3635 comment?: string;
3636 /**
3637 * Shelveset comment truncated as applicable.
3638 */
3639 commentTruncated?: boolean;
3640 /**
3641 * Shelveset create date.
3642 */
3643 createdDate?: Date;
3644 /**
3645 * Shelveset Id.
3646 */
3647 id?: string;
3648 /**
3649 * Shelveset name.
3650 */
3651 name?: string;
3652 /**
3653 * Shelveset Owner.
3654 */
3655 owner?: VSSInterfaces.IdentityRef;
3656 /**
3657 * Shelveset Url.
3658 */
3659 url?: string;
3660}
3661export interface TfvcShelvesetRequestData {
3662 /**
3663 * Whether to include policyOverride and notes Only applies when requesting a single deep shelveset
3664 */
3665 includeDetails?: boolean;
3666 /**
3667 * 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.
3668 */
3669 includeLinks?: boolean;
3670 /**
3671 * Whether to include workItems
3672 */
3673 includeWorkItems?: boolean;
3674 /**
3675 * Max number of changes to include
3676 */
3677 maxChangeCount?: number;
3678 /**
3679 * Max length of comment
3680 */
3681 maxCommentLength?: number;
3682 /**
3683 * Shelveset name
3684 */
3685 name?: string;
3686 /**
3687 * Owner's ID. Could be a name or a guid.
3688 */
3689 owner?: string;
3690}
3691export interface TfvcStatistics {
3692 /**
3693 * Id of the last changeset the stats are based on.
3694 */
3695 changesetId?: number;
3696 /**
3697 * Count of files at the requested scope.
3698 */
3699 fileCountTotal?: number;
3700}
3701/**
3702 * Version descriptor properties.
3703 */
3704export interface TfvcVersionDescriptor {
3705 /**
3706 * Version object.
3707 */
3708 version?: string;
3709 versionOption?: TfvcVersionOption;
3710 versionType?: TfvcVersionType;
3711}
3712/**
3713 * Options for Version handling.
3714 */
3715export declare enum TfvcVersionOption {
3716 /**
3717 * None.
3718 */
3719 None = 0,
3720 /**
3721 * Return the previous version.
3722 */
3723 Previous = 1,
3724 /**
3725 * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier.
3726 */
3727 UseRename = 2
3728}
3729/**
3730 * Type of Version object
3731 */
3732export declare enum TfvcVersionType {
3733 /**
3734 * Version is treated as a ChangesetId.
3735 */
3736 None = 0,
3737 /**
3738 * Version is treated as a ChangesetId.
3739 */
3740 Changeset = 1,
3741 /**
3742 * Version is treated as a Shelveset name and owner.
3743 */
3744 Shelveset = 2,
3745 /**
3746 * Version is treated as a Change.
3747 */
3748 Change = 3,
3749 /**
3750 * Version is treated as a Date.
3751 */
3752 Date = 4,
3753 /**
3754 * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used.
3755 */
3756 Latest = 5,
3757 /**
3758 * Version will be treated as a Tip, if no version is defined latest will be used.
3759 */
3760 Tip = 6,
3761 /**
3762 * Version will be treated as a MergeSource.
3763 */
3764 MergeSource = 7
3765}
3766/**
3767 * Real time event (SignalR) for a title/description update on a pull request
3768 */
3769export interface TitleDescriptionUpdatedEvent extends RealTimePullRequestEvent {
3770}
3771export interface UpdateRefsRequest {
3772 refUpdateRequests?: GitRefUpdate[];
3773 updateMode?: GitRefUpdateMode;
3774}
3775export declare enum VersionControlChangeType {
3776 None = 0,
3777 Add = 1,
3778 Edit = 2,
3779 Encoding = 4,
3780 Rename = 8,
3781 Delete = 16,
3782 Undelete = 32,
3783 Branch = 64,
3784 Merge = 128,
3785 Lock = 256,
3786 Rollback = 512,
3787 SourceRename = 1024,
3788 TargetRename = 2048,
3789 Property = 4096,
3790 All = 8191
3791}
3792export interface VersionControlProjectInfo {
3793 defaultSourceControlType?: TfsCoreInterfaces.SourceControlTypes;
3794 project?: TfsCoreInterfaces.TeamProjectReference;
3795 supportsGit?: boolean;
3796 supportsTFVC?: boolean;
3797}
3798export declare enum VersionControlRecursionType {
3799 /**
3800 * Only return the specified item.
3801 */
3802 None = 0,
3803 /**
3804 * Return the specified item and its direct children.
3805 */
3806 OneLevel = 1,
3807 /**
3808 * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder.
3809 */
3810 OneLevelPlusNestedEmptyFolders = 4,
3811 /**
3812 * Return specified item and all descendants
3813 */
3814 Full = 120
3815}
3816export declare var TypeInfo: {
3817 AdvSecEnablementStatus: any;
3818 Attachment: any;
3819 BillableCommitterDetail: any;
3820 Change: any;
3821 ChangeList: any;
3822 Comment: any;
3823 CommentThread: any;
3824 CommentThreadStatus: {
3825 enumValues: {
3826 unknown: number;
3827 active: number;
3828 fixed: number;
3829 wontFix: number;
3830 closed: number;
3831 byDesign: number;
3832 pending: number;
3833 };
3834 };
3835 CommentType: {
3836 enumValues: {
3837 unknown: number;
3838 text: number;
3839 codeChange: number;
3840 system: number;
3841 };
3842 };
3843 FileDiff: any;
3844 GitAnnotatedTag: any;
3845 GitAsyncOperationStatus: {
3846 enumValues: {
3847 queued: number;
3848 inProgress: number;
3849 completed: number;
3850 failed: number;
3851 abandoned: number;
3852 };
3853 };
3854 GitAsyncRefOperation: any;
3855 GitAsyncRefOperationDetail: any;
3856 GitAsyncRefOperationFailureStatus: {
3857 enumValues: {
3858 none: number;
3859 invalidRefName: number;
3860 refNameConflict: number;
3861 createBranchPermissionRequired: number;
3862 writePermissionRequired: number;
3863 targetBranchDeleted: number;
3864 gitObjectTooLarge: number;
3865 operationIndentityNotFound: number;
3866 asyncOperationNotFound: number;
3867 other: number;
3868 emptyCommitterSignature: number;
3869 };
3870 };
3871 GitAsyncRefOperationParameters: any;
3872 GitAsyncRefOperationSource: any;
3873 GitBaseVersionDescriptor: any;
3874 GitBranchStats: any;
3875 GitChange: any;
3876 GitCherryPick: any;
3877 GitCommit: any;
3878 GitCommitChanges: any;
3879 GitCommitDiffs: any;
3880 GitCommitRef: any;
3881 GitCommitToCreate: any;
3882 GitConflict: any;
3883 GitConflictAddAdd: any;
3884 GitConflictAddRename: any;
3885 GitConflictDeleteEdit: any;
3886 GitConflictDeleteRename: any;
3887 GitConflictDirectoryFile: any;
3888 GitConflictEditDelete: any;
3889 GitConflictEditEdit: any;
3890 GitConflictFileDirectory: any;
3891 GitConflictRename1to2: any;
3892 GitConflictRename2to1: any;
3893 GitConflictRenameAdd: any;
3894 GitConflictRenameDelete: any;
3895 GitConflictRenameRename: any;
3896 GitConflictType: {
3897 enumValues: {
3898 none: number;
3899 addAdd: number;
3900 addRename: number;
3901 deleteEdit: number;
3902 deleteRename: number;
3903 directoryFile: number;
3904 directoryChild: number;
3905 editDelete: number;
3906 editEdit: number;
3907 fileDirectory: number;
3908 rename1to2: number;
3909 rename2to1: number;
3910 renameAdd: number;
3911 renameDelete: number;
3912 renameRename: number;
3913 };
3914 };
3915 GitConflictUpdateResult: any;
3916 GitConflictUpdateStatus: {
3917 enumValues: {
3918 succeeded: number;
3919 badRequest: number;
3920 invalidResolution: number;
3921 unsupportedConflictType: number;
3922 notFound: number;
3923 };
3924 };
3925 GitDeletedRepository: any;
3926 GitForkRef: any;
3927 GitForkSyncRequest: any;
3928 GitForkTeamProjectReference: any;
3929 GitHistoryMode: {
3930 enumValues: {
3931 simplifiedHistory: number;
3932 firstParent: number;
3933 fullHistory: number;
3934 fullHistorySimplifyMerges: number;
3935 };
3936 };
3937 GitImportFailedEvent: any;
3938 GitImportRequest: any;
3939 GitImportSucceededEvent: any;
3940 GitItem: any;
3941 GitItemDescriptor: any;
3942 GitItemRequestData: any;
3943 GitLastChangeTreeItems: any;
3944 GitMerge: any;
3945 GitObject: any;
3946 GitObjectType: {
3947 enumValues: {
3948 bad: number;
3949 commit: number;
3950 tree: number;
3951 blob: number;
3952 tag: number;
3953 ext2: number;
3954 ofsDelta: number;
3955 refDelta: number;
3956 };
3957 };
3958 GitPathAction: any;
3959 GitPathActions: {
3960 enumValues: {
3961 none: number;
3962 edit: number;
3963 delete: number;
3964 add: number;
3965 rename: number;
3966 };
3967 };
3968 GitPathToItemsCollection: any;
3969 GitPolicyConfigurationResponse: any;
3970 GitPullRequest: any;
3971 GitPullRequestChange: any;
3972 GitPullRequestCommentThread: any;
3973 GitPullRequestCompletionOptions: any;
3974 GitPullRequestIteration: any;
3975 GitPullRequestIterationChanges: any;
3976 GitPullRequestMergeStrategy: {
3977 enumValues: {
3978 noFastForward: number;
3979 squash: number;
3980 rebase: number;
3981 rebaseMerge: number;
3982 };
3983 };
3984 GitPullRequestQuery: any;
3985 GitPullRequestQueryInput: any;
3986 GitPullRequestQueryType: {
3987 enumValues: {
3988 notSet: number;
3989 lastMergeCommit: number;
3990 commit: number;
3991 };
3992 };
3993 GitPullRequestReviewFileType: {
3994 enumValues: {
3995 changeEntry: number;
3996 attachment: number;
3997 };
3998 };
3999 GitPullRequestSearchCriteria: any;
4000 GitPullRequestStatus: any;
4001 GitPush: any;
4002 GitPushEventData: any;
4003 GitPushRef: any;
4004 GitPushSearchCriteria: any;
4005 GitQueryBranchStatsCriteria: any;
4006 GitQueryCommitsCriteria: any;
4007 GitQueryRefsCriteria: any;
4008 GitRef: any;
4009 GitRefFavorite: any;
4010 GitRefSearchType: {
4011 enumValues: {
4012 exact: number;
4013 startsWith: number;
4014 contains: number;
4015 };
4016 };
4017 GitRefUpdateMode: {
4018 enumValues: {
4019 bestEffort: number;
4020 allOrNone: number;
4021 };
4022 };
4023 GitRefUpdateResult: any;
4024 GitRefUpdateStatus: {
4025 enumValues: {
4026 succeeded: number;
4027 forcePushRequired: number;
4028 staleOldObjectId: number;
4029 invalidRefName: number;
4030 unprocessed: number;
4031 unresolvableToCommit: number;
4032 writePermissionRequired: number;
4033 manageNotePermissionRequired: number;
4034 createBranchPermissionRequired: number;
4035 createTagPermissionRequired: number;
4036 rejectedByPlugin: number;
4037 locked: number;
4038 refNameConflict: number;
4039 rejectedByPolicy: number;
4040 succeededNonExistentRef: number;
4041 succeededCorruptRef: number;
4042 };
4043 };
4044 GitRepository: any;
4045 GitRepositoryCreateOptions: any;
4046 GitRepositoryRef: any;
4047 GitResolutionError: {
4048 enumValues: {
4049 none: number;
4050 mergeContentNotFound: number;
4051 pathInUse: number;
4052 invalidPath: number;
4053 unknownAction: number;
4054 unknownMergeType: number;
4055 otherError: number;
4056 };
4057 };
4058 GitResolutionMergeContent: any;
4059 GitResolutionMergeType: {
4060 enumValues: {
4061 undecided: number;
4062 takeSourceContent: number;
4063 takeTargetContent: number;
4064 autoMerged: number;
4065 userMerged: number;
4066 };
4067 };
4068 GitResolutionPathConflict: any;
4069 GitResolutionPathConflictAction: {
4070 enumValues: {
4071 undecided: number;
4072 keepSourceRenameTarget: number;
4073 keepSourceDeleteTarget: number;
4074 keepTargetRenameSource: number;
4075 keepTargetDeleteSource: number;
4076 };
4077 };
4078 GitResolutionPickOneAction: any;
4079 GitResolutionRename1to2: any;
4080 GitResolutionRename1to2Action: {
4081 enumValues: {
4082 undecided: number;
4083 keepSourcePath: number;
4084 keepTargetPath: number;
4085 keepBothFiles: number;
4086 };
4087 };
4088 GitResolutionStatus: {
4089 enumValues: {
4090 unresolved: number;
4091 partiallyResolved: number;
4092 resolved: number;
4093 };
4094 };
4095 GitResolutionWhichAction: {
4096 enumValues: {
4097 undecided: number;
4098 pickSourceAction: number;
4099 pickTargetAction: number;
4100 };
4101 };
4102 GitRevert: any;
4103 GitStatus: any;
4104 GitStatusState: {
4105 enumValues: {
4106 notSet: number;
4107 pending: number;
4108 succeeded: number;
4109 failed: number;
4110 error: number;
4111 notApplicable: number;
4112 partiallySucceeded: number;
4113 };
4114 };
4115 GitTargetVersionDescriptor: any;
4116 GitTreeDiff: any;
4117 GitTreeDiffEntry: any;
4118 GitTreeDiffResponse: any;
4119 GitTreeEntryRef: any;
4120 GitTreeRef: any;
4121 GitUserDate: any;
4122 GitVersionDescriptor: any;
4123 GitVersionOptions: {
4124 enumValues: {
4125 none: number;
4126 previousChange: number;
4127 firstParent: number;
4128 };
4129 };
4130 GitVersionType: {
4131 enumValues: {
4132 branch: number;
4133 tag: number;
4134 commit: number;
4135 };
4136 };
4137 HistoryEntry: any;
4138 IncludedGitCommit: any;
4139 ItemContent: any;
4140 ItemContentType: {
4141 enumValues: {
4142 rawText: number;
4143 base64Encoded: number;
4144 };
4145 };
4146 ItemDetailsOptions: any;
4147 IterationReason: {
4148 enumValues: {
4149 push: number;
4150 forcePush: number;
4151 create: number;
4152 rebase: number;
4153 unknown: number;
4154 retarget: number;
4155 resolveConflicts: number;
4156 };
4157 };
4158 LineDiffBlock: any;
4159 LineDiffBlockChangeType: {
4160 enumValues: {
4161 none: number;
4162 add: number;
4163 delete: number;
4164 edit: number;
4165 };
4166 };
4167 PullRequestAsyncStatus: {
4168 enumValues: {
4169 notSet: number;
4170 queued: number;
4171 conflicts: number;
4172 succeeded: number;
4173 rejectedByPolicy: number;
4174 failure: number;
4175 };
4176 };
4177 PullRequestMergeFailureType: {
4178 enumValues: {
4179 none: number;
4180 unknown: number;
4181 caseSensitive: number;
4182 objectTooLarge: number;
4183 };
4184 };
4185 PullRequestStatus: {
4186 enumValues: {
4187 notSet: number;
4188 active: number;
4189 abandoned: number;
4190 completed: number;
4191 all: number;
4192 };
4193 };
4194 PullRequestTimeRangeType: {
4195 enumValues: {
4196 created: number;
4197 closed: number;
4198 };
4199 };
4200 RefFavoriteType: {
4201 enumValues: {
4202 invalid: number;
4203 folder: number;
4204 ref: number;
4205 };
4206 };
4207 SupportedIde: any;
4208 SupportedIdeType: {
4209 enumValues: {
4210 unknown: number;
4211 androidStudio: number;
4212 appCode: number;
4213 cLion: number;
4214 dataGrip: number;
4215 eclipse: number;
4216 intelliJ: number;
4217 mps: number;
4218 phpStorm: number;
4219 pyCharm: number;
4220 rubyMine: number;
4221 tower: number;
4222 visualStudio: number;
4223 vsCode: number;
4224 webStorm: number;
4225 };
4226 };
4227 TfvcBranch: any;
4228 TfvcBranchRef: any;
4229 TfvcChange: any;
4230 TfvcChangeset: any;
4231 TfvcChangesetRef: any;
4232 TfvcCheckinEventData: any;
4233 TfvcHistoryEntry: any;
4234 TfvcItem: any;
4235 TfvcItemDescriptor: any;
4236 TfvcItemPreviousHash: any;
4237 TfvcItemRequestData: any;
4238 TfvcLabel: any;
4239 TfvcLabelRef: any;
4240 TfvcShelveset: any;
4241 TfvcShelvesetRef: any;
4242 TfvcVersionDescriptor: any;
4243 TfvcVersionOption: {
4244 enumValues: {
4245 none: number;
4246 previous: number;
4247 useRename: number;
4248 };
4249 };
4250 TfvcVersionType: {
4251 enumValues: {
4252 none: number;
4253 changeset: number;
4254 shelveset: number;
4255 change: number;
4256 date: number;
4257 latest: number;
4258 tip: number;
4259 mergeSource: number;
4260 };
4261 };
4262 UpdateRefsRequest: any;
4263 VersionControlChangeType: {
4264 enumValues: {
4265 none: number;
4266 add: number;
4267 edit: number;
4268 encoding: number;
4269 rename: number;
4270 delete: number;
4271 undelete: number;
4272 branch: number;
4273 merge: number;
4274 lock: number;
4275 rollback: number;
4276 sourceRename: number;
4277 targetRename: number;
4278 property: number;
4279 all: number;
4280 };
4281 };
4282 VersionControlProjectInfo: any;
4283 VersionControlRecursionType: {
4284 enumValues: {
4285 none: number;
4286 oneLevel: number;
4287 oneLevelPlusNestedEmptyFolders: number;
4288 full: number;
4289 };
4290 };
4291};