blob: 2048937fab1068cd77c6000a88573e7db74bdc39 [file] [log] [blame] [view]
@PLUGIN@ - /config/ 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).
<a id="importer-endpoints"> Importer Endpoints
----------------------------------------------
### <a id="import-project"> Import Project
_PUT /config/server/@PLUGIN@~projects/[\{project-name\}](../../../Documentation/rest-api-projects.html#project-name)_
Imports a project.
Information about the project import must be provided in the request
body as a [ImportProjectInput](#import-project-input)
entity.
Caller must be a member of a group that is granted the 'Import'
capability (provided by this plugin) or the 'Administrate Server'
capability.
#### Request
```
PUT /config/server/@PLUGIN@~projects/myProject HTTP/1.0
Content-Type: application/json;charset=UTF-8
{
"from": "https://some-gerrit-server:8080",
"user": "myUser",
"pass": "myPassword"
}
```
As result a [ImportStatisticInfo](#import-statistic-info) entity is
returned.
#### Response
```
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"num\_changes\_created": 5
}
```
### <a id="list-imported-projects"> List Imported Projects
_GET /config/server/@PLUGIN@~projects/_
Lists the imported projects.
Caller must be a member of a group that is granted the 'Import'
capability (provided by this plugin) or the 'Administrate Server'
capability.
It is possible to filter the list of imported projects using the
`match` option. The response will include only those projects whose
name contains the given `match` substring, case insensitive.
#### Request
```
GET /config/server/@PLUGIN@~projects/?match=my HTTP/1.0
```
As result a map is returned that maps the project name to
[ImportProjectInfo](#import-project-info) entity.
#### Response
```
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"myProject": {
"from": "http://localhost:8081/",
"name": "myProject",
"imports": [
{
"timestamp": "2015-03-11 09:14:21.748000000",
"user": {
"_account_id": 1000000,
"name": "Administrator",
"email": "edwin.kempin@gmail.com",
"username": "admin"
},
"remote_user": "admin"
}
]
},
"myProject2": {
"from": "http://localhost:8081/",
"name": "projectToBeRenamed",
"imports": [
{
"timestamp": "2015-03-11 09:16:04.511000000",
"user": {
"_account_id": 1000000,
"name": "Administrator",
"email": "edwin.kempin@gmail.com",
"username": "admin"
},
"remote_user": "admin"
}
]
}
}
```
### <a id="get-imported-project"> Get Imported Project
_GET /config/server/@PLUGIN@~projects/[\{project-name\}](../../../Documentation/rest-api-projects.html#project-name)_
Gets information about the imports of a project.
As result a [ImportProjectInfo](#import-project-info) entity is
returned.
Caller must be a member of a group that is granted the 'Import'
capability (provided by this plugin) or the 'Administrate Server'
capability.
#### Request
```
GET /config/server/@PLUGIN@~projects/myProject HTTP/1.0
```
#### Response
```
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"from": "http://localhost:8081/",
"name": "myProject",
"imports": [
{
"timestamp": "2015-03-11 09:14:21.748000000",
"user": {
"_account_id": 1000000,
"name": "Administrator",
"email": "edwin.kempin@gmail.com",
"username": "admin"
},
"remote_user": "admin"
}
]
}
```
### <a id="resume-project-import"> Resume Project Import
_GET /config/server/@PLUGIN@~projects/[\{project-name\}](../../../Documentation/rest-api-projects.html#project-name)/resume_
Resumes a project import.
Information about the import resume must be provided in the request
body as a [ImportResumeInput](#import-resume-input) entity.
Caller must be a member of a group that is granted the 'Import'
capability (provided by this plugin) or the 'Administrate Server'
capability.
#### Request
```
PUT /config/server/@PLUGIN@~projects/myProject/resume HTTP/1.0
Content-Type: application/json;charset=UTF-8
{
"user": "myUser",
"pass": "myPassword"
}
```
As result a [ResumeImportStatisticInfo](#resume-import-statistic-info)
entity is returned.
#### Response
```
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"num\_changes\_created": 1,
"num\_changes\_updated": 2
}
```
### <a id="import-group"> Import Group
_PUT /config/server/@PLUGIN@~groups/[\{group-name\}](../../../Documentation/rest-api-groups.html#group-name)_
Imports a group.
Information about the group import must be provided in the request
body as a [ImportGroupInput](#import-group-input)
entity.
Caller must be a member of a group that is granted the 'Import'
capability (provided by this plugin) or the 'Administrate Server'
capability.
#### Request
```
PUT /config/server/@PLUGIN@~groups/myGroup HTTP/1.0
Content-Type: application/json;charset=UTF-8
{
"from": "https://some-gerrit-server:8080",
"user": "myUser",
"pass": "myPassword"
}
```
### <a id="complete-project-import"> Complete Project Import
_DELETE /config/server/@PLUGIN@~projects/[\{project-name\}](../../../Documentation/rest-api-projects.html#project-name)_
Mark a project import as completed.
Once a project import is completed it cannot be resumed any more.
#### Request
```
DELETE /config/server/@PLUGIN@~projects/myProject HTTP/1.0
```
#### Response
```
HTTP/1.1 204 No Content
```
<a id="json-entities">JSON Entities
-----------------------------------
### <a id="import-group-input"></a>ImportGroupInput
The `ImportGroupInput` entity contains information about a group import.
* _from_: URL of the remote system from where the group should be
imported.
* _user_: User on remote system.
* _pass_: Password of remote user.
### <a id="import-info"></a>ImportInfo
The `ImportInfo` entity contains information about a past import.
* _timestamp_: The timestamp of when the import was done.
* _user_: User that did the import as a detailed
link:../../../Documentation/rest-api-accounts.html#account-info[AccountInfo]
entity.
* _remote_user_: User on remote system.
### <a id="import-project-info"></a>ImportProjectInfo
The `ImportProjectInfo` entity contains information about the past
imports of a project.
* _from_: URL of the remote system from where the project should be
imported.
* _name_: Name of the project in the source system.
* _parent_: (Optional) Name of the parent project in the target system.
* _imports_: List of past imports as [ImportInfo](#import-info)
entities.
### <a id="import-project-input"></a>ImportProjectInput
The `ImportProjectInput` entity contains information about a project
import.
* _from_: URL of the remote system from where the project should be
imported.
* _name_: (Optional) Name of the project in the source system.
If not specified it is assumed to be the same name as in the target
system.
* _user_: User on remote system.
* _pass_: Password of remote user.
* _parent_: (Optional) Name of the parent project in the target system.
The imported project will be created under this parent project.
### <a id="import-resume-input"></a>ImportResumeInput
The `ImportResumeInput` entity contains information about an import
resume.
* _user_: User on remote system.
* _pass_: Password of remote user.
* _force_: Whether the resume should be done forcefully. On resume with
force changes that have the same last modified timestamp in the source
and target system are resumed, otherwise they will be skipped.
### <a id="import-statistic-info"></a>ImportStatisticInfo
The `ImportStatisticInfo` entity contains statistics about a project
import.
* _num\_changes\_created_: Number of created changes.
### <a id="resume-import-statistic-info"></a>ResumeImportStatisticInfo
The `ResumeImportStatisticInfo` entity contains statistics about a
project import resume.
* _num\_changes\_created_: Number of created changes.
* _num\_changes\_updated_: Number of updated changes.
SEE ALSO
--------
* [Config related REST endpoints](../../../Documentation/rest-api-config.html)
GERRIT
------
Part of [Gerrit Code Review](../../../Documentation/index.html)