bug fixed for API to get user's repos (#1622)
* bug fixed for API to get user's repos * add tests and fix another place * test user2 since user1 has no repos
This commit is contained in:
parent
cebe3a6b2f
commit
61b08b5c01
2 changed files with 30 additions and 4 deletions
23
integrations/api_repo_test.go
Normal file
23
integrations/api_repo_test.go
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// Copyright 2017 The Gitea Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package integrations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/models"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestAPIUserReposNotLogin(t *testing.T) {
|
||||||
|
assert.NoError(t, models.LoadFixtures())
|
||||||
|
|
||||||
|
req, err := http.NewRequest("GET", "/api/v1/users/user2/repos", nil)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
resp := MakeRequest(req)
|
||||||
|
assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
|
||||||
|
}
|
|
@ -9,16 +9,19 @@ import (
|
||||||
// listUserRepos - List the repositories owned by the given user.
|
// listUserRepos - List the repositories owned by the given user.
|
||||||
func listUserRepos(ctx *context.APIContext, u *models.User) {
|
func listUserRepos(ctx *context.APIContext, u *models.User) {
|
||||||
userID := u.ID
|
userID := u.ID
|
||||||
showPrivateRepos := (ctx.User.ID == userID || ctx.User.IsAdmin) && ctx.IsSigned
|
showPrivateRepos := ctx.IsSigned && (ctx.User.ID == userID || ctx.User.IsAdmin)
|
||||||
ownRepos, err := models.GetUserRepositories(userID, showPrivateRepos, 1, u.NumRepos, "")
|
ownRepos, err := models.GetUserRepositories(userID, showPrivateRepos, 1, u.NumRepos, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(500, "GetUserRepositories", err)
|
ctx.Error(500, "GetUserRepositories", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
accessibleRepos, err := getAccessibleRepos(ctx)
|
var accessibleRepos []*api.Repository
|
||||||
|
if ctx.User != nil {
|
||||||
|
accessibleRepos, err = getAccessibleRepos(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(500, "GetAccessibleRepos", err)
|
ctx.Error(500, "GetAccessibleRepos", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
apiRepos := make([]*api.Repository, len(ownRepos)+len(accessibleRepos))
|
apiRepos := make([]*api.Repository, len(ownRepos)+len(accessibleRepos))
|
||||||
// Set owned repositories.
|
// Set owned repositories.
|
||||||
for i := range ownRepos {
|
for i := range ownRepos {
|
||||||
|
|
Reference in a new issue