@@ -10,6 +10,7 @@ import (
1010 auth_model "code.gitea.io/gitea/models/auth"
1111 "code.gitea.io/gitea/models/db"
1212 org_model "code.gitea.io/gitea/models/organization"
13+ repo_model "code.gitea.io/gitea/models/repo"
1314 "code.gitea.io/gitea/models/unittest"
1415 user_model "code.gitea.io/gitea/models/user"
1516 api "code.gitea.io/gitea/modules/structs"
@@ -81,8 +82,8 @@ func TestAPIForkListLimitedAndPrivateRepos(t *testing.T) {
8182 var forks []* api.Repository
8283 DecodeJSON (t , resp , & forks )
8384
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" ))
8687
8788 assert .NoError (t , org_service .AddTeamMember (db .DefaultContext , ownerTeam2 , user1 ))
8889
@@ -96,3 +97,31 @@ func TestAPIForkListLimitedAndPrivateRepos(t *testing.T) {
9697 assert .EqualValues (t , "2" , resp .Header ().Get ("X-Total-Count" ))
9798 })
9899}
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