diff --git a/models/user/user.go b/models/user/user.go
index 7c871bf575..4c27d08d89 100644
--- a/models/user/user.go
+++ b/models/user/user.go
@@ -1166,12 +1166,6 @@ func ValidateCommitsWithEmails(ctx context.Context, oldCommits []*git.Commit) ([
for _, c := range oldCommits {
user := emailUserMap.GetByEmail(c.Author.Email) // FIXME: why ValidateCommitsWithEmails uses "Author", but ParseCommitsWithSignature uses "Committer"?
- if user == nil {
- user = &User{
- Name: c.Author.Name,
- Email: c.Author.Email,
- }
- }
newCommits = append(newCommits, &UserCommit{
User: user,
Commit: c,
diff --git a/templates/repo/commits_list.tmpl b/templates/repo/commits_list.tmpl
index 9dae6594b9..959f2a9398 100644
--- a/templates/repo/commits_list.tmpl
+++ b/templates/repo/commits_list.tmpl
@@ -16,7 +16,7 @@
{{$userName := .Author.Name}}
- {{if and .User (gt .User.ID 0)}} /* User with id == 0 is a fake user from git author */
+ {{if .User}}
{{if and .User.FullName DefaultShowFullName}}
{{$userName = .User.FullName}}
{{end}}
diff --git a/tests/integration/repo_commits_test.go b/tests/integration/repo_commits_test.go
index 0097a7f62e..f1a268c71d 100644
--- a/tests/integration/repo_commits_test.go
+++ b/tests/integration/repo_commits_test.go
@@ -57,6 +57,70 @@ func Test_ReposGitCommitListNotMaster(t *testing.T) {
userHrefs = append(userHrefs, userHref)
})
assert.Equal(t, []string{"/user2", "/user21", "/user2"}, userHrefs)
+
+ // check last commit author wrapper
+ req = NewRequest(t, "GET", "/user2/repo16")
+ resp = session.MakeRequest(t, req, http.StatusOK)
+
+ doc = NewHTMLParser(t, resp.Body)
+ commits = []string{}
+ doc.doc.Find(".latest-commit .commit-id-short").Each(func(i int, s *goquery.Selection) {
+ commitURL, _ := s.Attr("href")
+ commits = append(commits, path.Base(commitURL))
+ })
+ assert.Equal(t, []string{"69554a64c1e6030f051e5c3f94bfbd773cd6a324"}, commits)
+
+ userHrefs = []string{}
+ doc.doc.Find(".latest-commit .author-wrapper").Each(func(i int, s *goquery.Selection) {
+ userHref, _ := s.Attr("href")
+ userHrefs = append(userHrefs, userHref)
+ })
+ assert.Equal(t, []string{"/user2"}, userHrefs)
+}
+
+func Test_ReposGitCommitListNoGiteaUser(t *testing.T) {
+ // Commits list with Gitea User has been tested in Test_ReposGitCommitListNotMaster
+ defer tests.PrepareTestEnv(t)()
+ session := loginUser(t, "user2")
+
+ // check commits list for a repository with no gitea user
+ req := NewRequest(t, "GET", "/user2/repo1/commits/branch/master")
+ resp := session.MakeRequest(t, req, http.StatusOK)
+
+ doc := NewHTMLParser(t, resp.Body)
+ var commits []string
+ doc.doc.Find("#commits-table .commit-id-short").Each(func(i int, s *goquery.Selection) {
+ commitURL, _ := s.Attr("href")
+ commits = append(commits, path.Base(commitURL))
+ })
+ assert.Equal(t, []string{"65f1bf27bc3bf70f64657658635e66094edbcb4d"}, commits)
+
+ var gitUsers []string
+ doc.doc.Find("#commits-table .author-wrapper").Each(func(i int, s *goquery.Selection) {
+ assert.Equal(t, "span", goquery.NodeName(s))
+ gitUser := s.Text()
+ gitUsers = append(gitUsers, gitUser)
+ })
+ assert.Equal(t, []string{"user1"}, gitUsers)
+
+ // check last commit author wrapper
+ req = NewRequest(t, "GET", "/user2/repo1")
+ resp = session.MakeRequest(t, req, http.StatusOK)
+
+ doc = NewHTMLParser(t, resp.Body)
+ commits = []string{}
+ doc.doc.Find(".latest-commit .commit-id-short").Each(func(i int, s *goquery.Selection) {
+ commitURL, _ := s.Attr("href")
+ commits = append(commits, path.Base(commitURL))
+ })
+ assert.Equal(t, []string{"65f1bf27bc3bf70f64657658635e66094edbcb4d"}, commits)
+
+ gitUsers = []string{}
+ doc.doc.Find(".latest-commit .author-wrapper").Each(func(i int, s *goquery.Selection) {
+ assert.Equal(t, "span", goquery.NodeName(s))
+ gitUsers = append(gitUsers, s.Text())
+ })
+ assert.Equal(t, []string{"user1"}, gitUsers)
}
func doTestRepoCommitWithStatus(t *testing.T, state string, classes ...string) {
|