Skip to content

Cum să folosești webhook-uri ca resursă în Concourse CI

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să folosești webhook. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.

Resursa de tip Webhook în Concourse CI permite declanșarea pipeline-urilor din surse externe, cum ar fi GitHub, GitLab, Jenkins sau API-uri personalizate.

Configurarea de bază

resources:
  - name: webhook-trigger
    type: webhook
    source:
      type: push
      secret: ((webhook-secret))

Obținerea URL-ului Webhook

După configurarea resursei, Concourse generează un URL unic:

https://ci.dodatech.com/api/v1/teams/main/pipelines/deploy-pipeline/resources/webhook-trigger/check/webhook?webhook_token=((webhook-secret))

Utilizarea în pipeline

jobs:
  - name: deploy-on-webhook
    plan:
      - get: webhook-trigger
        trigger: true
      - get: source-code
      - task: deploy
        config:
          platform: linux
          image_resource:
            type: registry-image
            source: { repository: alpine }
          run:
            path: sh
            args:
              - -c
              - |
                echo "Webhook primit! Declanșare deploy..."
                echo "Payload: $(cat webhook-trigger/payload.json)"

Output așteptat:

Webhook resource checked
New version detected
Webhook primit! Declanșare deploy...
Payload: {"ref": "main", "action": "push"}

Trimite un Webhook cu curl

curl -X POST \
  https://ci.dodatech.com/api/v1/teams/main/pipelines/deploy-pipeline/resources/webhook-trigger/check/webhook?webhook_token=secret123 \
  -H "Content-Type: application/json" \
  -d '{"ref": "main", "action": "push"}'

Configurare pentru GitHub

În setările Repository-ului GitHub, adaugă Webhook:

  • Payload URL: URL-ul generat de Concourse
  • Content type: application/json
  • Secret: același ca în configurația resursei
  • Events: push, pull_request, release (selectează ce ai nevoie)

Prevenire

  • Păstrează secretul Webhook-ului în siguranță -- folosește vault
  • Validează payload-ul în task-ul pipeline-ului
  • Limitează accesul la URL-ul Webhook doar la surse de încredere
  • Folosește HTTPS pentru toate conexiunile Webhook

Greșeli comune

  1. Webhook secret expus în cod -- folosește ((variabile)) pentru token
  2. URL Webhook greșit -- verifică că token-ul din URL corespunde cu cel din configurare
  3. Fără trigger: true -- resursa Webhook este verificată dar nu declanșează automat job-ul
Pot folosi webhook-uri fără token?

Da, dar nu este recomandat. Token-ul asigură că numai surse autorizate pot declanșa pipeline-ul.

Ce tipuri de webhook suportă Concourse?

Concourse suportă Webhook-uri generice cu payload JSON. Poți integra orice sistem care poate trimite request-uri HTTP POST.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech uses Webhook resources for real-time CI/CD triggering.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro