Katkı modeli

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Uzantılar, katkıda bulunarak ve diğer uzantıların bunlara bağlanma yollarını tanımlayarak sisteme yeni özellikler ekler. Katkı türü, sisteme eklenebilen bir öğeyi tanımlar. Katkı, bir katkı türünün belirli bir örneğidir. Örneğin, hub Microsoft tarafından sağlanan temel bir uzantı tarafından tanımlanan bir katkı türüdür. Derleme hub'ı Explorer grubunun altındaki hub türüne hubözgü bir katkıdır.

Daha fazla bilgi için aşağıdaki başvurulara bakın:

Katkı türleri

Katkı türü, bu türdeki sisteme yapılan tüm katkıların uyması gereken bir sözleşmeyi tanımlar. Bir katkı türü başka bir katkı türünden de genişletilebilir. Aşağıdaki katkı türleri örnekleri, bu türün örneklerine göre ayarlanan özellikleri tanımlar:

  • hub
  • action
  • build-task

Her özellik tanımı aşağıdaki özellikleri belirtir:

  • Özellik türü, örneğin dize, boole, vb.
  • Özelliğin gerekli olup olmadığı
  • Bir katkı tarafından belirtilmemişse varsayılan değer (isteğe bağlı).

Örnek

Uzantı bildiriminde katkı türü bildirimi örneği aşağıda verilmişti:

{
    ...
    "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": "An optional ordering value which can indicate in which position to place the hub within the hub group",
                    "type": "integer"
                }
				...
            }
        }
    ]
}

Katkılar

Katkı , bir katkı türünün örneğidir. Örneğin, İş hub'ı Queries grubu altındaki hub türün hub bir katkısıdır ve Publish Test Results derleme görevi türüne build-taskbir katkıdır.

Tüm katkıların bir tür belirtmesi ve bu katkı türünün gerektirdiği özellikler için değerler belirtmesi gerekir.

Örnek

Uzantı bildiriminde hub katkı bildirimi örneği aşağıda verilmişti:

{
    "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 katkıyı hedefleyebilir ve bu da katkı ile hedeflerinin her biri arasında bir ilişki oluşturur. Sistem, çalışma zamanında hedef için katkıları bulabilir. Örneğin, bir hub katkı (Explorer) belirli hub-group bir katkıyı (Build) hedef alabilir.

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

Merkez grubu işlendiğinde sistem, hangi hub'ların işlendiğini bilmek için merkez grubunu hedefleyen tüm hub katkılarını sorgulayabilir.

Katkıları ve türleri tanımlama

Her katkı ve katkı türünün, beyan edilen uzantı içinde benzersiz bir kimliği olmalıdır.

Tam katkı tanımlayıcısı, nokta . ile ayırdığınız aşağıdaki öğeleri içerir:

  • Yayımcı Kimliği
  • Uzantı Kimliği
  • Katkı/tür kimliği

Örneğin: ms.vss-web.hub aşağıdaki katkının tam tanımlayıcısı:

  • Yayımcı Kimliği: ms
  • Uzantı Kimliği: vss-web
  • Katkı/tür kimliği: hub

Bir katkının aynı uzantıdaki başka bir katkıya veya katkı türüne başvurusu için uzantı bildiriminde göreli katkı başvurularını kullanabilirsiniz. Bu durumda yayımcı ve uzantı kimlikleri dahil değildir ve kimlik, katkı kimliğinin ardından gelen bir noktadır . . Örneğin, .hub daha önce bahsedilen uzantıda vss-web için ms.vss-web.hubkısayol olarak kullanılabilir.