Katkı modeli

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Uzantılar, uzantı bildiriminde bildirilen katkılar ve katkı türleri aracılığıyla Azure DevOps'a özellikler ekler. Katkı türü bir sözleşme tanımlar; bu tür katkılarının uygulaması gereken özellikler ve davranışlar. Katkı, bir katkı türünün (örneğin, merkez veya derleme görevi) somut bir örneğidir.

Tavsiye

Yeni bir Azure DevOps uzantısı başlatıyorsanız, önce bu bakımlı örnek koleksiyonları deneyin; bunlar geçerli ürün derlemeleriyle çalışır ve modern senaryoları kapsar (örneğin, çekme isteği sayfalarına sekme ekleme).

Kuruluşunuzda bir örnek çalışmıyorsa, bunu kişisel bir kuruluşa veya test kuruluşuna yükleyin ve uzantı bildiriminin hedef kimliklerini ve API sürümlerini geçerli belgelerle karşılaştırın. Başvuru ve API'ler için bkz:

Daha fazla bilgi için bakınız:

Katkı türleri

Katkı türü, bu türdeki katkıların izlemesi gereken özellikleri ve kuralları tanımlar. Katkı türleri, özelliklerini devralarak diğer katkı türlerini genişletebilir.

Yaygın yerleşik katkı türleri şunlardır:

  • ms.vss-web.hub — web kullanıcı arabiriminde bir sayfa
  • ms.vss-web.action — menü eylemi
  • ms.vss-distributed-task.task — derleme/yayın görevi

Bir katkı türündeki her özellik tanımı şunu belirtir:

  • type — veri türü (örneğin, string, boolean, integer)
  • gerekli — özelliğin sağlanıp sağlanmayacağı
  • default — isteğe bağlı bir varsayılan değer

Katkı türü örneği

Bildirimdeki katkı türü bildirimi şöyle görünür:

{
  "contributionTypes": [
    {
      "id": "hub",
      "name": "Web Access Hub",
      "description": "A hub that appears in the hubs menu at the top of web pages.",
      "properties": {
        "name": {
          "description": "The text to display for the hub",
          "type": "string",
          "required": true
        },
        "uri": {
          "description": "URI of the contents of the hub page",
          "type": "string",
          "required": true
        },
        "order": {
          "description": "Optional ordering value indicating the hub's position within the hub group",
          "type": "integer"
        }
      }
    }
  ]
}

Katkılar

katkı bir katkı türünün örneğidir. Örneğin, Queries iş hub'ı grubu altındaki hub, ms.vss-web.hub türünde bir katkıdır ve Publish Test Results derleme görevi, ms.vss-distributed-task.task türünde bir katkıdır.

Her katkının bir tür belirtmesi ve bu tür için gereken özellikler için değerler sağlaması gerekir.

Katkı örneği

Bir uzantı bildiriminde aşağıdaki hub katkı bildirimi, derleme hub grubuna "Explorer" adlı bir hub ekler:

{
    "contributions": [
        {
            "id": "build-explorer-hub",
            "type": "ms.vss-web.hub",
            "targets": [
                ".build-hub-group"
            ],
            "properties": {
                "name": "Explorer",
                "uri": "/_build",
                "order": 22
            }
        }
    ]
}

Hedef katkılar

Bir katkı, bir veya daha fazla diğer katkıyı hedef alabilir ve bir ebeveyn-çocuk ilişkisi oluşturabilir. Sistem, ne işleneceğini belirlemek için çalışma zamanında bu ilişkileri bulur. Örneğin, katkı hub bir hub-group katkıyı hedefler, böylece sistem hangi hub'ların hangi gruba ait olduğunu bilir.

{
    "id": "build-explorer-hub",
    "type": "ms.vss-web.hub",
    "targets": [
        ".build-hub-group"
    ]
}

Merkez grubu görüntülendiğinde sistem, hangi merkezlerin görüntüleneceğini belirlemek için onu hedef alan tüm merkez katkılarını sorgular.

Katkı tanımlayıcıları

Her katkı ve katkı türünün kendi uzantısında benzersiz bir kimliği olmalıdır.

Tam Nitelikli bir tanımlayıcı, üç noktayla ayrılan bölüme sahiptir (.):

Bölüm Örnek
Yayımcı Kimliği ms
Uzantı Kimliği vss-web
Katkı tipi/kimlik hub

Tam tanımlayıcı: ms.vss-web.hub

Aynı uzantı bildiriminde göreli başvuruları kullanabilirsiniz; bir nokta ve ardından katkı kimliği. Örneğin, .hub uzantısının içinde ms.vss-web.hub için kullanılan vss-web bir kısayoldur.