| # @PLUGIN@ - REST API | |
| This page describes the REST endpoints that are added by the @PLUGIN@ plugin. | |
| Please also take note of the general information on the | |
| [REST API](../../../Documentation/rest-api.html). | |
| ## Get project configuration | |
| _GET /projects/project_name/@PLUGIN@:config-project_ | |
| Gets the LFS configuration for a specified project. | |
| ``` | |
| GET /projects/myproject/@PLUGIN@:config-project HTTP/1.0 | |
| ``` | |
| As response an [LfsProjectConfigInfo](#lfs-project-config-info) entity is | |
| returned that describes the LFS configuration for the project. | |
| ``` | |
| HTTP/1.1 200 OK | |
| Content-Disposition: attachment | |
| Content-Type: application/json;charset=UTF-8 | |
| )]}' | |
| { | |
| "enabled": true, | |
| "max_object_size": 102400 | |
| "read_only": true, | |
| "backend": "foo" | |
| } | |
| ``` | |
| ## Get global configuration | |
| _GET /projects/All-Projects/@PLUGIN@:config-global_ | |
| Gets the global LFS configuration. May only be called on `All-Projects` by users | |
| having the 'Administrate Server' capability. | |
| ``` | |
| GET /projects/All-Projects/@PLUGIN@:config-global HTTP/1.0 | |
| ``` | |
| As response an [LfsGlobalConfigInfo](#lfs-global-config-info) entity is returned | |
| that describes the global LFS configuration. | |
| ``` | |
| HTTP/1.1 200 OK | |
| Content-Disposition: attachment | |
| Content-Type: application/json;charset=UTF-8 | |
| )]}' | |
| { | |
| "default_backend_type": "FS", | |
| "backends": { | |
| "foo": "FS" | |
| }, | |
| "namespaces": { | |
| "test-project": { | |
| "enabled": true, | |
| "max_object_size": 102400, | |
| "read_only": false, | |
| "backend": "foo" | |
| } | |
| } | |
| } | |
| ``` | |
| ## Set global configuration | |
| _PUT /projects/All-Projects/@PLUGIN@:config-global_ | |
| Sets the global LFS project configuration. The configuration must be provided in | |
| the request body in an [LfsGlobalConfigInput](#lfs-global-config-input) entity. | |
| If an empty body is sent, all current project settings are removed. May only be | |
| called on `All-Projects` by users having the 'Administrate Server' capability. | |
| ``` | |
| PUT /projects/All-Projects/@PLUGIN@:config-global HTTP/1.0 | |
| Content-Type: application/json;charset=UTF-8 | |
| { | |
| "namespaces": { | |
| "test-project": { | |
| "enabled": false | |
| } | |
| } | |
| } | |
| ``` | |
| As response an [LfsGlobalConfigInfo](#lfs-global-config-info) entity | |
| is returned that describes the updated global LFS configuration. | |
| ``` | |
| HTTP/1.1 200 OK | |
| Content-Disposition: attachment | |
| Content-Type: application/json;charset=UTF-8 | |
| )]}' | |
| { | |
| "default_backend_type": "FS", | |
| "backends": { | |
| "foo": "FS" | |
| }, | |
| "namespaces": { | |
| "test-project": { | |
| "enabled": false, | |
| } | |
| } | |
| } | |
| ``` | |
| ## JSON Entities | |
| ### <a id="lfs-project-config-info"></a>LfsProjectConfigInfo | |
| The `LfsProjectConfigInfo` entity describes the LFS configuration for a project. | |
| * _enabled_: Whether LFS is enabled for this project. Not set if false. | |
| * _max_object_size_: Maximum LFS object size for this project. Only set when | |
| _enabled_ is true. 0 means no limit is set. | |
| * _read_only_: Whether LFS is in read-only mode for this project. Only set when | |
| _enabled_ is true. | |
| * _backend_: LFS storage backend that is used by this project. Only set when | |
| _enabled_ is true. | |
| ### <a id="lfs-global-config-info"></a>LfsGlobalConfigInfo | |
| The `LfsGlobalConfigInfo` entity describes the global configuration for LFS. | |
| * _default_backend_type_: The default LFS backend in use. Can be `FS` or `S3`. | |
| * _backends_: List of storage backends that might be used in namespaces; | |
| map of backend name to storage type (either `FS` or `S3`). | |
| * _namespaces_: Configured namespaces as a map of [LfsProjectConfigInfo] | |
| (#lfs-project-config-info) entities. | |
| ### <a id="lfs-global-config-input"></a>LfsGlobalConfigInput | |
| The `LfsGlobalConfigInput` entity describes the global configuration to set | |
| for LFS. | |
| * _namespaces_: Configured namespaces as a map of [LfsProjectConfigInfo] | |
| (#lfs-project-config-info) entities. |