private void VerifyCommit(VersionControlChangeType changeType, string message)
 {
     gitClientMock.Verify(c => c.CreatePushAsync(
                              Match.Create <GitPush>(gp =>
                                                     VerifyCommit(gp, changeType, message)
                                                     ),
                              repositoryId,
                              It.IsAny <object>(),
                              It.IsAny <CancellationToken>()
                              ));
 }
        private bool VerifyCommit(GitPush gp, VersionControlChangeType changeType, string message)
        {
            //gp.RefUpdates.Single().RepositoryId == new Guid(repositoryId) &&
            var result = gp.RefUpdates.Single().OldObjectId == expectedOldObjectId &&
                         gp.Commits.Single().Comment == message &&
                         gp.Commits.Single().Changes.Single().ChangeType == changeType &&
                         gp.Commits.Single().Changes.Single().Item.Path == repoRoot + expectedPath &&
                         gp.Commits.Single().Changes.Single().NewContent.ContentType == ItemContentType.RawText &&
                         gp.Commits.Single().Changes.Single().NewContent.Content == expectedContents;

            return(result);
        }
Example #3
0
        public static SourceControlFileState ToSourceControlFileState(this VersionControlChangeType source)
        {
            if (source == VersionControlChangeType.Add)
            {
                return(SourceControlFileState.Added);
            }

            if (source == VersionControlChangeType.Delete)
            {
                return(SourceControlFileState.Deleted);
            }

            if (source == (VersionControlChangeType.SourceRename | VersionControlChangeType.Delete))
            {
                return(SourceControlFileState.Deleted);
            }

            return(SourceControlFileState.Changed);
        }
Example #4
0
        /// <summary>
        /// Push changes to branch
        /// </summary>
        /// <param name="teamProjectName"></param>
        /// <param name="gitRepoName"></param>
        /// <param name="branchRef"></param>
        /// <param name="branchOldId"></param>
        /// <param name="targetPath"></param>
        /// <param name="fileContent"></param>
        /// <param name="itemContentType"></param>
        /// <param name="versionControlChangeType"></param>
        /// <param name="commitComment"></param>
        private static void PushChanges(string teamProjectName, string gitRepoName, string branchRef, string branchOldId, string targetPath, string fileContent, ItemContentType itemContentType, VersionControlChangeType versionControlChangeType, string commitComment)
        {
            GitRefUpdate branch = new GitRefUpdate();

            branch.OldObjectId = branchOldId;
            branch.Name        = branchRef;

            GitCommitRef newCommit = new GitCommitRef();

            newCommit.Comment = commitComment;
            GitChange gitChange = new GitChange();

            gitChange.ChangeType = versionControlChangeType;
            gitChange.Item       = new GitItem()
            {
                Path = targetPath
            };
            gitChange.NewContent = new ItemContent()
            {
                Content = fileContent, ContentType = itemContentType
            };
            newCommit.Changes = new GitChange[] { gitChange };

            GitPush gitPush = new GitPush();

            gitPush.RefUpdates = new GitRefUpdate[] { branch };
            gitPush.Commits    = new GitCommitRef[] { newCommit };

            var pushResult = GitClient.CreatePushAsync(gitPush, teamProjectName, gitRepoName).Result;

            Console.WriteLine("Push id: " + pushResult.PushId);
        }
Example #5
0
        /// <summary>
        /// Push changes to remove, rename or move files
        /// </summary>
        /// <param name="teamProjectName"></param>
        /// <param name="gitRepoName"></param>
        /// <param name="branchRef"></param>
        /// <param name="branchOldId"></param>
        /// <param name="oldPath"></param>
        /// <param name="targetPath"></param>
        /// <param name="versionControlChangeType"></param>
        /// <param name="commitComment"></param>
        private static void PushChanges(string teamProjectName, string gitRepoName, string branchRef, string branchOldId, string oldPath, string targetPath, VersionControlChangeType versionControlChangeType, string commitComment)
        {
            GitRefUpdate branch = new GitRefUpdate();

            branch.OldObjectId = branchOldId;
            branch.Name        = branchRef;

            GitCommitRef newCommit = new GitCommitRef();

            newCommit.Comment = commitComment;
            GitChange gitChange = new GitChange();

            gitChange.ChangeType = versionControlChangeType;
            if (!string.IsNullOrEmpty(oldPath))
            {
                gitChange.SourceServerItem = oldPath;
            }
            gitChange.Item = new GitItem()
            {
                Path = targetPath
            };
            newCommit.Changes = new GitChange[] { gitChange };

            GitPush gitPush = new GitPush();

            gitPush.RefUpdates = new GitRefUpdate[] { branch };
            gitPush.Commits    = new GitCommitRef[] { newCommit };

            var pushResult = GitClient.CreatePushAsync(gitPush, teamProjectName, gitRepoName).Result;

            Console.WriteLine("Push id: " + pushResult.PushId);
        }
Example #6
0
 private void PushChange(string path, Stream stream, string lastCommitId, string message, VersionControlChangeType changeType)
 {
     var fileContents = new StreamReader(stream).ReadToEnd();
     var result       = gitClient.CreatePushAsync(new GitPush
     {
         RefUpdates = new[]
         {
             new GitRefUpdate
             {
                 Name        = "refs/heads/master",
                 OldObjectId = lastCommitId
             }
         },
         Commits = new[]
         {
             new GitCommit
             {
                 Comment = message,
                 Changes = new[]
                 {
                     new GitChange
                     {
                         ChangeType = changeType,
                         Item       = new GitItem
                         {
                             Path = repoRoot + path
                         },
                         NewContent = new ItemContent
                         {
                             ContentType = ItemContentType.RawText,
                             Content     = fileContents
                         }
                     }
                 }
             }
         }
     }, repositoryId).SyncResult();
 }