Katkı modeli

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2017

Uzantılar, katkılar sağlayarak ve diğer uzantıların bunları eklemenin yollarını tanımlayarak sisteme yeni özellikler ekler. Katkı türü, sisteme eklenilen bir şeyi tanımlar. Katkı, katkı türünün belirli bir örneğidir. Örneğin, hub Çekirdek, Microsoft tarafından sağlanan bir uzantı tarafından tanımlanan bir katkı türü. Derleme Explorer hub'ı grubu altındaki hub, türünde belirli bir hub katkıdır.

İpucu

Uzantı SDK'sı kullanarak uzantı geliştirmeyle ilgili en Azure DevOps göz atın.

Katkı türleri

Katkı türü, bu tür sisteme yapılan tüm katkıların uyması gereken bir sözleşme tanımlar. hub, action ve tüm katkı build-task türlerine örnek olarak verilmiştir. Türler, bu tür örneklerine göre ayarlanmış özellikleri tanımlar. Her özellik tanımı özelliğin türünü (dize, boole vb.), özelliğin gerekli olup olmadığını ve bir katkı tarafından belirtilmezse isteğe bağlı olarak varsayılan değeri belirtir. Bir katkı türü, başka bir katkı türünden de genişletici olabilir.

Örnek

Uzantı bildiriminde katkı türü bildirimi örneği:

{
    ...
    "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ı, katkı türünün bir örneğidir. Örneğin, İş hub'ı grubu altındaki hub türünde bir katkıdır ve Queries derleme görevi türünde bir hubPublish Test Resultsbuild-task katkıdır.

Tüm katkılar bir tür belirtmeli ve bu katkı türü için gereken tüm özellikler için değerleri belirtmektedir.

Örnek

Uzantı bildiriminde hub katkı bildirimi örneği:

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

Katkıları hedefleme

Katkı, bir veya daha fazla katkıyı hedefleyene kadar devam ediyor olabilir. Bu, katkı ile hedeflerinin her biri arasında sistemin çalışma zamanında hedefe yönelik katkıları bulmasını sağlayan bir ilişki oluşturur. Örneğin, bir katkı hub ( ) belirli bir Explorer katkıyı ( ) hub-group hedefleyebiliyor. Build

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

Hub grubu işlenirken sistem, işlenecek hub'ları bilmek için hub grubunu hedef alan tüm hub katkılarını sorgular.

Katkıları ve türleri tanımlama

Her katkı ve katkı türünün benzersiz bir kimliği olmalıdır (içinde bildirilen uzantının içinde).

Tam katkı tanımlayıcısı, nokta (.) ile ayrılmış yayımcı kimliğini, uzantı kimliğini ve katkı/tür kimliğini içerir. Örneğin: "ms.vss-web.hub", (Microsoft) yayımcısı tarafından yayımlanan uzantının kimliğiyle katkının tam hubvss-webms tanımlayıcısıdır.

Göreli katkı başvuruları, bir katkının aynı uzantı içindeki başka bir katkıya veya katkı türüne başvurusu için bir uzantı bildirimi içinde kullanılabilir. Bu durumda, yayımcı ve uzantı kimlikleri DAHIL LİSER OLMAZ ve kimlik bir noktadır (.) ardından katkı kimliği. Örneğin, daha önce "ms.vss-web.hub" kısayolu olarak bahsedilen "vss-web" uzantısında ".hub" kullanılabilir.