Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud DevOps:Kod kaynağı tetikleyicisi

Son Güncelleme:Oct 07, 2026

İşlem hattınız için kod kaynağı tetikleyicilerini yapılandırın ve işlem hatlarının otomatik olarak ne zaman başlayacağını kontrol etmek üzere tetikleme olaylarını ve filtreleme koşullarını belirtin.

Kod kaynağı tetikleyicisi yapılandırma

Kod kaynağı tetikleyicisini etkinleştirdikten ve bir Webhook yapılandırdıktan sonra, belirtilen depoya ve dala kod gönderildiğinde Flow işlem hattını otomatik olarak çalıştırır.

Alibaba Cloud DevOps Codeup

  1. Alibaba Cloud DevOps'ta işlem hattınıza gidin, Edit Pipeline seçeneğine tıklayın ve ardından Edit Code Source seçeneğine tıklayın.

  2. Enable Code Source Trigger seçeneğine tıklayın. Flow, Webhook URL'sini ilgili Alibaba Cloud DevOps Codeup kod deposuna otomatik olarak ekler.

Tetikleyiciyi etkinleştirdikten sonra, Triggering events bölümünde code commit, tag creation, merge request completed ve merge request created/updated gibi istediğiniz olay türlerini seçin. Ayrıca branch or tag filtering ve code path filtering seçeneklerini de etkinleştirebilirsiniz. İşleminiz bittiğinde Add seçeneğine tıklayın.

Tetikleyiciyi etkinleştirdiğinizde, Flow Alibaba Cloud DevOps Codeup kod deponuzun Webhooks ayarları sayfasında otomatik olarak bir Webhook kaydeder. Bu Webhook; push events, tag push events ve merge request events kapsamını içerir.

Diğer kod kaynakları

  1. İşlem hattının düzenleme sayfasında Edit Code Source seçeneğine tıklayın. Code Source Trigger özelliğini etkinleştirin ve Webhook URL'sini kopyalayın.

    Triggering events bölümünde code commit seçeneğini belirleyin ve kopyaladığınız Webhook URL'sini ilgili kod deposunun Webhook tetikleyici ayarlarına ekleyin.

  2. Kopyalanan Webhook URL'sini ilgili kod deposunun ayarlarına ekleyin. Alibaba Cloud DevOps; GitLab, GitHub, Gitee ve General Git depoları için kod kaynağı tetikleyicilerini destekler. Yapılandırma yöntemleri depo türüne göre değişiklik gösterir.

    GitLab

    GitLab kod deponuza gidin ve şuraya gidin . İşlem hattından kopyaladığınız Webhook URL'sini URL alanına yapıştırın.

    Trigger bölümünde Push events seçeneğini belirleyin.

    GitHub

    GitHub kod deponuza gidin, şuraya gidin ve Add Webhook seçeneğine tıklayın. Flow işlem hattından kopyaladığınız Webhook URL'sini Payload URL alanına yapıştırın. Content Type için application/json seçeneğini belirleyin.

    Tetikleyici için varsayılan seçeneği koruyun: Just the push event..

    Gitee

    Gitee kod deponuza gidin ve şuraya gidin . Flow işlem hattından kopyaladığınız Webhook URL'sini URL alanına yapıştırın.

    General Git

    GitLab'ı örnek alarak GitLab kod deponuza gidin ve şuraya gidin . İşlem hattından kopyaladığınız Webhook URL'sini URL alanına yapıştırın.

    SVN

    1. İşlem hattı düzenleme sayfasında kod kaynağı tetikleyicisini etkinleştirin ve Webhook URL'sini kopyalayın.

      Tetikleme olayı olarak code commit seçeneğini belirleyin. Webhook URL'si şu şekildedir: http://flow-openapi.alibabacloud.com/scm.

    2. SVN sunucusunda deponuzun hooks dizinine gidin. Hook betiği şablonlarını bulun. Her şablon bir olaya karşılık gelir. Bir şablonu kullanmak için .tmpl uzantısını kaldırın.

      14:32  post-commit.tmpl
      14:32  post-lock.tmpl
      14:32  post-revprop-change.tmpl
      14:32  post-unlock.tmpl
      14:32  pre-commit.tmpl
      14:32  pre-lock.tmpl
      14:32  pre-revprop-change.tmpl
      14:32  pre-unlock.tmpl
      14:32  start-commit.tmpl
    3. Örnek olarak post-commit dosyasını ele alalım. post-commit dosyası bir shell betiğidir. SVN, kod gönderimi, dal oluşturma veya etiket oluşturma gibi bir değişiklik algılandığında bu betiği yürütür. Aşağıdaki örnek betik, kod gönderimi üzerine bir Flow işlem hattı çalışmasını nasıl tetikleyeceğinizi göstermektedir:

      #!/bin/sh
      # The repository path and the commit revision number are passed to the script as arguments.
      REPOS="$1"
      REV="$2"
      # Use svnlook to find the directories changed in this commit.
      CHANGED_DIRS=$(svnlook dirs-changed -r "$REV" "$REPOS")
      # Get the first changed directory path, which is usually the top-level directory.
      FIRST_CHANGED_PATH=$(echo "$CHANGED_DIRS" | head -n 1)
      # Assume the branch structure follows the standard format (branches/branch-name). You can parse the branch name from the output.
      BRANCH_NAME=$(echo "$FIRST_CHANGED_PATH" | sed 's#.*/$branches/.*/$$\1#')
      # Construct a curl command to send a request to the webhook URL provided by the pipeline. 
      # Replace the webhook URL with the one from your pipeline, and format the request data as shown in the example.
      curl --location --request POST 'http://flow-openapi.alibabacloud.com/scm/webhook/MwfQPTyf4nif2UdWBooR' \
      --header 'Content-Type: application/json' \
      --data-raw "{
        \"ref\": \"refs/heads/$BRANCH_NAME\",
        \"repository\": {
          \"clone_url\": \"svn://8.142.XX.XXXcom/svn/repos/demo\"
        }
      }"

