| @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="webhooks-endpoints"> Webhooks Endpoints | |
| ---------------------------------------------- | |
| ### <a id="list-webhooks"> List webhooks | |
| _GET /config/server/@PLUGIN@~projects/[\{project-name\}](../../../Documentation/rest-api-projects.html#project-name)/remotes/_ | |
| List existing webhooks for a project. | |
| #### Request | |
| ``` | |
| GET /config/server/@PLUGIN@~projects/myProject/remotes/ | |
| ``` | |
| As result a map is returned that maps remote name to [RemoteInfo](#remote-info) entity. | |
| #### Response | |
| ``` | |
| HTTP/1.1 200 OK | |
| Content-Disposition: attachment | |
| Content-Type: application/json; charset=UTF-8 | |
| )]}' | |
| { | |
| "foo": { | |
| "url" : "https://foo.org/gerrit-events", | |
| "maxTries" : 3, | |
| "sslVerify": true | |
| }, | |
| "bar": { | |
| "url" : "https://bar.org/", | |
| "events" : ["patchset-created", "ref-updated"] | |
| } | |
| } | |
| ``` | |
| ### <a id="get-webhook"> Get webhook | |
| _GET /config/server/@PLUGIN@~projects/[\{project-name\}](../../../Documentation/rest-api-projects.html#project-name)/remotes/[\{remote-name\}]_ | |
| Get information about one webhook. | |
| ### Request | |
| ``` | |
| GET /config/server/@PLUGIN@~projects/myProject/remotes/foo | |
| ``` | |
| As result a [RemoteInfo](#remote-info) entity is returned. | |
| ### Response | |
| ``` | |
| HTTP/1.1 200 OK | |
| Content-Disposition: attachment | |
| Content-Type: application/json; charset=UTF-8 | |
| )]}' | |
| { | |
| "url" : "https://foo.org/gerrit-events", | |
| "maxTries" : 3, | |
| "sslVerify": true | |
| } | |
| ``` | |
| ### <a id="create-webhook"> Create webhook | |
| _PUT /config/server/@PLUGIN@~projects/[\{project-name\}](../../../Documentation/rest-api-projects.html#project-name)/remotes/[\{remote-name\}]_ | |
| Create or update a webhook for a project. The request body needs to include a | |
| [RemoteInfo](#remote-info) entity. | |
| ### Request | |
| ``` | |
| PUT /config/server/@PLUGIN@~projects/myProject/remotes/foo | |
| Content-Type: application/json; charset=UTF-8 | |
| { | |
| "url" : "https://foo.org/gerrit-events", | |
| "maxTries" : "3", | |
| "sslVerify": "true" | |
| } | |
| ``` | |
| As response a [RemoteInfo](#remote-info) entity, which describes the created/updated webhook, | |
| is returned. | |
| ### Response | |
| ``` | |
| HTTP/1.1 201 Created | |
| Content-Disposition: attachment | |
| Content-Type: application/json; charset=UTF-8 | |
| )]}' | |
| { | |
| "url" : "https://foo.org/gerrit-events", | |
| "maxTries" : 3, | |
| "sslVerify": true | |
| } | |
| ``` | |
| The response code is 200 when the webhook already existed and was updated: | |
| ``` | |
| HTTP/1.1 200 OK | |
| Content-Disposition: attachment | |
| Content-Type: application/json; charset=UTF-8 | |
| )]}' | |
| { | |
| "url" : "https://foo.org/gerrit-events", | |
| "maxTries" : 3, | |
| "sslVerify": true | |
| } | |
| ``` | |
| ### <a id="delete-webhook"> Delete webhook | |
| _DELETE /config/server/@PLUGIN@~projects/[\{project-name\}](../../../Documentation/rest-api-projects.html#project-name)/remotes/[\{remote-name\}]_ | |
| Delete a webhook for a project. | |
| ### Request | |
| ``` | |
| DELETE /config/server/@PLUGIN@~projects/myProject/remotes/foo | |
| ``` | |
| ### Response | |
| ``` | |
| HTTP/1.1 204 No Content | |
| ``` | |
| ### <a id="remote-info"> RemoteInfo | |
| The `RemoteInfo` contains information about a remote section in a `webhooks.config` file. | |
| * _url_ : See [url](config.md#url) | |
| * _events_ : List of events for which to invoke webhook. See [event](config.md#event) | |
| * _connectionTimeout_ : See [connectionTimeout](config.md#connectionTimeout) | |
| * _socketTimeout_ : See [socketTimeout](config.md#socketTimeout) | |
| * _maxTries_ : See [maxTries](config.md#maxTries) | |
| * _retryInterval_ : See [retryInterval](config.md#retryInterval) | |
| * _sslVerify_ : See [sslVerify](config.md#sslVerify) |