Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

웹훅(webhooks)은 컴퓨트 엔진(compute engine)을 통해 분석 보고서를 처리한 후, 사용자가 입력한 외우 HTTP(S) URL로 데이터를 포스트(POST) 방식으로 전달합니다. 일반적으로 SonarQube 프로젝트의 품질 게이트 상태를 외부 도구에 알리기 위해 웹훅을 사용할 수 있습니다.

HTTP(S) 호출은:

  • 백그라운드 태스크(Background Task)의 상태와 관계없이 생성됩니다.
  • POST 방식을 사용하며, JSON 문서로 payload를 구성합니다.
  • UTF-8 인코딩 방식을 사용하며, "application/json" 컨텐트 타입을 가집니다.

환경 설정

You can configure up to 10 webhooks in Administration > Configuration > General Settings > Webhooks.

An additional set of 10 webhooks can be configured at the global level.

If configured, all 20 will be executed.

Payload Format

The Payload is a JSON document. Here what you can find in this JSON document:

  • when the analysis was performed: see "analysedAt"
  • the identification of the project analyzed: see "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

{
    "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:

sonar-scanner -Dsonar.analysis.scmRevision=628f5175ada0d685fd7164baa7c6382c1f25cab4 -Dsonar.analysis.buildNumber=12345

Payload will contain:

"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


  • No labels