@@ -1196,11 +1196,13 @@ func Routes() *web.Router {
1196
1196
// (repo scope)
1197
1197
m .Group ("/starred" , func () {
1198
1198
m .Get ("" , user .GetMyStarredRepos )
1199
- m . Group ( "/{username}/{group_id}?/{reponame}" , func () {
1199
+ fn := func () {
1200
1200
m .Get ("" , user .IsStarring )
1201
1201
m .Put ("" , user .Star )
1202
1202
m .Delete ("" , user .Unstar )
1203
- }, repoAssignment (), checkTokenPublicOnly ())
1203
+ }
1204
+ m .Group ("/{username}/{reponame}" , fn , repoAssignment (), checkTokenPublicOnly ())
1205
+ m .Group ("/{username}/{group_id}/{reponame}" , fn , repoAssignment (), checkTokenPublicOnly ())
1204
1206
}, reqStarsEnabled (), tokenRequiresScopes (auth_model .AccessTokenScopeCategoryRepository ))
1205
1207
m .Get ("/times" , repo .ListMyTrackedTimes )
1206
1208
m .Get ("/stopwatches" , repo .GetStopwatches )
@@ -1247,8 +1249,7 @@ func Routes() *web.Router {
1247
1249
1248
1250
// (repo scope)
1249
1251
m .Post ("/migrate" , reqToken (), bind (api.MigrateRepoOptions {}), repo .Migrate )
1250
-
1251
- m .Group ("/{username}/{group_id}?/{reponame}" , func () {
1252
+ fn := func () {
1252
1253
m .Get ("/compare/*" , reqRepoReader (unit .TypeCode ), repo .CompareDiff )
1253
1254
1254
1255
m .Combo ("" ).Get (reqAnyRepoReader (), repo .Get ).
@@ -1534,27 +1535,31 @@ func Routes() *web.Router {
1534
1535
}, reqAdmin (), reqToken ())
1535
1536
1536
1537
m .Methods ("HEAD,GET" , "/{ball_type:tarball|zipball|bundle}/*" , reqRepoReader (unit .TypeCode ), repo .DownloadArchive )
1537
- }, repoAssignment (), checkTokenPublicOnly ())
1538
+ }
1539
+ m .Group ("/{username}/{reponame}" , fn , repoAssignment (), checkTokenPublicOnly ())
1540
+ m .Group ("/{username}/{group_id}/{reponame}" , fn , repoAssignment (), checkTokenPublicOnly ())
1538
1541
}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryRepository ))
1539
1542
1540
1543
// Artifacts direct download endpoint authenticates via signed url
1541
1544
// it is protected by the "sig" parameter (to help to access private repo), so no need to use other middlewares
1542
- m .Get ("/repos/{username}/{group_id}?/{reponame}/actions/artifacts/{artifact_id}/zip/raw" , repo .DownloadArtifactRaw )
1545
+ m .Get ("/repos/{username}/{reponame}/actions/artifacts/{artifact_id}/zip/raw" , repo .DownloadArtifactRaw )
1546
+ m .Get ("/repos/{username}/{group_id}/{reponame}/actions/artifacts/{artifact_id}/zip/raw" , repo .DownloadArtifactRaw )
1543
1547
1544
1548
// Notifications (requires notifications scope)
1545
1549
m .Group ("/repos" , func () {
1546
- m . Group ( "/{username}/{group_id}?/{reponame}" , func () {
1550
+ fn := func () {
1547
1551
m .Combo ("/notifications" , reqToken ()).
1548
1552
Get (notify .ListRepoNotifications ).
1549
1553
Put (notify .ReadRepoNotifications )
1550
- }, repoAssignment (), checkTokenPublicOnly ())
1554
+ }
1555
+ m .Group ("/{username}/{reponame}" , fn , repoAssignment (), checkTokenPublicOnly ())
1556
+ m .Group ("/{username}/{group_id}/{reponame}" , fn , repoAssignment (), checkTokenPublicOnly ())
1551
1557
}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryNotification ))
1552
1558
1553
1559
// Issue (requires issue scope)
1554
1560
m .Group ("/repos" , func () {
1555
1561
m .Get ("/issues/search" , repo .SearchIssues )
1556
-
1557
- m .Group ("/{username}/{group_id}?/{reponame}" , func () {
1562
+ fn := func () {
1558
1563
m .Group ("/issues" , func () {
1559
1564
m .Combo ("" ).Get (repo .ListIssues ).
1560
1565
Post (reqToken (), mustNotBeArchived , bind (api.CreateIssueOption {}), reqRepoReader (unit .TypeIssues ), repo .CreateIssue )
@@ -1666,7 +1671,9 @@ func Routes() *web.Router {
1666
1671
Patch (reqToken (), reqRepoWriter (unit .TypeIssues , unit .TypePullRequests ), bind (api.EditMilestoneOption {}), repo .EditMilestone ).
1667
1672
Delete (reqToken (), reqRepoWriter (unit .TypeIssues , unit .TypePullRequests ), repo .DeleteMilestone )
1668
1673
})
1669
- }, repoAssignment (), checkTokenPublicOnly ())
1674
+ }
1675
+ m .Group ("/{username}/{reponame}" , fn , repoAssignment (), checkTokenPublicOnly ())
1676
+ m .Group ("/{username}/{group_id}/{reponame}" , fn , repoAssignment (), checkTokenPublicOnly ())
1670
1677
}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryIssue ))
1671
1678
1672
1679
// NOTE: these are Gitea package management API - see packages.CommonRoutes and packages.DockerContainerRoutes for endpoints that implement package manager APIs
0 commit comments