@@ -92,6 +92,7 @@ import (
9292	"code.gitea.io/gitea/routers/api/v1/repo" 
9393	"code.gitea.io/gitea/routers/api/v1/settings" 
9494	"code.gitea.io/gitea/routers/api/v1/user" 
95+ 	"code.gitea.io/gitea/routers/api/v1/utils" 
9596	"code.gitea.io/gitea/routers/common" 
9697	"code.gitea.io/gitea/services/actions" 
9798	"code.gitea.io/gitea/services/auth" 
@@ -184,6 +185,10 @@ func repoAssignment() func(ctx *context.APIContext) {
184185			}
185186			return 
186187		}
188+ 		if  repo .IsPrivate  &&  utils .PublicOnlyToken (ctx , "ApiTokenScopePublicRepoOnly" ) {
189+ 			ctx .NotFound ()
190+ 			return 
191+ 		}
187192
188193		repo .Owner  =  owner 
189194		ctx .Repo .Repository  =  repo 
@@ -954,9 +959,9 @@ func Routes() *web.Router {
954959					m .Get ("/{target}" , user .CheckFollowing )
955960				})
956961
957- 				m .Get ("/starred" , user .GetStarredRepos )
962+ 				m .Get ("/starred" , tokenRequiresScopes ( auth_model . AccessTokenScopeCategoryRepository ),  user .GetStarredRepos )
958963
959- 				m .Get ("/subscriptions" , user .GetWatchedRepos )
964+ 				m .Get ("/subscriptions" , tokenRequiresScopes ( auth_model . AccessTokenScopeCategoryRepository ),  user .GetWatchedRepos )
960965			}, context .UserAssignmentAPI ())
961966		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryUser ), reqToken ())
962967
@@ -1477,13 +1482,13 @@ func Routes() *web.Router {
14771482			m .Get ("/{org}/permissions" , reqToken (), org .GetUserOrgsPermissions )
14781483		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryUser , auth_model .AccessTokenScopeCategoryOrganization ), context .UserAssignmentAPI ())
14791484		m .Post ("/orgs" , tokenRequiresScopes (auth_model .AccessTokenScopeCategoryOrganization ), reqToken (), bind (api.CreateOrgOption {}), org .Create )
1480- 		m .Get ("/orgs" , org . GetAll ,  tokenRequiresScopes (auth_model .AccessTokenScopeCategoryOrganization ))
1485+ 		m .Get ("/orgs" , tokenRequiresScopes (auth_model .AccessTokenScopeCategoryOrganization ),  org . GetAll )
14811486		m .Group ("/orgs/{org}" , func () {
14821487			m .Combo ("" ).Get (org .Get ).
14831488				Patch (reqToken (), reqOrgOwnership (), bind (api.EditOrgOption {}), org .Edit ).
14841489				Delete (reqToken (), reqOrgOwnership (), org .Delete )
1485- 			m .Combo ("/repos" ).Get (user .ListOrgRepos ).
1486- 				Post (reqToken (), bind (api.CreateRepoOption {}), repo .CreateOrgRepo )
1490+ 			m .Combo ("/repos" ).Get (tokenRequiresScopes ( auth_model . AccessTokenScopeCategoryRepository ),  user .ListOrgRepos ).
1491+ 				Post (reqToken (), tokenRequiresScopes ( auth_model . AccessTokenScopeCategoryRepository ),  bind (api.CreateRepoOption {}), repo .CreateOrgRepo )
14871492			m .Group ("/members" , func () {
14881493				m .Get ("" , reqToken (), org .ListMembers )
14891494				m .Combo ("/{username}" ).Get (reqToken (), org .IsMember ).
@@ -1551,7 +1556,7 @@ func Routes() *web.Router {
15511556					Put (reqToken (), org .AddTeamRepository ).
15521557					Delete (reqToken (), org .RemoveTeamRepository ).
15531558					Get (reqToken (), org .GetTeamRepo )
1554- 			})
1559+ 			},  tokenRequiresScopes ( auth_model . AccessTokenScopeCategoryRepository ) )
15551560			m .Get ("/activities/feeds" , org .ListTeamActivityFeeds )
15561561		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryOrganization ), orgAssignment (false , true ), reqToken (), reqTeamMembership ())
15571562
@@ -1571,23 +1576,25 @@ func Routes() *web.Router {
15711576						m .Post ("" , bind (api.CreateKeyOption {}), admin .CreatePublicKey )
15721577						m .Delete ("/{id}" , admin .DeleteUserPublicKey )
15731578					})
1574- 					m .Get ("/orgs" , org .ListUserOrgs )
1575- 					m .Post ("/orgs" , bind (api.CreateOrgOption {}), admin .CreateOrg )
1576- 					m .Post ("/repos" , bind (api.CreateRepoOption {}), admin .CreateRepo )
1579+ 					m .Get ("/orgs" , tokenRequiresScopes (auth_model .AccessTokenScopeCategoryOrganization ), org .ListUserOrgs )
1580+ 					m .Get ("/orgs" , tokenRequiresScopes (auth_model .AccessTokenScopeCategoryOrganization ), org .ListUserOrgs )
1581+ 					m .Post ("/orgs" , tokenRequiresScopes (auth_model .AccessTokenScopeCategoryOrganization ), bind (api.CreateOrgOption {}), admin .CreateOrg )
1582+ 					m .Post ("/repos" , tokenRequiresScopes (auth_model .AccessTokenScopeCategoryRepository ), bind (api.CreateRepoOption {}), admin .CreateRepo )
15771583					m .Post ("/rename" , bind (api.RenameUserOption {}), admin .RenameUser )
15781584					m .Get ("/badges" , admin .ListUserBadges )
15791585					m .Post ("/badges" , bind (api.UserBadgeOption {}), admin .AddUserBadges )
15801586					m .Delete ("/badges" , bind (api.UserBadgeOption {}), admin .DeleteUserBadges )
15811587				}, context .UserAssignmentAPI ())
1582- 			})
1588+ 			}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryUser ))
1589+ 
15831590			m .Group ("/emails" , func () {
15841591				m .Get ("" , admin .GetAllEmails )
15851592				m .Get ("/search" , admin .SearchEmail )
15861593			})
15871594			m .Group ("/unadopted" , func () {
15881595				m .Get ("" , admin .ListUnadoptedRepositories )
1589- 				m .Post ("/{username}/{reponame}" , admin .AdoptRepository )
1590- 				m .Delete ("/{username}/{reponame}" , admin .DeleteUnadoptedRepository )
1596+ 				m .Post ("/{username}/{reponame}" , tokenRequiresScopes ( auth_model . AccessTokenScopeCategoryRepository ),  admin .AdoptRepository )
1597+ 				m .Delete ("/{username}/{reponame}" , tokenRequiresScopes ( auth_model . AccessTokenScopeCategoryRepository ),  admin .DeleteUnadoptedRepository )
15911598			})
15921599			m .Group ("/hooks" , func () {
15931600				m .Combo ("" ).Get (admin .ListHooks ).
0 commit comments