Page: Commits and fix #249

This commit is contained in:
Unknwon 2014-09-23 15:30:04 -04:00
parent 93ee0838eb
commit 5bbeeb0f1b
13 changed files with 160 additions and 40 deletions

View file

@ -1081,6 +1081,13 @@ func SearchRepositoryByName(opt SearchOption) (repos []*Repository, err error) {
return repos, err
}
// __ __ __ .__
// / \ / \_____ _/ |_ ____ | |__
// \ \/\/ /\__ \\ __\/ ___\| | \
// \ / / __ \| | \ \___| Y \
// \__/\ / (____ /__| \___ >___| /
// \/ \/ \/ \/
// Watch is connection request for receiving repository notifycation.
type Watch struct {
Id int64
@ -1151,6 +1158,13 @@ func NotifyWatchers(act *Action) error {
return nil
}
// _________ __
// / _____// |______ _______
// \_____ \\ __\__ \\_ __ \
// / \| | / __ \| | \/
// /_______ /|__| (____ /__|
// \/ \/
type Star struct {
Id int64
Uid int64 `xorm:"UNIQUE(s)"`

View file

@ -5,6 +5,7 @@
package models
import (
"container/list"
"crypto/sha256"
"encoding/hex"
"errors"
@ -513,6 +514,34 @@ func GetUserIdsByNames(names []string) []int64 {
return ids
}
// UserCommit represtns a commit with validation of user.
type UserCommit struct {
UserName string
*git.Commit
}
// ValidCommitsWithEmails checks if authors' e-mails of commits are correcponding to users.
func ValidCommitsWithEmails(oldCommits *list.List) *list.List {
newCommits := list.New()
e := oldCommits.Front()
for e != nil {
c := e.Value.(*git.Commit)
uname := ""
u, err := GetUserByEmail(c.Author.Email)
if err == nil {
uname = u.Name
}
newCommits.PushBack(UserCommit{
UserName: uname,
Commit: c,
})
e = e.Next()
}
return newCommits
}
// GetUserByEmail returns the user object by given e-mail if exists.
func GetUserByEmail(email string) (*User, error) {
if len(email) == 0 {