blob: 5856e636361809b4b52a6bd2c41759306e5f3631 [file] [log] [blame] [view]
# @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.