Panel | ||||
---|---|---|---|---|
| ||||
Table of Contents
|
웹훅(webhooks)은 컴퓨트 엔진(compute engine)을 통해 분석 보고서를 처리한 후, 사용자가 입력한 외우 외부 HTTP(S) URL로 데이터를 포스트(POST) 방식으로 전달합니다. 일반적으로 SonarQube 프로젝트의 품질 게이트 상태를 외부 도구에 알리기 위해 웹훅을 사용할 수 있습니다.
HTTP(S) 호출은:
- 백그라운드 태스크(Background Task)의 상태와 관계없이 생성됩니다.
- POST 방식을 사용하며, JSON 문서로 payload를 구성합니다.
- UTF-8 인코딩 방식을 사용하며, "application/json" 컨텐트 타입을 가집니다.
설정
최대 10개의 웹훅을 설정할 수 있습니다. 웹훅을 설정하려면 Administration > Configuration > General Settings > Webhooks 메뉴를 사용합니다.
추가적으로 global 레벨에서 10개의 웹훅을 설정할 수 있습니다. 설정된 웹훅은 동시에 실행됩니다.
Payload
FormatThe Payload is a JSON document. Here what you can find in this JSON document:
형태
웹훅의 Payload는 JSON 문서입니다. 이 JSON 문서에서 다음을 확인할 수 있습니다:
- 분석이 수행되는 시기: "
analysedAt
" - 분석 대상 프로젝트의 고유 식별자: "
project
" - each Quality Gate criterion checked and its status: see "qualityGate"
- the Quality Gate status of the project: see "qualityGate.status"
- the status and the identifier of the Background Task : see "status" and "taskId"
- user-specified properties: see "properties"
Example
Code Block | ||
---|---|---|
| ||
{ "analysedAt": "2016-11-18T10:46:28+0100", "project": { "key": "org.sonarqube:example", "name": "Example" }, "properties": { }, "qualityGate": { "conditions": [ { "errorThreshold": "1", "metric": "new_security_rating", "onLeakPeriod": true, "operator": "GREATER_THAN", "status": "OK", "value": "1" }, { "errorThreshold": "1", "metric": "new_reliability_rating", "onLeakPeriod": true, "operator": "GREATER_THAN", "status": "OK", "value": "1" }, { "errorThreshold": "1", "metric": "new_maintainability_rating", "onLeakPeriod": true, "operator": "GREATER_THAN", "status": "OK", "value": "1" }, { "errorThreshold": "80", "metric": "new_coverage", "onLeakPeriod": true, "operator": "LESS_THAN", "status": "NO_VALUE" } ], "name": "SonarQube way", "status": "OK" }, "status": "SUCCESS", "taskId": "AVh21JS2JepAEhwQ-b3u" } |
How can I provide additional parameters to webhooks?
If you provide additional properties to your SonarQube Scanner using the pattern sonar.analysis.*
, these properties will be automatically added to the section "properties
" of the payload.
Example:
Code Block |
---|
sonar-scanner -Dsonar.analysis.scmRevision=628f5175ada0d685fd7164baa7c6382c1f25cab4 -Dsonar.analysis.buildNumber=12345 |
Payload will contain:
Code Block | ||
---|---|---|
| ||
"properties": { "sonar.analysis.scmRevision": "628f5175ada0d685fd7164baa7c6382c1f25cab4", "sonar.analysis.buildNumber": "12345" } |
Deliveries
There is currently no UI to track webhook deliveries; only Web Services are available to follow them, and those services are in Beta and are subject to change without notice. Response records are purged after 30 days.
api/webhooks/deliveries
api/webhooks/delivery
There is no Web API to register/unregister a Webhook. You may only use the UI to perform this action.
This is not possible to provide credentials to the Webhook.
Noteworthy
- the URL must respond within 10 seconds or the delivery is marked as failed
- the HTTP header "X-SonarQube-Project" is fed with the project key to quickly identify the project involved