Skip to main content
Version: QB15

Manage GitHub Webhook

Since QuickBuild 15.0, you can manage GitHub Webhook settings via REST API.

GitHub Webhook Plugin Settings

API Permissions

The permissions for managing GitHub Webhook Plugin Settings should be admin.

List GitHub Webhook Plugin Settings

List the settings of GitHub Webhook plugin which you can set up for your organization level webhooks.

GET /rest/webhook/github/plugin_settings

By default, the media type of return result is XML, you can add request header Accept to change the media type, for example, add below header to get JSON result:

Accept: application/json

Update GitHub Webhook Plugin Settings

Update the settings of GitHub Webhook Plugin:

POST /rest/webhook/github/plugin_settings

The request data here should be in JSON format, below is an example:

{
"mappings": [
{
"repo": "myorg/repo1",
"configuration": "9"
},
{
"repo": "myorg/repo2",
"configuration": "root/my/configuration/path"
}
],
"secret": "mysecretlife"
}
  • mappings are a list of pair of GitHub repository and QuickBuild configuration (id or path).
  • secret is the webhook secret which you should have defined in GitHub.

Delete GitHub Webhook Plugin Settings

DELETE /rest/webhook/github/plugin_settings

GitHub Webhook Configuration Settings

If you want to manage GitHub webhook for each configuration, you can use the configuration settings.

API Permissions

The permissions for GitHub Webhook Configuration settings should be granted EDIT_SETTINGS of the configuration

List GitHub Webhook Configuration Settings

GET /rest/webhook/github/configuration_settings/{configurationId}

replace configurationId to the actual id of the configuration you want.

By default, the media type of return result is XML, you can add request header Accept to change the media type, for example, add below header to get JSON result:

Accept: application/json

Update GitHub Webhook Configuration Settings

POST /rest/webhook/github/configuration_settings/{configurationId}

replace configurationId to the actual id of the configuration you want.

{
"secret": "mysecretlife",
"username": "admin",
"condition": "target == \"android\"",
"variables": [
{
"name": "url",
"value": "http://localhost"
}
]
}

The fields above is same as what should be defined in UI.

  • secret is the webhook secret which you should have defined in GitHub.
  • username is the QuickBuild user (username here) to trigger the build who should at least have RUN_BUILD permission for this configuration.
  • condition is an optional field which are some Groovy scripts to tell QuickBuild on which condition the build should be triggered.
  • variables is a list of build variables. Each variable should contain name and its value, all should be string type.

Delete GitHub Webhook Configuration Settings

DELETE /rest/webhook/github/configuration_settings/{configurationId}

replace configurationId to the actual id of the configuration you want.