@@ -818,7 +818,6 @@ func registerRoutes(m *web.Router) {
818818
819819 reqRepoAdmin := context .RequireRepoAdmin ()
820820 reqRepoCodeWriter := context .RequireUnitWriter (unit .TypeCode )
821- canEnableEditor := context .CanEnableEditor ()
822821 reqRepoReleaseWriter := context .RequireUnitWriter (unit .TypeReleases )
823822 reqRepoReleaseReader := context .RequireUnitReader (unit .TypeReleases )
824823 reqRepoIssuesOrPullsWriter := context .RequireUnitWriter (unit .TypeIssues , unit .TypePullRequests )
@@ -1153,7 +1152,7 @@ func registerRoutes(m *web.Router) {
11531152 // end "/{username}/{reponame}/settings"
11541153
11551154 // user/org home, including rss feeds
1156- m .Get ("/{username}/{reponame}" , optSignIn , context .RepoAssignment , context .RepoRef ( ), repo .SetEditorconfigIfExists , repo .Home )
1155+ m .Get ("/{username}/{reponame}" , optSignIn , context .RepoAssignment , context .RepoRefByType ( git . RefTypeBranch ), repo .SetEditorconfigIfExists , repo .Home )
11571156
11581157 m .Post ("/{username}/{reponame}/markup" , optSignIn , context .RepoAssignment , reqUnitsWithMarkdown , web .Bind (structs.MarkupOption {}), misc .Markup )
11591158
@@ -1293,26 +1292,31 @@ func registerRoutes(m *web.Router) {
12931292 m .Group ("/{username}/{reponame}" , func () { // repo code
12941293 m .Group ("" , func () {
12951294 m .Group ("" , func () {
1296- m .Combo ("/_edit/*" ).Get (repo .EditFile ).
1295+ m .Combo ("/_edit/*" ).
1296+ Get (repo .EditFile ).
12971297 Post (web .Bind (forms.EditRepoFileForm {}), repo .EditFilePost )
1298- m .Combo ("/_new/*" ).Get (repo .NewFile ).
1298+ m .Combo ("/_new/*" ).
1299+ Get (repo .NewFile ).
12991300 Post (web .Bind (forms.EditRepoFileForm {}), repo .NewFilePost )
13001301 m .Post ("/_preview/*" , web .Bind (forms.EditPreviewDiffForm {}), repo .DiffPreviewPost )
1301- m .Combo ("/_delete/*" ).Get (repo .DeleteFile ).
1302+ m .Combo ("/_delete/*" ).
1303+ Get (repo .DeleteFile ).
13021304 Post (web .Bind (forms.DeleteRepoFileForm {}), repo .DeleteFilePost )
13031305 m .Combo ("/_upload/*" , repo .MustBeAbleToUpload ).
13041306 Get (repo .UploadFile ).
13051307 Post (web .Bind (forms.UploadRepoFileForm {}), repo .UploadFilePost )
1306- m .Combo ("/_diffpatch/*" ).Get (repo .NewDiffPatch ).
1308+ m .Combo ("/_diffpatch/*" ).
1309+ Get (repo .NewDiffPatch ).
13071310 Post (web .Bind (forms.EditRepoFileForm {}), repo .NewDiffPatchPost )
1308- m .Combo ("/_cherrypick/{sha:([a-f0-9]{7,64})}/*" ).Get (repo .CherryPick ).
1311+ m .Combo ("/_cherrypick/{sha:([a-f0-9]{7,64})}/*" ).
1312+ Get (repo .CherryPick ).
13091313 Post (web .Bind (forms.CherryPickForm {}), repo .CherryPickPost )
1310- }, repo . MustBeEditable )
1314+ }, context . RepoRefByType ( git . RefTypeBranch ), context . CanWriteToBranch () )
13111315 m .Group ("" , func () {
13121316 m .Post ("/upload-file" , repo .UploadFileToServer )
13131317 m .Post ("/upload-remove" , web .Bind (forms.RemoveUploadFileForm {}), repo .RemoveUploadFileFromServer )
1314- }, repo .MustBeEditable , repo . MustBeAbleToUpload )
1315- }, context . RepoRef (), canEnableEditor , context .RepoMustNotBeArchived ())
1318+ }, repo .MustBeAbleToUpload , reqRepoCodeWriter )
1319+ }, repo . MustBeEditable , context .RepoMustNotBeArchived ())
13161320
13171321 m .Group ("/branches" , func () {
13181322 m .Group ("/_new" , func () {
@@ -1333,39 +1337,36 @@ func registerRoutes(m *web.Router) {
13331337 m .Group ("/{username}/{reponame}" , func () { // repo tags
13341338 m .Group ("/tags" , func () {
13351339 m .Get ("" , repo .TagsList )
1336- m .Get ("/list" , repo .GetTagList )
13371340 m .Get (".rss" , feedEnabled , repo .TagsListFeedRSS )
13381341 m .Get (".atom" , feedEnabled , repo .TagsListFeedAtom )
1339- }, ctxDataSet ("EnableFeed" , setting .Other .EnableFeed ),
1340- repo .MustBeNotEmpty , context .RepoRefByType (git .RefTypeTag , context.RepoRefByTypeOptions {IgnoreNotExistErr : true }))
1341- m .Post ("/tags/delete" , repo .DeleteTag , reqSignIn ,
1342- repo .MustBeNotEmpty , context .RepoMustNotBeArchived (), reqRepoCodeWriter , context .RepoRef ())
1343- }, optSignIn , context .RepoAssignment , reqUnitCodeReader )
1342+ m .Get ("/list" , repo .GetTagList )
1343+ }, ctxDataSet ("EnableFeed" , setting .Other .EnableFeed ))
1344+ m .Post ("/tags/delete" , reqSignIn , reqRepoCodeWriter , context .RepoMustNotBeArchived (), repo .DeleteTag )
1345+ }, optSignIn , context .RepoAssignment , repo .MustBeNotEmpty , reqUnitCodeReader )
13441346 // end "/{username}/{reponame}": repo tags
13451347
13461348 m .Group ("/{username}/{reponame}" , func () { // repo releases
13471349 m .Group ("/releases" , func () {
13481350 m .Get ("" , repo .Releases )
1349- m .Get ("/tag/*" , repo .SingleRelease )
1350- m .Get ("/latest" , repo .LatestRelease )
13511351 m .Get (".rss" , feedEnabled , repo .ReleasesFeedRSS )
13521352 m .Get (".atom" , feedEnabled , repo .ReleasesFeedAtom )
1353- }, ctxDataSet ("EnableFeed" , setting .Other .EnableFeed ),
1354- repo .MustBeNotEmpty , context .RepoRefByType (git .RefTypeTag , context.RepoRefByTypeOptions {IgnoreNotExistErr : true }))
1355- m .Get ("/releases/attachments/{uuid}" , repo .MustBeNotEmpty , repo .GetAttachment )
1356- m .Get ("/releases/download/{vTag}/{fileName}" , repo .MustBeNotEmpty , repo .RedirectDownload )
1353+ m .Get ("/tag/*" , repo .SingleRelease )
1354+ m .Get ("/latest" , repo .LatestRelease )
1355+ }, ctxDataSet ("EnableFeed" , setting .Other .EnableFeed ))
1356+ m .Get ("/releases/attachments/{uuid}" , repo .GetAttachment )
1357+ m .Get ("/releases/download/{vTag}/{fileName}" , repo .RedirectDownload )
13571358 m .Group ("/releases" , func () {
13581359 m .Get ("/new" , repo .NewRelease )
13591360 m .Post ("/new" , web .Bind (forms.NewReleaseForm {}), repo .NewReleasePost )
13601361 m .Post ("/delete" , repo .DeleteRelease )
13611362 m .Post ("/attachments" , repo .UploadReleaseAttachment )
13621363 m .Post ("/attachments/remove" , repo .DeleteAttachment )
1363- }, reqSignIn , repo . MustBeNotEmpty , context .RepoMustNotBeArchived (), reqRepoReleaseWriter , context .RepoRef ())
1364+ }, reqSignIn , context .RepoMustNotBeArchived (), reqRepoReleaseWriter , context .RepoRef ())
13641365 m .Group ("/releases" , func () {
13651366 m .Get ("/edit/*" , repo .EditRelease )
13661367 m .Post ("/edit/*" , web .Bind (forms.EditReleaseForm {}), repo .EditReleasePost )
1367- }, reqSignIn , repo . MustBeNotEmpty , context .RepoMustNotBeArchived (), reqRepoReleaseWriter , repo .CommitInfoCache )
1368- }, optSignIn , context .RepoAssignment , reqRepoReleaseReader )
1368+ }, reqSignIn , context .RepoMustNotBeArchived (), reqRepoReleaseWriter , repo .CommitInfoCache )
1369+ }, optSignIn , context .RepoAssignment , repo . MustBeNotEmpty , reqRepoReleaseReader )
13691370 // end "/{username}/{reponame}": repo releases
13701371
13711372 m .Group ("/{username}/{reponame}" , func () { // to maintain compatibility with old attachments
@@ -1529,21 +1530,19 @@ func registerRoutes(m *web.Router) {
15291530 }, repo .MustBeNotEmpty , context .RepoRef ())
15301531
15311532 m .Group ("/media" , func () {
1533+ m .Get ("/blob/{sha}" , repo .DownloadByIDOrLFS )
15321534 m .Get ("/branch/*" , context .RepoRefByType (git .RefTypeBranch ), repo .SingleDownloadOrLFS )
15331535 m .Get ("/tag/*" , context .RepoRefByType (git .RefTypeTag ), repo .SingleDownloadOrLFS )
15341536 m .Get ("/commit/*" , context .RepoRefByType (git .RefTypeCommit ), repo .SingleDownloadOrLFS )
1535- m .Get ("/blob/{sha}" , repo .DownloadByIDOrLFS )
1536- // "/*" route is deprecated, and kept for backward compatibility
1537- m .Get ("/*" , context .RepoRefByType ("" ), repo .SingleDownloadOrLFS )
1537+ m .Get ("/*" , context .RepoRefByType ("" ), repo .SingleDownloadOrLFS ) // "/*" route is deprecated, and kept for backward compatibility
15381538 }, repo .MustBeNotEmpty )
15391539
15401540 m .Group ("/raw" , func () {
1541+ m .Get ("/blob/{sha}" , repo .DownloadByID )
15411542 m .Get ("/branch/*" , context .RepoRefByType (git .RefTypeBranch ), repo .SingleDownload )
15421543 m .Get ("/tag/*" , context .RepoRefByType (git .RefTypeTag ), repo .SingleDownload )
15431544 m .Get ("/commit/*" , context .RepoRefByType (git .RefTypeCommit ), repo .SingleDownload )
1544- m .Get ("/blob/{sha}" , repo .DownloadByID )
1545- // "/*" route is deprecated, and kept for backward compatibility
1546- m .Get ("/*" , context .RepoRefByType ("" ), repo .SingleDownload )
1545+ m .Get ("/*" , context .RepoRefByType ("" ), repo .SingleDownload ) // "/*" route is deprecated, and kept for backward compatibility
15471546 }, repo .MustBeNotEmpty )
15481547
15491548 m .Group ("/render" , func () {
@@ -1557,8 +1556,7 @@ func registerRoutes(m *web.Router) {
15571556 m .Get ("/branch/*" , context .RepoRefByType (git .RefTypeBranch ), repo .RefCommits )
15581557 m .Get ("/tag/*" , context .RepoRefByType (git .RefTypeTag ), repo .RefCommits )
15591558 m .Get ("/commit/*" , context .RepoRefByType (git .RefTypeCommit ), repo .RefCommits )
1560- // "/*" route is deprecated, and kept for backward compatibility
1561- m .Get ("/*" , context .RepoRefByType ("" ), repo .RefCommits )
1559+ m .Get ("/*" , context .RepoRefByType ("" ), repo .RefCommits ) // "/*" route is deprecated, and kept for backward compatibility
15621560 }, repo .MustBeNotEmpty )
15631561
15641562 m .Group ("/blame" , func () {
0 commit comments