| # @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. |