public GitHubApiServiceTests() { _repositoryFinderServiceMock = new Mock <IRepositoryFinderService>(); _releaseFinderServiceMock = new Mock <IReleaseFinderService>(); _repositoryToAppGeneratorServiceMock = new Mock <IRepositoryToAppGeneratorService>(); _gitHubApiService = new GitHubApiService(_repositoryFinderServiceMock.Object, _releaseFinderServiceMock.Object, _repositoryToAppGeneratorServiceMock.Object); }
public void Postbuild(ImmutableList <FileModel> models, IHostService host) { foreach (var model in models) { if (model.Type != DocumentType.Article) { continue; } var transformedFilePathFromRoot = model.LocalPathFromRoot.Replace("/", "%2F"); var gitCommits = GitHubApiService.GetCommits(transformedFilePathFromRoot); if (gitCommits == null || !gitCommits.Any()) { ConsoleWriter.Warning("No git commits to process"); } else { ConsoleWriter.Info($"Got {gitCommits.Count} commits to process."); var commits = gitCommits .GroupBy(x => x.Author.Login) .OrderByDescending(x => x.Count()) .Select(x => x.FirstOrDefault()) .Take(2); var content = (Dictionary <string, object>)model.Content; content["gitPageLink"] = $"https://github.com/sortedgroup/doc-centre/tree/master/docfx_project/{model.LocalPathFromRoot}"; var index = 1; foreach (var commit in commits) { content[$"gitPageContributor{index}Login"] = commit.Author.Login; content[$"gitPageContributor{index}AvatarUrl"] = commit.Author.AvatarUrl; content[$"gitPageContributor{index}HtmlUrl"] = commit.Author.HtmlUrl; index++; } content["gitPageDate"] = DateTime.Parse(gitCommits[0].Commit.Author.Date).ToString("dd/MM/yyyy"); } } }