summaryrefslogtreecommitdiffstats
path: root/models/git/branch_list.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/git/branch_list.go')
-rw-r--r--models/git/branch_list.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/models/git/branch_list.go b/models/git/branch_list.go
index 980bd7b4c9..5c887461d5 100644
--- a/models/git/branch_list.go
+++ b/models/git/branch_list.go
@@ -7,6 +7,7 @@ import (
"context"
"code.gitea.io/gitea/models/db"
+ repo_model "code.gitea.io/gitea/models/repo"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/container"
"code.gitea.io/gitea/modules/optional"
@@ -59,6 +60,24 @@ func (branches BranchList) LoadPusher(ctx context.Context) error {
return nil
}
+func (branches BranchList) LoadRepo(ctx context.Context) error {
+ ids := container.FilterSlice(branches, func(branch *Branch) (int64, bool) {
+ return branch.RepoID, branch.RepoID > 0 && branch.Repo == nil
+ })
+
+ reposMap := make(map[int64]*repo_model.Repository, len(ids))
+ if err := db.GetEngine(ctx).In("id", ids).Find(&reposMap); err != nil {
+ return err
+ }
+ for _, branch := range branches {
+ if branch.RepoID <= 0 || branch.Repo != nil {
+ continue
+ }
+ branch.Repo = reposMap[branch.RepoID]
+ }
+ return nil
+}
+
type FindBranchOptions struct {
db.ListOptions
RepoID int64