コード例 #1
0
        public GitHubApiServiceTests()
        {
            _repositoryFinderServiceMock = new Mock <IRepositoryFinderService>();

            _releaseFinderServiceMock = new Mock <IReleaseFinderService>();

            _repositoryToAppGeneratorServiceMock = new Mock <IRepositoryToAppGeneratorService>();

            _gitHubApiService = new GitHubApiService(_repositoryFinderServiceMock.Object, _releaseFinderServiceMock.Object, _repositoryToAppGeneratorServiceMock.Object);
        }
コード例 #2
0
        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");
                }
            }
        }