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); }
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); }
/// <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); }
/// <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); }
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(); }