@@ -1163,6 +1163,11 @@ func Routes() *web.Router {
11631163					m .Delete ("" , user .UnblockUser )
11641164				}, context .UserAssignmentAPI (), checkTokenPublicOnly ())
11651165			})
1166+ 
1167+ 			m .Group ("/projects" , func () {
1168+ 				m .Get ("" , projects .ListUserProjects )
1169+ 				m .Post ("" , bind (api.NewProjectPayload {}), projects .CreateUserProject )
1170+ 			})
11661171		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryUser ), reqToken ())
11671172
11681173		// Repositories (requires repo scope, org scope) 
@@ -1462,6 +1467,10 @@ func Routes() *web.Router {
14621467				}, reqAdmin (), reqToken ())
14631468
14641469				m .Get ("/{ball_type:tarball|zipball|bundle}/*" , reqRepoReader (unit .TypeCode ), repo .DownloadArchive )
1470+ 
1471+ 				m .Group ("/projects" , func () {
1472+ 					m .Post ("" , bind (api.NewProjectPayload {}), projects .CreateRepoProject )
1473+ 				})
14651474			}, repoAssignment (), checkTokenPublicOnly ())
14661475		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryRepository ))
14671476
@@ -1594,10 +1603,6 @@ func Routes() *web.Router {
15941603						Patch (reqToken (), reqRepoWriter (unit .TypeIssues , unit .TypePullRequests ), bind (api.EditMilestoneOption {}), repo .EditMilestone ).
15951604						Delete (reqToken (), reqRepoWriter (unit .TypeIssues , unit .TypePullRequests ), repo .DeleteMilestone )
15961605				})
1597- 				m .Group ("/projects" , func () {
1598- 					m .Combo ("" ).Get (projects .ListRepoProjects ).
1599- 						Post (bind (api.NewProjectPayload {}), projects .CreateRepoProject )
1600- 				}, mustEnableIssues )
16011606			}, repoAssignment ())
16021607		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryIssue ))
16031608
@@ -1686,6 +1691,10 @@ func Routes() *web.Router {
16861691					m .Delete ("" , org .UnblockUser )
16871692				})
16881693			}, reqToken (), reqOrgOwnership ())
1694+ 
1695+ 			m .Group ("/projects" , func () {
1696+ 				m .Post ("" , bind (api.NewProjectPayload {}), projects .CreateOrgProject )
1697+ 			})
16891698		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryOrganization ), orgAssignment (true ), checkTokenPublicOnly ())
16901699		m .Group ("/teams/{teamid}" , func () {
16911700			m .Combo ("" ).Get (reqToken (), org .GetTeam ).
@@ -1764,11 +1773,6 @@ func Routes() *web.Router {
17641773			})
17651774		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryAdmin ), reqToken (), reqSiteAdmin ())
17661775
1767- 		m .Group ("/projects" , func () {
1768- 			m .Combo ("/{id}" ).Get (projects .GetProject ).
1769- 				Patch (bind (api.UpdateProjectPayload {}), projects .UpdateProject ).
1770- 				Delete (projects .DeleteProject )
1771- 		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryIssue ), reqToken ())
17721776		m .Group ("/topics" , func () {
17731777			m .Get ("/search" , repo .TopicSearch )
17741778		}, tokenRequiresScopes (auth_model .AccessTokenScopeCategoryRepository ))
0 commit comments