Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Hizmetleri
Tip
En son uzantı geliştirme kılavuzu için, tema oluşturma ve VSS.SDK'den geçiş dahil, Azure DevOps Uzantısı SDK geliştirici portalına bakın.
Bu makalede, Sprint'ler ve Sorgular hub'larından sonra Azure Boards içerisinde görünen bir hub oluşturacaksınız.
Önkoşullar
- Node.js
- Uzantı paketleme aracı: çalıştır
npm install -g tfx-cli
Uzantı yapısını oluşturma
Uzantınız için bir dizin oluşturun ve başlatın:
mkdir my-hub-extension cd my-hub-extension npm init -y npm install azure-devops-extension-sdk --saveDizininiz şu şekilde görünmelidir:
|--- my-hub-extension |--- node_modules |--- azure-devops-extension-sdk |--- images |--- icon.png |--- hello-world.html |--- package.json |--- vss-extension.json
Hub sayfasını oluşturma
Uzantı dizininizin kökünde hello-world.html oluşturun. Bu sayfa SDK'yı yükler, başlatır ve geçerli kullanıcının adını görüntüler.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Hello World</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
<script>
window.requirejs.config({
enforceDefine: true,
paths: {
'SDK': './lib/SDK.min'
}
});
window.requirejs(['SDK'], function (SDK) {
SDK.init();
SDK.ready().then(() => {
document.getElementById("name").innerText = SDK.getUser().displayName;
});
});
</script>
</head>
<body>
<h1>Hello, <span id="name"></span></h1>
</body>
</html>
Hedefleyebileceğiniz hub gruplarının tam listesi için bkz Genişletilebilirlik noktaları referansı.
Uzantı bildirimini oluşturma
Uzantı dizininizin kökünde vss-extension.json oluşturun.
{
"manifestVersion": 1,
"id": "sample-extension",
"version": "0.1.0",
"name": "My first sample extension",
"description": "A sample Azure DevOps extension.",
"publisher": "fabrikamdev",
"public": false,
"categories": ["Azure Boards"],
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"icons": {
"default": "images/icon.png"
},
"contributions": [
{
"id": "hello-world-hub",
"type": "ms.vss-web.hub",
"description": "Adds a 'Hello' hub to the Work hub group.",
"targets": [
"ms.vss-work-web.work-hub-group"
],
"properties": {
"name": "Hello",
"order": 99,
"uri": "hello-world.html"
}
}
],
"scopes": [
"vso.work"
],
"files": [
{
"path": "hello-world.html", "addressable": true
},
{
"path": "node_modules/azure-devops-extension-sdk",
"addressable": true,
"packagePath": "lib"
},
{
"path": "images/icon.png", "addressable": true
}
]
}
Önemli
Yayımcıyı yayıncı adınıza değiştirin. Yayımcı oluşturmak için bkz. Paketleme, yayımlama ve yükleme.
public geliştirme sırasında false olarak tutun.
Anahtar manifesto özellikleri
| Mülkiyet | Açıklama |
|---|---|
| Katkı | Bağlantı noktasını tanımlar.
type, ms.vss-web.hubve targets hangi hub grubuna ekleneceğini belirtir. Bkz. Tüm hedeflenebilir hub grupları için genişletilebilirlik noktaları . |
| contributions.properties.name | Hub'ın görünen adı. |
| contributions.properties.order | Hub'ın merkez grubu içindeki konumu. |
| contributions.properties.uri | Merkez olarak görüntülenecek sayfanın yolu (uzantı tabanı URI'sine göre). |
| Kapsamlar | Uzantının gerektirdiği izinler.
vso.work iş öğelerine okuma erişimi verir. Bkz. Kapsamlar. |
| Dosyalar | Pakete eklenecek dosyalar. URL gerektiren dosyalar için addressable: true ayarlayın. |
Manifest hakkında daha fazla bilgi için bkz. Uzantı bildirimi referansı.
Özel hub grubu ekleme
İş veya Kod gibi yerleşik bir hub grubuna hub eklemek yerine kendi hub grubunuzu oluşturun ve hub'lar ekleyin. Hem bir ms.vss-web.hub-group katkı hem de onu hedefleyen bir ms.vss-web.hub katkı ekleyin.
"contributions": [
{
"id": "sample-hub-group",
"type": "ms.vss-web.hub-group",
"description": "Adds a 'Samples' hub group at the project level.",
"targets": [
"ms.vss-web.project-hub-groups-collection"
],
"properties": {
"name": "Samples",
"order": 100
}
},
{
"id": "hello-hub",
"type": "ms.vss-web.hub",
"description": "Adds a 'Hello' hub to the Samples hub group.",
"targets": [
".sample-hub-group"
],
"properties": {
"name": "Hello",
"order": 99,
"uri": "hello-world.html"
}
}
]
Yerleşik bir gruba hub ekleme arasındaki önemli farklar:
- Merkez grup katkı hedefleri proje düzeyi
ms.vss-web.project-hub-groups-collectionveya kuruluş düzeyims.vss-web.collection-hub-groups-collectioniçin. - Hub'ın
targetsdizisi, aynı uzantıda tanımlanan hub grubuna işaret etmek için göreli bir başvuru (.sample-hub-group) kullanır. -
orderHub grubundaki özelliği, grubun gezintide nerede görüneceğini denetler.