@@ -13,6 +13,7 @@ import (
1313 "code.gitea.io/gitea/models/db"
1414 access_model "code.gitea.io/gitea/models/perm/access"
1515 repo_model "code.gitea.io/gitea/models/repo"
16+ unit_model "code.gitea.io/gitea/models/unit"
1617 "code.gitea.io/gitea/models/unittest"
1718 user_model "code.gitea.io/gitea/models/user"
1819 "code.gitea.io/gitea/modules/setting"
@@ -326,6 +327,39 @@ func TestAPIOrgRepos(t *testing.T) {
326327 }
327328}
328329
330+ // See issue #28483. Tests to make sure we consider more than just code unit-enabled repositories.
331+ func TestAPIOrgReposWithCodeUnitDisabled (t * testing.T ) {
332+ defer tests .PrepareTestEnv (t )()
333+ repo21 := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {Name : "repo21" })
334+ org3 := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : repo21 .OwnerID })
335+
336+ // Disable code repository unit.
337+ var units []unit_model.Type
338+ units = append (units , unit_model .TypeCode )
339+
340+ if err := repo_service .UpdateRepositoryUnits (db .DefaultContext , repo21 , nil , units ); err != nil {
341+ assert .Fail (t , "should have been able to delete code repository unit; failed to %v" , err )
342+ }
343+ assert .False (t , repo21 .UnitEnabled (db .DefaultContext , unit_model .TypeCode ))
344+
345+ session := loginUser (t , "user2" )
346+ token := getTokenForLoggedInUser (t , session , auth_model .AccessTokenScopeReadOrganization )
347+
348+ req := NewRequestf (t , "GET" , "/api/v1/orgs/%s/repos" , org3 .Name ).
349+ AddTokenAuth (token )
350+
351+ resp := MakeRequest (t , req , http .StatusOK )
352+ var apiRepos []* api.Repository
353+ DecodeJSON (t , resp , & apiRepos )
354+
355+ var repoNames []string
356+ for _ , r := range apiRepos {
357+ repoNames = append (repoNames , r .Name )
358+ }
359+
360+ assert .Contains (t , repoNames , repo21 .Name )
361+ }
362+
329363func TestAPIGetRepoByIDUnauthorized (t * testing.T ) {
330364 defer tests .PrepareTestEnv (t )()
331365 user := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 4 })
0 commit comments