mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Add Chef package registry (#22554)
This PR implements a [Chef registry](https://chef.io/) to manage cookbooks. This package type was a bit complicated because Chef uses RSA signed requests as authentication with the registry.   Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		| @@ -15,6 +15,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 	"code.gitea.io/gitea/modules/web" | ||||
| 	"code.gitea.io/gitea/routers/api/packages/cargo" | ||||
| 	"code.gitea.io/gitea/routers/api/packages/chef" | ||||
| 	"code.gitea.io/gitea/routers/api/packages/composer" | ||||
| 	"code.gitea.io/gitea/routers/api/packages/conan" | ||||
| 	"code.gitea.io/gitea/routers/api/packages/conda" | ||||
| @@ -54,6 +55,7 @@ func CommonRoutes(ctx gocontext.Context) *web.Route { | ||||
| 		&auth.Basic{}, | ||||
| 		&nuget.Auth{}, | ||||
| 		&conan.Auth{}, | ||||
| 		&chef.Auth{}, | ||||
| 	} | ||||
| 	if setting.Service.EnableReverseProxyAuth { | ||||
| 		authMethods = append(authMethods, &auth.ReverseProxy{}) | ||||
| @@ -86,6 +88,25 @@ func CommonRoutes(ctx gocontext.Context) *web.Route { | ||||
| 				}) | ||||
| 			}) | ||||
| 		}, reqPackageAccess(perm.AccessModeRead)) | ||||
| 		r.Group("/chef", func() { | ||||
| 			r.Group("/api/v1", func() { | ||||
| 				r.Get("/universe", chef.PackagesUniverse) | ||||
| 				r.Get("/search", chef.EnumeratePackages) | ||||
| 				r.Group("/cookbooks", func() { | ||||
| 					r.Get("", chef.EnumeratePackages) | ||||
| 					r.Post("", reqPackageAccess(perm.AccessModeWrite), chef.UploadPackage) | ||||
| 					r.Group("/{name}", func() { | ||||
| 						r.Get("", chef.PackageMetadata) | ||||
| 						r.Group("/versions/{version}", func() { | ||||
| 							r.Get("", chef.PackageVersionMetadata) | ||||
| 							r.Delete("", reqPackageAccess(perm.AccessModeWrite), chef.DeletePackageVersion) | ||||
| 							r.Get("/download", chef.DownloadPackage) | ||||
| 						}) | ||||
| 						r.Delete("", reqPackageAccess(perm.AccessModeWrite), chef.DeletePackage) | ||||
| 					}) | ||||
| 				}) | ||||
| 			}) | ||||
| 		}, reqPackageAccess(perm.AccessModeRead)) | ||||
| 		r.Group("/composer", func() { | ||||
| 			r.Get("/packages.json", composer.ServiceIndex) | ||||
| 			r.Get("/search.json", composer.SearchPackages) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user