@@ -10,6 +10,7 @@ import (
10
10
auth_model "code.gitea.io/gitea/models/auth"
11
11
"code.gitea.io/gitea/models/db"
12
12
org_model "code.gitea.io/gitea/models/organization"
13
+ repo_model "code.gitea.io/gitea/models/repo"
13
14
"code.gitea.io/gitea/models/unittest"
14
15
user_model "code.gitea.io/gitea/models/user"
15
16
api "code.gitea.io/gitea/modules/structs"
@@ -81,8 +82,8 @@ func TestAPIForkListLimitedAndPrivateRepos(t *testing.T) {
81
82
var forks []* api.Repository
82
83
DecodeJSON (t , resp , & forks )
83
84
84
- assert .Len (t , forks , 1 )
85
- assert .EqualValues (t , "1 " , resp .Header ().Get ("X-Total-Count" ))
85
+ assert .Len (t , forks , 2 )
86
+ assert .EqualValues (t , "2 " , resp .Header ().Get ("X-Total-Count" ))
86
87
87
88
assert .NoError (t , org_service .AddTeamMember (db .DefaultContext , ownerTeam2 , user1 ))
88
89
@@ -96,3 +97,31 @@ func TestAPIForkListLimitedAndPrivateRepos(t *testing.T) {
96
97
assert .EqualValues (t , "2" , resp .Header ().Get ("X-Total-Count" ))
97
98
})
98
99
}
100
+
101
+ func TestGetPrivateReposForks (t * testing.T ) {
102
+ defer tests .PrepareTestEnv (t )()
103
+
104
+ user1Sess := loginUser (t , "user1" )
105
+ repo2 := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 2 }) // private repository
106
+ privateOrg := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 23 })
107
+ user1Token := getTokenForLoggedInUser (t , user1Sess , auth_model .AccessTokenScopeWriteRepository )
108
+
109
+ forkedRepoName := "forked-repo"
110
+ // create fork from a private repository
111
+ req := NewRequestWithJSON (t , "POST" , "/api/v1/repos/" + repo2 .FullName ()+ "/forks" , & api.CreateForkOption {
112
+ Organization : & privateOrg .Name ,
113
+ Name : & forkedRepoName ,
114
+ }).AddTokenAuth (user1Token )
115
+ MakeRequest (t , req , http .StatusAccepted )
116
+
117
+ // test get a private fork without clear permissions
118
+ req = NewRequest (t , "GET" , "/api/v1/repos/" + repo2 .FullName ()+ "/forks" ).AddTokenAuth (user1Token )
119
+ resp := MakeRequest (t , req , http .StatusOK )
120
+
121
+ forks := []* api.Repository {}
122
+ DecodeJSON (t , resp , & forks )
123
+ assert .Len (t , forks , 1 )
124
+ assert .EqualValues (t , "1" , resp .Header ().Get ("X-Total-Count" ))
125
+ assert .EqualValues (t , "forked-repo" , forks [0 ].Name )
126
+ assert .EqualValues (t , privateOrg .Name , forks [0 ].Owner .UserName )
127
+ }
0 commit comments