aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2017-04-29 12:33:25 +0800
committerGitHub <noreply@github.com>2017-04-29 12:33:25 +0800
commit61b08b5c01eef096e169d6070cb80c3c9fd55875 (patch)
tree801e8ab3685a04b2960ecf793273cfbaf2d70560
parentcebe3a6b2fb91a4dbaa6bac3fe5ff5bccb52d019 (diff)
downloadgitea-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.go23
-rw-r--r--routers/api/v1/user/repo.go11
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.