Skip to content

Commit e688cfd

Browse files
committed
fix 500 error in empty repo
1 parent 35d21b2 commit e688cfd

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

modules/context/repo.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -545,24 +545,28 @@ func RepoAssignment(ctx *Context) context.CancelFunc {
545545
ctx.ServerError("GetReleaseCountByRepoID", err)
546546
return nil
547547
}
548-
ctx.Data["NumReleases"], err = repo_model.GetReleaseCountByRepoID(ctx, ctx.Repo.Repository.ID, repo_model.FindReleasesOptions{
548+
numReleases, err := repo_model.GetReleaseCountByRepoID(ctx, ctx.Repo.Repository.ID, repo_model.FindReleasesOptions{
549549
// only show draft releases for users who can write, read-only users shouldn't see draft releases.
550550
IncludeDrafts: ctx.Repo.CanWrite(unit_model.TypeReleases),
551551
})
552552
if err != nil {
553553
ctx.ServerError("GetReleaseCountByRepoID", err)
554554
return nil
555555
}
556-
release, err := repo_model.GetLatestReleaseByRepoID(ctx, ctx.Repo.Repository.ID)
557-
if err != nil {
558-
ctx.ServerError("GetLatestReleaseByRepoID", err)
559-
return nil
560-
}
561-
if err = release.LoadAttributes(ctx); err != nil {
562-
ctx.ServerError("release.LoadAttributes", err)
563-
return nil
556+
ctx.Data["NumReleases"] = numReleases
557+
558+
if numReleases > 0 {
559+
release, err := repo_model.GetLatestReleaseByRepoID(ctx, ctx.Repo.Repository.ID)
560+
if err != nil {
561+
ctx.ServerError("GetLatestReleaseByRepoID", err)
562+
return nil
563+
}
564+
if err = release.LoadAttributes(ctx); err != nil {
565+
ctx.ServerError("release.LoadAttributes", err)
566+
return nil
567+
}
568+
ctx.Data["LatestRelease"] = release
564569
}
565-
ctx.Data["LatestRelease"] = release
566570

567571
ctx.Data["Title"] = owner.Name + "/" + repo.Name
568572
ctx.Data["Repository"] = repo

0 commit comments

Comments
 (0)