public async Task FetchesAllFilesForPullRequestWithRepositoryId() { var file = new PullRequestFile(null, null, null, 0, 0, 0, null, null, null, null, null); var expectedUrl = "repositories/1/pulls/42/files"; var gitHubClient = Substitute.For <IGitHubClient>(); var connection = Substitute.For <IConnection>(); IApiResponse <List <PullRequestFile> > response = new ApiResponse <List <PullRequestFile> > ( new Response(), new List <PullRequestFile> { file } ); connection.Get <List <PullRequestFile> >(Args.Uri, null, null) .Returns(Task.FromResult(response)); gitHubClient.Connection.Returns(connection); var client = new ObservablePullRequestsClient(gitHubClient); var files = await client.Files(1, 42).ToList(); Assert.Equal(1, files.Count); Assert.Same(file, files[0]); connection.Received().Get <List <PullRequestFile> >(new Uri(expectedUrl, UriKind.Relative), null, null); }
private async Task <string> GetFileContent(string owner, string name, PullRequestFile file) { var blob = await _githubClient.Git.Blob.Get(owner, name, file.Sha); var fileData = Convert.FromBase64String(blob.Content); return(Encoding.UTF8.GetString(fileData)); }
private async Task <File> GetFile(PullRequestFile pullRequestFile, long subscriptionId) { var file = _files.GetValueOrDefault(pullRequestFile.Path); if (!_loadMegaInfo && file == null) { file = await _dbContext.FileHistories .Where(q => q.SubscriptionId == subscriptionId && q.Path == pullRequestFile.Path) .OrderBy(q => q.Contribution.DateTime) .Select(q => q.File) .LastOrDefaultAsync(); _files[pullRequestFile.Path] = file; } return(file); }
public async Task FetchesAllFilesForPullRequest() { var file = new PullRequestFile(null, null, null, 0, 0, 0, null, null, null, null); var expectedUrl = string.Format("repos/fake/repo/pulls/42/files"); var gitHubClient = Substitute.For<IGitHubClient>(); var connection = Substitute.For<IConnection>(); IApiResponse<List<PullRequestFile>> response = new ApiResponse<List<PullRequestFile>> ( new Response(), new List<PullRequestFile> { file } ); connection.Get<List<PullRequestFile>>(Args.Uri, null, null) .Returns(Task.FromResult(response)); gitHubClient.Connection.Returns(connection); var client = new ObservablePullRequestsClient(gitHubClient); var files = await client.Files("fake", "repo", 42).ToList(); Assert.Equal(1, files.Count); Assert.Same(file, files[0]); connection.Received().Get<List<PullRequestFile>>(new Uri(expectedUrl, UriKind.Relative), null, null); }
public PullRequestFileCacheItem(PullRequestFile file) { FileName = file.FileName; Status = (PullRequestFileStatus)Enum.Parse(typeof(PullRequestFileStatus), file.Status, true); }
public PullRequestFileNode(PullRequestFile file) { _file = file; }
private async Task AddContribution(long subscriptionId, long pullRequestNumber, PullRequestFile pullRequestFile, string login, ContributionType contributionType, DateTimeOffset?mergedDateTime) { var file = await GetFile(pullRequestFile, subscriptionId); if (file == null || login == null) { return; } var contributor = await GetContributor(login, subscriptionId); var contribution = new Contribution() { ActivityId = pullRequestNumber.ToString(), ContributionType = contributionType, ContributorId = contributor.Id, SubscriptionId = subscriptionId, FileId = file.Id, DateTime = mergedDateTime, ContributorGithubLogin = login }; _dbContext.Add(contribution); }
private static bool IsWebsiteFile(PullRequestFile file) { return(file.FileName.StartsWith("site/")); }
public PullRequestDiffViewModel Init(PullRequestFilesViewModel parentViewModel, PullRequestFile pullRequestFile) { PullRequestFile = pullRequestFile; ParentViewModel = parentViewModel; return(this); }