From e02fac4968574694927859105e67aac3f665481d Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 14 Jul 2017 18:51:23 -0400 Subject: repo: fix panic on pull request submit (#4572) --- models/repo.go | 9 ++++++--- models/user.go | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'models') diff --git a/models/repo.go b/models/repo.go index 88932449..5a4deba4 100644 --- a/models/repo.go +++ b/models/repo.go @@ -2257,10 +2257,13 @@ func (repo *Repository) GetStargazers(page int) ([]*User, error) { // HasForkedRepo checks if given user has already forked a repository. // When user has already forked, it returns true along with the repository. -func HasForkedRepo(ownerID, repoID int64) (*Repository, bool) { +func HasForkedRepo(ownerID, repoID int64) (*Repository, bool, error) { repo := new(Repository) - has, _ := x.Where("owner_id = ? AND fork_id = ?", ownerID, repoID).Get(repo) - return repo, has + has, err := x.Where("owner_id = ? AND fork_id = ?", ownerID, repoID).Get(repo) + if err != nil { + return nil, false, err + } + return repo, has, repo.LoadAttributes() } // ForkRepository creates a fork of target repository under another user domain. diff --git a/models/user.go b/models/user.go index c4be871e..e67def02 100644 --- a/models/user.go +++ b/models/user.go @@ -137,7 +137,7 @@ func (u *User) IsLocal() bool { // HasForkedRepo checks if user has already forked a repository with given ID. func (u *User) HasForkedRepo(repoID int64) bool { - _, has := HasForkedRepo(u.ID, repoID) + _, has, _ := HasForkedRepo(u.ID, repoID) return has } -- cgit v1.2.3