mirror of https://github.com/gogs/gogs.git
repo: fix panic on pull request submit (#4572)
parent
5a88546a80
commit
e02fac4968
2
gogs.go
2
gogs.go
|
@ -16,7 +16,7 @@ import (
|
||||||
"github.com/gogits/gogs/pkg/setting"
|
"github.com/gogits/gogs/pkg/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
const APP_VER = "0.11.25.0714"
|
const APP_VER = "0.11.26.0714"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
setting.AppVer = APP_VER
|
setting.AppVer = APP_VER
|
||||||
|
|
|
@ -2257,10 +2257,13 @@ func (repo *Repository) GetStargazers(page int) ([]*User, error) {
|
||||||
|
|
||||||
// HasForkedRepo checks if given user has already forked a repository.
|
// HasForkedRepo checks if given user has already forked a repository.
|
||||||
// When user has already forked, it returns true along with the 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)
|
repo := new(Repository)
|
||||||
has, _ := x.Where("owner_id = ? AND fork_id = ?", ownerID, repoID).Get(repo)
|
has, err := x.Where("owner_id = ? AND fork_id = ?", ownerID, repoID).Get(repo)
|
||||||
return repo, has
|
if err != nil {
|
||||||
|
return nil, false, err
|
||||||
|
}
|
||||||
|
return repo, has, repo.LoadAttributes()
|
||||||
}
|
}
|
||||||
|
|
||||||
// ForkRepository creates a fork of target repository under another user domain.
|
// ForkRepository creates a fork of target repository under another user domain.
|
||||||
|
|
|
@ -137,7 +137,7 @@ func (u *User) IsLocal() bool {
|
||||||
|
|
||||||
// HasForkedRepo checks if user has already forked a repository with given ID.
|
// HasForkedRepo checks if user has already forked a repository with given ID.
|
||||||
func (u *User) HasForkedRepo(repoID int64) bool {
|
func (u *User) HasForkedRepo(repoID int64) bool {
|
||||||
_, has := HasForkedRepo(u.ID, repoID)
|
_, has, _ := HasForkedRepo(u.ID, repoID)
|
||||||
return has
|
return has
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -101,8 +101,11 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
repo, has := models.HasForkedRepo(ctxUser.ID, baseRepo.ID)
|
repo, has, err := models.HasForkedRepo(ctxUser.ID, baseRepo.ID)
|
||||||
if has {
|
if err != nil {
|
||||||
|
c.ServerError("HasForkedRepo", err)
|
||||||
|
return
|
||||||
|
} else if has {
|
||||||
c.Redirect(repo.Link())
|
c.Redirect(repo.Link())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -119,7 +122,7 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
repo, err := models.ForkRepository(c.User, ctxUser, baseRepo, f.RepoName, f.Description)
|
repo, err = models.ForkRepository(c.User, ctxUser, baseRepo, f.RepoName, f.Description)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Data["Err_RepoName"] = true
|
c.Data["Err_RepoName"] = true
|
||||||
switch {
|
switch {
|
||||||
|
@ -475,8 +478,11 @@ func ParseCompareInfo(c *context.Context) (*models.User, *models.Repository, *gi
|
||||||
// no need to check the fork relation.
|
// no need to check the fork relation.
|
||||||
if !isSameRepo {
|
if !isSameRepo {
|
||||||
var has bool
|
var has bool
|
||||||
headRepo, has = models.HasForkedRepo(headUser.ID, baseRepo.ID)
|
headRepo, has, err = models.HasForkedRepo(headUser.ID, baseRepo.ID)
|
||||||
if !has {
|
if err != nil {
|
||||||
|
c.ServerError("HasForkedRepo", err)
|
||||||
|
return nil, nil, nil, nil, "", ""
|
||||||
|
} else if !has {
|
||||||
log.Trace("ParseCompareInfo [base_repo_id: %d]: does not have fork or in same repository", baseRepo.ID)
|
log.Trace("ParseCompareInfo [base_repo_id: %d]: does not have fork or in same repository", baseRepo.ID)
|
||||||
c.NotFound()
|
c.NotFound()
|
||||||
return nil, nil, nil, nil, "", ""
|
return nil, nil, nil, nil, "", ""
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
0.11.25.0714
|
0.11.26.0714
|
Loading…
Reference in New Issue