Browse Source

api/repo: load attributes when listing user repositories (#4565)

Unknwon 7 years ago
parent
commit
11b1498a6e
5 changed files with 12 additions and 6 deletions
  1. 1 1
      gogs.go
  2. 2 4
      models/access.go
  3. 2 0
      models/repo.go
  4. 6 0
      routes/api/v1/repo/repo.go
  5. 1 1
      templates/.VERSION

+ 1 - 1
gogs.go

@@ -16,7 +16,7 @@ import (
 	"github.com/gogits/gogs/pkg/setting"
 )
 
-const APP_VER = "0.11.21.0611"
+const APP_VER = "0.11.22.0621"
 
 func init() {
 	setting.AppVer = APP_VER

+ 2 - 4
models/access.go

@@ -112,14 +112,12 @@ func (u *User) GetRepositoryAccesses() (map[*Repository]AccessMode, error) {
 		repo, err := GetRepositoryByID(access.RepoID)
 		if err != nil {
 			if errors.IsRepoNotExist(err) {
-				log.Error(4, "GetRepositoryByID: %v", err)
+				log.Error(2, "GetRepositoryByID: %v", err)
 				continue
 			}
 			return nil, err
 		}
-		if err = repo.GetOwner(); err != nil {
-			return nil, err
-		} else if repo.OwnerID == u.ID {
+		if repo.OwnerID == u.ID {
 			continue
 		}
 		repos[repo] = access.Mode

+ 2 - 0
models/repo.go

@@ -282,6 +282,8 @@ func (repo *Repository) HTMLURL() string {
 	return setting.AppURL + repo.FullName()
 }
 
+// This method assumes following fields have been assigned with valid values:
+// Required - BaseRepo (if fork)
 // Arguments that are allowed to be nil: permission
 func (repo *Repository) APIFormat(permission *api.Permission) *api.Repository {
 	cloneLink := repo.CloneLink()

+ 6 - 0
routes/api/v1/repo/repo.go

@@ -101,6 +101,12 @@ func listUserRepositories(c *context.APIContext, username string) {
 		return
 	}
 
+	if err = models.RepositoryList(ownRepos).LoadAttributes(); err != nil {
+		c.Error(500, "LoadAttributes(ownRepos)", err)
+		return
+	}
+
+	// Early return for querying other user's repositories
 	if c.User.ID != user.ID {
 		repos := make([]*api.Repository, len(ownRepos))
 		for i := range ownRepos {

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.11.21.0611
+0.11.22.0621