From 77c40c7889046e80959449bff1d1ad610520d2dd Mon Sep 17 00:00:00 2001 From: avadesian Date: Wed, 4 Aug 2021 11:26:42 +0800 Subject: [PATCH] merge duplicate committers who are not system users --- routers/repo/view.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/routers/repo/view.go b/routers/repo/view.go index 5c116285f..945f6b0e0 100644 --- a/routers/repo/view.go +++ b/routers/repo/view.go @@ -590,20 +590,31 @@ func Home(ctx *context.Context) { if err == nil && contributors != nil { var contributorInfos []*ContributorInfo for _, c := range contributors { + // get user info from committer email user, err := models.GetUserByEmail(c.Email) if err == nil { + // committer is system user, get info through user's primary email existedContributorInfo := getContributorInfo(contributorInfos,user.Email) if existedContributorInfo != nil { + // existed: same primary email, different committer name existedContributorInfo.CommitCnt += c.CommitCnt }else{ + // new committer info contributorInfos = append(contributorInfos, &ContributorInfo{ user, user.Email,c.CommitCnt, }) } } else { - contributorInfos = append(contributorInfos, &ContributorInfo{ - nil, c.Email,c.CommitCnt, - }) + // committer is not system user + existedContributorInfo := getContributorInfo(contributorInfos,c.Email) + if existedContributorInfo != nil { + // existed: same primary email, different committer name + existedContributorInfo.CommitCnt += c.CommitCnt + }else{ + contributorInfos = append(contributorInfos, &ContributorInfo{ + nil, c.Email,c.CommitCnt, + }) + } } } ctx.Data["ContributorInfo"] = contributorInfos