diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2017-04-29 12:33:25 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-29 12:33:25 +0800 |
commit | 61b08b5c01eef096e169d6070cb80c3c9fd55875 (patch) | |
tree | 801e8ab3685a04b2960ecf793273cfbaf2d70560 | |
parent | cebe3a6b2fb91a4dbaa6bac3fe5ff5bccb52d019 (diff) | |
download | gitea-61b08b5c01eef096e169d6070cb80c3c9fd55875.tar.gz gitea-61b08b5c01eef096e169d6070cb80c3c9fd55875.zip |
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
-rw-r--r-- | integrations/api_repo_test.go | 23 | ||||
-rw-r--r-- | routers/api/v1/user/repo.go | 11 |
2 files changed, 30 insertions, 4 deletions
diff --git a/integrations/api_repo_test.go b/integrations/api_repo_test.go new file mode 100644 index 0000000000..febdf31ef2 --- /dev/null +++ b/integrations/api_repo_test.go @@ -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) +} diff --git a/routers/api/v1/user/repo.go b/routers/api/v1/user/repo.go index 8b7ee92c62..cc08094fc5 100644 --- a/routers/api/v1/user/repo.go +++ b/routers/api/v1/user/repo.go @@ -9,15 +9,18 @@ import ( // listUserRepos - List the repositories owned by the given user. func listUserRepos(ctx *context.APIContext, u *models.User) { 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, "") if err != nil { ctx.Error(500, "GetUserRepositories", err) return } - accessibleRepos, err := getAccessibleRepos(ctx) - if err != nil { - ctx.Error(500, "GetAccessibleRepos", err) + var accessibleRepos []*api.Repository + if ctx.User != nil { + accessibleRepos, err = getAccessibleRepos(ctx) + if err != nil { + ctx.Error(500, "GetAccessibleRepos", err) + } } apiRepos := make([]*api.Repository, len(ownRepos)+len(accessibleRepos)) // Set owned repositories. |