Tetikleme olayları

Webhook olaylarını kod kaynağına göre filtrelemek için Triggering events kullanın. Aşağıdaki tabloda her kod kaynağı türü için desteklenen olaylar listelenmiştir.


Alibaba Cloud Code


Alibaba Cloud DevOps Codeup


General Git


GitHub


GitLab


Coding


Bitbucket


Self-managed GitLab


SVN


Kod gönderimi


✓


✓


✓


✓


✓


✓


✘


✓


✓


Etiket oluşturma


✓


✓


✘


✘


✓


✘


✘


✓


✘


Birleştirme isteği oluşturuldu/güncellendi


✘


✓


✘


✘


✘


✘


✘


✘


✘


Birleştirme isteği tamamlandı


✘


✓


✘


✘


✓


✘


✘


✓


✘

Code commit: Yerel bir dalı uzak dala gönderdiğinizde veya kod platformunuzun web arayüzünde dosyaları düzenlediğinizde tetiklenir (örneğin, yerel master dalını origin/master dalına gönderme). Flow, hedef dalı filtre koşullarıyla eşleştirir ve eşleşme durumunda işlem hattını bu dalı kullanarak tetikler.

Tag creation: Yerel bir etiketi sunucuya gönderdiğinizde veya kod platformunuzun web arayüzünde bir etiket oluşturduğunuzda tetiklenir (örneğin, yerel release/0.0.1 etiketini sunucuya gönderme). Flow, etiket adını filtre koşullarıyla eşleştirir ve eşleşme durumunda işlem hattını bu etiketi kod sürümü olarak kullanarak tetikler.

Merge request created/updated: Kod platformunuzun web arayüzünde bir birleştirme isteği oluşturduğunuzda veya güncellediğinizde tetiklenir. Bu olay yalnızca Alibaba Cloud DevOps Codeup tarafından desteklenir. Örneğin, uzak dev dalından (kaynak) master dalına (hedef) bir birleştirme isteği oluşturursanız, Flow hedef dalı filtre koşullarıyla eşleştirir ve eşleşme durumunda işlem hattını kaynak dalı kullanarak tetikler.

Merge request completed: merge request created/updated olayına benzerdir, ancak Flow çalıştırma için hedef dalı kullanır.

Filtreleme koşulları

Dal veya etiket filtreleme

Filtre koşulları düzenli ifadeleri destekler. master veya dev gibi belirli bir dal girin veya Java tarzı düzenli ifade sözdizimini kullanın. Örneğin:

  • master ve dev gibi birden çok dalı eşleştirmek için master|dev girin.

  • feature ile başlayan dalları eşleştirmek için ^feature.* girin.

Kod yolu filtreleme

Kod yolu filtreleme, değiştirilen dosyaların yollarına göre tetikleme olaylarını filtrelemenize olanak tanır. Bu özellik yalnızca Alibaba Cloud DevOps Codeup kaynaklarından gelen Push olaylarını destekler. Flow, kod değişiklikleri filtre kurallarıyla eşleştiğinde işlem hattını tetikler. Filtre koşulları düzenli ifadeleri destekler. Örneğin, auth-srv/.* ifadesi yalnızca auth-srv dizinindeki kod güncellendiğinde işlem hattını tetikler.