diff --git a/models/action.go b/models/action.go index 107d4b1057..89751b9779 100644 --- a/models/action.go +++ b/models/action.go @@ -79,6 +79,16 @@ func CommitRepoAction(userId int64, userName string, }) return err } + + // Update repository last update time. + repo, err := GetRepositoryByName(userId, repoName) + if err != nil { + return err + } + repo.Updated = time.Now() + if err = UpdateRepository(repo); err != nil { + return err + } return nil } diff --git a/models/repo.go b/models/repo.go index 918e5dc84c..6a764e6c31 100644 --- a/models/repo.go +++ b/models/repo.go @@ -358,6 +358,11 @@ func RepoPath(userName, repoName string) string { return filepath.Join(UserPath(userName), repoName+".git") } +func UpdateRepository(repo *Repository) error { + _, err := orm.Id(repo.Id).UseBool().Update(repo) + return err +} + // DeleteRepository deletes a repository for a user or orgnaztion. func DeleteRepository(userId, repoId int64, userName string) (err error) { repo := &Repository{Id: repoId, OwnerId: userId} @@ -402,9 +407,9 @@ func DeleteRepository(userId, repoId int64, userName string) (err error) { } // GetRepositoryByName returns the repository by given name under user if exists. -func GetRepositoryByName(user *User, repoName string) (*Repository, error) { +func GetRepositoryByName(userId int64, repoName string) (*Repository, error) { repo := &Repository{ - OwnerId: user.Id, + OwnerId: userId, LowerName: strings.ToLower(repoName), } has, err := orm.Get(repo) diff --git a/models/user.go b/models/user.go index 3c11091285..d6dc041490 100644 --- a/models/user.go +++ b/models/user.go @@ -279,9 +279,7 @@ func GetUserByName(name string) (*User, error) { if len(name) == 0 { return nil, ErrUserNotExist } - user := &User{ - LowerName: strings.ToLower(name), - } + user := &User{LowerName: strings.ToLower(name)} has, err := orm.Get(user) if err != nil { return nil, err diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go index a9a90e3ff5..3864caaf80 100644 --- a/modules/middleware/repo.go +++ b/modules/middleware/repo.go @@ -54,7 +54,7 @@ func RepoAssignment(redirect bool) martini.Handler { ctx.Repo.Owner = user // get repository - repo, err := models.GetRepositoryByName(user, params["reponame"]) + repo, err := models.GetRepositoryByName(user.Id, params["reponame"]) if err != nil { if redirect { ctx.Redirect("/") diff --git a/serve.go b/serve.go index 3ce8f9046c..be8dedc985 100644 --- a/serve.go +++ b/serve.go @@ -86,7 +86,7 @@ func runServ(*cli.Context) { os.Setenv("userName", user.Name) os.Setenv("userId", strconv.Itoa(int(user.Id))) - repo, err := models.GetRepositoryByName(user, repoName) + repo, err := models.GetRepositoryByName(user.Id, repoName) if err != nil { println("Unavilable repository", err) return