Table of Contents |
웹훅(webhooks)은 컴퓨트 엔진(compute engine)을 통해 분석 보고서를 처리한 후, 사용자가 입력한 외부 HTTP(S) URL로 데이터를 포스트(POST) 방식으로 전달합니다. 일반적으로 SonarQube 프로젝트의 품질 게이트 상태를 외부 도구에 알리기 위해 웹훅을 사용할 수 있습니다.
HTTP(S) 호출은:
최대 10개의 웹훅을 설정할 수 있습니다. 웹훅을 설정하려면 Administration > Configuration > General Settings > Webhooks 메뉴를 사용합니다.
추가적으로 global 레벨에서 10개의 웹훅을 설정할 수 있습니다. 설정된 웹훅은 동시에 실행됩니다.
웹훅의 Payload는 JSON 문서입니다. 이 JSON 문서에서 다음을 확인할 수 있습니다:
analysedAt
"project
"{ "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" } |
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:
sonar-scanner -Dsonar.analysis.scmRevision=628f5175ada0d685fd7164baa7c6382c1f25cab4 -Dsonar.analysis.buildNumber=12345 |
Payload will contain:
"properties": { "sonar.analysis.scmRevision": "628f5175ada0d685fd7164baa7c6382c1f25cab4", "sonar.analysis.buildNumber": "12345" } |
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.