@@ -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 , 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