Yeni sprint burndown pencere öğesi ve geliştirilmiş işlem hattı güvenliği - Sprint 160 Güncelleştirmesi
Azure DevOps Sprint 160 Güncelleştirmesi'nde hikaye noktalarına göre yazma, görev sayısı ve özel alanları toplamayı destekleyen yeni bir sprint yazma pencere öğesi ekledik. Buna ek olarak, erişim belirteçlerinin kapsamını kısıtlayarak işlem hattı güvenliğini geliştirdik.
Daha fazla bilgi için aşağıdaki Özellikler listesine göz atın.
Azure DevOps'taki yenilikler
Özellikler
Azure Repos:
Azure Pipelines:
- Çok aşamalı işlem hatları UX
- Kubernetes için ortamda kanarya dağıtım stratejini düzenleme
- YAML işlem hatları için onay ilkeleri
- Birinci sınıf işlem hattı kaynağı olarak ACR
- Önceden tanımlanmış değişkenler olarak işlem kaynağı meta verileri
- İşlem hatları ve ACR kaynakları için izlenebilirlik
- YAML işlem hatlarında basitleştirilmiş kaynak yetkilendirmesi
- Erişim belirteçlerinin kapsamını kısıtlayarak işlem hattı güvenliğini geliştirme
- Yapıt denetimini değerlendirme
- Otomatikleştirilmiş testlere yönelik hata iletilerinde markdown desteği
- YAML’de Cron zamanlamalarını tanılama
- ARM şablonu dağıtım görevi güncelleştirmeleri
- Hizmet bağlantıları için proje düzeyinde güvenlik
- Ubuntu 18.04 havuzu
- KubernetesManifest görevinde Service Mesh Interface temelli kanarya dağıtımları
- Ortamda ReviewApp
Azure Artifacts:
- Akışa Bağlan deneyimi güncelleştirildi
- Genel akışlar, yukarı akış desteğiyle genel kullanıma sunuldu
- Portaldan proje kapsamlı akışlar oluşturma
Raporlama:
Wiki:
Azure Repos
Depolar arası dal ilkesi yönetimi
Dal ilkeleri, Azure Repos'un önemli dalları korumanıza yardımcı olan güçlü özelliklerinden biridir. PROJE düzeyinde ilke ayarlama özelliği REST API'de mevcut olsa da, bunun için kullanıcı arabirimi yoktu. Yöneticiler artık projelerindeki tüm depolarda belirli bir dalda veya varsayılan dalda ilkeler ayarlayabilir. Örneğin, bir yönetici, projesindeki her depodaki her ana dala yapılan tüm çekme istekleri için en az iki gözden geçiren gerektirebilir. Dal koruması ekle özelliğini Depo Proje Ayarları'nda bulabilirsiniz.
Azure Pipelines
Çok aşamalı işlem hatları UX
İşlem hatlarınızı yönetmek için güncelleştirilmiş bir kullanıcı deneyimi üzerinde çalışıyoruz. Bu güncelleştirmeler işlem hatlarının Azure DevOps yönüyle modern ve tutarlı bir deneyim yaşamasını sağlar. Ayrıca bu güncelleştirmeler klasik derleme işlem hatlarını ve çok aşamalı YAML işlem hatlarını tek bir deneyimde bir araya getirir. Örneğin, aşağıdaki özellikler yeni deneyime dahil edilir; birden çok aşamayı görüntüleme ve yönetme, işlem hattı çalıştırmalarını onaylama, işlem hattı devam ederken günlüklerde geri kaydırma olanağı ve işlem hattının dal başına sistem durumu.
Yeni deneyimi deneyen herkese teşekkür ederiz. Denemediyseniz önizleme özelliklerinde Çok aşamalı işlem hatlarını etkinleştirin. Çok aşamalı işlem hatları hakkında daha fazla bilgi edinmek için buradaki belgelere bakın.
Geri bildiriminiz sayesinde, son iki güncelleştirmede aşağıdakileri ele aldık.
- Klasörler görünümünün bulunabilirliği.
- Günlükler görünümünde atlamalı olma.
- Bir çalıştırma devam ederken bile önceki ve geçerli görevlerdeki günlükleri kolayca gösterin.
- Günlükleri gözden geçirirken görevler arasında gezinmeyi kolaylaştırma.
Not
Sonraki güncelleştirmede bu özelliği herkes için varsayılan olarak açmayı planlıyoruz. Önizlemeyi geri çevirme seçeneğiniz devam edecektir. Bundan birkaç hafta sonra özellik genel kullanıma sunulacaktır.
Kubernetes için ortamda kanarya dağıtım stratejini düzenleme
Uygulama güncelleştirmelerinin sürekli tesliminin temel avantajlarından biri, güncelleştirmeleri belirli mikro hizmetler için hızla üretime gönderebilme özelliğidir. Bu, iş gereksinimlerindeki değişikliklere hızlı bir şekilde yanıt vermenizi sağlar. Ortam , dağıtım stratejilerinin düzenlenebilmesini ve sıfır kapalı kalma süresi sürümlerinin kolaylaştırılmasını sağlayan birinci sınıf bir kavram olarak tanıtıldı. Daha önce adımları sırayla yürüten runOnce stratejisini desteklemiştik. Çok aşamalı işlem hatlarında kanarya stratejisi desteği sayesinde, değişikliği küçük bir alt kümeye yavaşça dağıtarak riski azaltabilirsiniz. Yeni sürüme daha fazla güven kazandıkça altyapınızdaki daha fazla sunucuya dağıtabilir ve daha fazla kullanıcıyı bu sunucuya yönlendirebilirsiniz.
jobs:
- deployment:
environment: musicCarnivalProd
pool:
name: musicCarnivalProdPool
strategy:
canary:
increments: [10,20]
preDeploy:
steps:
- script: initialize, cleanup....
deploy:
steps:
- script: echo deploy updates...
- task: KubernetesManifest@0
inputs:
action: $(strategy.action)
namespace: 'default'
strategy: $(strategy.name)
percentage: $(strategy.increment)
manifests: 'manifest.yml'
postRouteTraffic:
pool: server
steps:
- script: echo monitor application health...
on:
failure:
steps:
- script: echo clean-up, rollback...
success:
steps:
- script: echo checks passed, notify...
Kubernetes için kanarya stratejisi, postRouteTraffic sırasında durumu izlerken değişiklikleri ilk olarak %10 pod ve ardından %20 ile dağıtacaktır. Her şey yolunda giderse% 100'e yükseltilecektir.
YAML işlem hatları için onay ilkeleri
YAML işlem hatlarında, kaynak sahibi tarafından denetlenen bir onay yapılandırmasını takip ediyoruz. Kaynak sahipleri, kaynağın kullanıldığı aşama başlamadan önce onaylar için kaynağın duraklamasını kullanan kaynak ve tüm işlem hatlarında onayları yapılandırır. SOX tabanlı uygulama sahiplerinin, dağıtımı isteyenin kendi dağıtımlarını onaylamasını kısıtlaması yaygındır.
Artık istek sahibinin onaylamaması, kullanıcıların bir alt kümesinden onay istemesi ve onay zaman aşımı gibi onay ilkelerini yapılandırmak için gelişmiş onay seçeneklerini kullanabilirsiniz.
Birinci sınıf işlem hattı kaynağı olarak ACR
İşlem hattınızın bir parçası olarak ACR'de (Azure Container Registry) yayımlanan bir kapsayıcı görüntüsünü kullanmanız ve yeni bir görüntü yayımlandığında işlem hattınızı tetiklemeniz gerekiyorsa, ACR kapsayıcı kaynağını kullanabilirsiniz.
resources:
containers:
- container: MyACR #container resource alias
type: ACR
azureSubscription: RMPM #ARM service connection
resourceGroup: contosoRG
registry: contosodemo
repository: alphaworkz
trigger:
tags:
include:
- production
Ayrıca, ACR görüntü meta verilerine önceden tanımlanmış değişkenler kullanılarak erişilebilir. Aşağıdaki liste, işlem hattınızda bir ACR kapsayıcı kaynağı tanımlamak için kullanılabilen ACR değişkenlerini içerir.
resources.container.<Alias>.type
resources.container.<Alias>.registry
resources.container.<Alias>.repository
resources.container.<Alias>.tag
resources.container.<Alias>.digest
resources.container.<Alias>.URI
resources.container.<Alias>.location
Önceden tanımlanmış değişkenler olarak işlem kaynağı meta verileri
İşlem hattında YAML işlem hattı kaynakları için önceden tanımlanmış değişkenler ekledik. Kullanılabilir işlem hattı kaynak değişkenlerinin listesi aşağıdadır.
resources.pipeline.<Alias>.projectName
resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID
İşlem hatları ve ACR kaynakları için izlenebilirlik
İşlem hattında işlem hatları ve ACR kapsayıcı kaynakları kullanıldığında tam E2E izlenebilirliği sağlıyoruz. YAML işlem hattınız tarafından tüketilen her kaynak için işlemeleri, iş öğelerini ve yapıtları izleyebilirsiniz.
İşlem hattı çalıştırması özet görünümünde şunları görebilirsiniz:
Çalıştırmayı tetikleyen kaynak sürümü. Artık işlem hattınız başka bir Azure işlem hattı çalıştırması tamamlandığında veya bir kapsayıcı görüntüsü ACR'ye gönderildiğinde tetiklenebilir.
İşlem hattı tarafından kullanılan işlemeler . İşlem hattı tarafından tüketilen her kaynağa göre işlemelerin dökümünü de bulabilirsiniz.
İşlem hattı tarafından kullanılan her kaynakla ilişkili iş öğeleri .
Çalıştırma tarafından kullanılabilen yapıtlar.
Ortamın dağıtımlar görünümünde, ortama dağıtılan her kaynağın işlemelerini ve iş öğelerini görebilirsiniz.
YAML işlem hatlarında basitleştirilmiş kaynak yetkilendirmesi
Kaynak, işlem hattının dışındaki bir işlem hattı tarafından kullanılan her şeydir. Kaynakların kullanılabilmesi için önce yetkilendirilmeleri gerekir. Daha önce yaml işlem hattında yetkisiz kaynaklar kullanılırken kaynak yetkilendirme hatasıyla başarısız oldu. Başarısız çalıştırmanın özet sayfasından kaynakları yetkilendirmeniz gerekiyordu. Ayrıca, yetkisiz bir kaynağa başvuran bir değişken kullanıyorsa işlem hattı başarısız oldu.
Artık kaynak yetkilendirmelerini yönetmeyi kolaylaştırıyoruz. Çalıştırma başarısız olursa, çalıştırma, kaynağı kullanan aşamanın başında kaynaklar üzerinde izinleri bekler. Kaynak sahibi işlem hattını görüntüleyebilir ve Güvenlik sayfasından kaynağı yetkilendirebilir.
Erişim belirteçlerinin kapsamını kısıtlayarak işlem hattı güvenliğini geliştirme
Azure Pipelines'da çalışan her iş bir erişim belirteci alır. Erişim belirteci görevler ve betikleriniz tarafından Azure DevOps'a geri çağrı yapmak için kullanılır. Örneğin, erişim belirtecini kaynak kodu almak, günlükleri karşıya yüklemek, test sonuçları, yapıtlar veya Azure DevOps'a REST çağrıları yapmak için kullanırız. Her iş için yeni bir erişim belirteci oluşturulur ve iş tamamlandıktan sonra süresi dolar. Bu güncelleştirmeyle aşağıdaki iyileştirmeleri ekledik.
Belirtecin ekip projesi dışındaki kaynaklara erişmesini engelleme
Şimdiye kadar tüm işlem hatlarının varsayılan kapsamı takım projesi koleksiyonuydu. Kapsamı klasik derleme işlem hatlarında takım projesi olacak şekilde değiştirebilirsiniz. Ancak, klasik sürüm veya YAML işlem hatları için bu denetime sahip değildiniz. Bu güncelleştirmeyle, işlem hattında ne yapılandırılmış olursa olsun her işi proje kapsamlı bir belirteç almaya zorlamak için bir kuruluş ayarı sunuyoruz. Ayrıca bu ayarı proje düzeyinde de ekledik. Artık, oluşturduğunuz her yeni proje ve kuruluşta bu ayar otomatik olarak açılır.
Not
Kuruluş ayarı proje ayarını geçersiz kılar.
Mevcut projelerde ve kuruluşlarda bu ayarın açılması, işlem hatlarınız erişim belirteçlerini kullanarak takım projesi dışındaki kaynaklara erişirse bazı işlem hatlarının başarısız olmasına neden olabilir. İşlem hattı hatalarını azaltmak için, project derleme hizmeti hesabı için istenen kaynağa açıkça erişim vekleyebilirsiniz. Bu güvenlik ayarlarını açmanızı kesinlikle öneririz.
Erişim belirteci için belirli izinleri kaldırma
Varsayılan olarak, erişim belirteci için bir dizi izin veririz. Bu izinlerden biri Kuyruk derlemeleridir. Bu güncelleştirmeyle, erişim belirteci için bu izni kaldırdık. İşlem hatlarınızın bu izne ihtiyacı varsa, kullandığınız belirtece bağlı olarak proje derleme hizmeti hesabına veya Proje Koleksiyonu Derleme Hizmeti Hesabına açıkça verilmektedir.
Yapıt denetimini değerlendirme
Artık bir ilke kümesi tanımlayabilir ve kapsayıcı görüntüsü yapıtları için bir ortamda denetim olarak ilke değerlendirmesini ekleyebilirsiniz. İşlem hattı çalıştırıldığında, ortamı kullanan bir aşama başlatılmadan önce yürütme duraklatılır. Belirtilen ilke, dağıtılmakta olan görüntünün kullanılabilir meta verilerine göre değerlendirilir. İlke başarılı olduğunda denetim geçer ve onay başarısız olursa aşamayı başarısız olarak işaretler.
Otomatikleştirilmiş testlere yönelik hata iletilerinde markdown desteği
Artık otomatikleştirilmiş testler için hata iletilerinde Markdown'i destekliyoruz. Azure Pipelines'da okunabilirliği artırmak ve hata sorunlarını gidermeyi kolaylaştırmak için hem test çalıştırması hem de test sonucu için hata iletilerini kolayca biçimlendirebilirsiniz. Desteklenen Markdown söz dizimi burada bulunabilir.
YAML’de Cron zamanlamalarını tanılama
YAML işlem hatlarınızda zamanlamaları belirtmek için cron söz dizimi kullanımında sabit bir artış gördük. Geri bildirimlerinizi dinlediğimizde, Azure Pipelines'ın söz diziminizi doğru işleyip işlemediğini saptamanın sizin için zor olduğunu duyduk. Daha önce zamanlama sorunlarının hatalarını ayıklamak için zamanlanmış çalıştırmanın gerçek saatini beklemeniz gerekirdi. Dal/söz dizimi hatalarını tanılamanıza yardımcı olmak için işlem hattı için yeni bir eylem menüsü ekledik. İşlem hattını çalıştır menüsündeki Zamanlanmış çalıştırmalar , cron zamanlamalarınızla ilgili hataları tanılamanıza yardımcı olmak üzere işlem hattınız için yaklaşan birkaç zamanlanmış çalıştırmanın önizlemesini sağlar.
ARM şablonu dağıtım görevi güncelleştirmeleri
Daha önce ARM şablonu dağıtım görevinde hizmet bağlantılarını filtrelememiştik. Daha geniş bir kapsama ARM şablonu dağıtımları gerçekleştirmek için daha düşük kapsamlı bir hizmet bağlantısı seçerseniz bu, dağıtımın başarısız olmasına neden olabilir. Şimdi, seçtiğiniz dağıtım kapsamına göre daha düşük kapsamlı hizmet bağlantılarını filtrelemek için hizmet bağlantılarını filtreleme özelliği ekledik.
Hizmet bağlantıları için proje düzeyinde güvenlik
Bu güncelleştirmeyle hizmet bağlantıları için hub düzeyinde güvenlik ekledik. Artık tüm hizmet bağlantıları için merkezi bir yerde kullanıcı ekleyebilir/kaldırabilir, roller atayabilir ve erişimi yönetebilirsiniz.
Ubuntu 18.04 havuzu
Azure Pipelines artık işlerinizi Ubuntu 18.04'te çalıştırmayı destekliyor. Microsoft tarafından barındırılan Azure Pipelines havuzunu Ubuntu-18.04 görüntüsünü içerecek şekilde güncelleştirdik. Şimdi YAML işlem hatlarınızda havuza başvurdığınızda ubuntu-latest
, bu anlamına gelir ve anlamına ubuntu-18.04
gelmez ubuntu-16.04
. Açıkça kullanarak ubuntu-16.04
işlerinizde 16,04 görüntüyü hedeflemeye devam edebilirsiniz.
KubernetesManifest görevinde Service Mesh Interface temelli kanarya dağıtımları
Daha önce KubernetesManifest görevinde kanarya stratejisi belirtildiğinde, görev, çoğaltmaları kararlı iş yükleri için kullanılan çoğaltmaların yüzdesine eşit olan temel ve kanarya iş yükleri oluştururdu. Bu, trafiği istek düzeyinde istenen yüzdeye bölmeyle tam olarak aynı değildi. Bununla başa çıkmak için KubernetesManifest görevine Service Mesh Arabirimi tabanlı kanarya dağıtımları desteği ekledik.
Service Mesh Arabirimi soyutlaması Linkerd ve Istio gibi hizmet ağı sağlayıcılarıyla tak çalıştır yapılandırmasına olanak tanır. Şimdi KubernetesManifest görevi, dağıtım stratejisinin yaşam döngüsü boyunca SMI'nin TrafficSplit nesnelerini kararlı, temel ve kanarya hizmetlerine eşlemenin sıkı çalışmasını ortadan kaldırıyor. Trafik bölme yüzdesi hizmet ağ düzlemindeki istekler üzerinde denetlendiği için trafiğin kararlı, temel ve kanarya arasında istenen bölme yüzdesi daha doğru olur.
Aşağıda SMI tabanlı kanarya dağıtımlarını sıralı bir şekilde gerçekleştirme örneği verilmiştir.
- deployment: Deployment
displayName: Deployment
pool:
vmImage: $(vmImage)
environment: ignite.smi
strategy:
canary:
increments: [25, 50]
preDeploy:
steps:
- task: KubernetesManifest@0
displayName: Create/update secret
inputs:
action: createSecret
namespace: smi
secretName: $(secretName)
dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
deploy:
steps:
- checkout: self
- task: KubernetesManifest@0
displayName: Deploy canary
inputs:
action: $(strategy.action)
namespace: smi
strategy: $(strategy.name)
trafficSplitMethod: smi
percentage: $(strategy.increment)
baselineAndCanaryReplicas: 1
manifests: |
manifests/deployment.yml
manifests/service.yml
imagePullSecrets: $(secretName)
containers: '$(containerRegistry)/$(imageRepository):$(Build.BuildId)'
postRouteTraffic:
pool: server
steps:
- task: Delay@1
inputs:
delayForMinutes: '2'
Ortamda ReviewApp
ReviewApp, Git deponuzdaki her çekme isteğini dinamik bir ortam kaynağına dağıtır. Gözden geçirenler, ana dalda birleştirilip üretime dağıtılmadan önce bu değişikliklerin nasıl göründüğünü görebilir ve diğer bağımlı hizmetlerle çalışabilir. Bu, reviewApp kaynaklarını oluşturup yönetmenizi ve ortam özelliklerinin tüm izlenebilirlik ve tanılama özelliklerinden yararlanmanızı kolaylaştırır. reviewApp anahtar sözcüğünü kullanarak kaynağın bir kopyasını oluşturabilir (ortamdaki mevcut bir kaynağı temel alarak dinamik olarak yeni bir kaynak oluşturabilir) ve yeni kaynağı ortama ekleyebilirsiniz.
Aşağıda, ortamlar altında reviewApp kullanmanın örnek bir YAML kod parçacığı verilmiştir.
jobs:
- deployment:
environment:
name: smarthotel-dev
resourceName: $(System.PullRequest.PullRequestId)
pool:
name: 'ubuntu-latest'
strategy:
runOnce:
pre-deploy:
steps:
- reviewApp: MasterNamespace
Azure Artifacts
Akışa Bağlan deneyimi güncelleştirildi
Akışa bağlan iletişim kutusu, Azure Artifacts'i kullanmanın giriş yoludur; Azure DevOps'taki akışlardan paketleri göndermek ve çekmek için istemcileri ve depoları yapılandırma hakkında bilgi içerir. Ayrıntılı kurulum bilgileri eklemek için iletişim kutusunu güncelleştirdik ve yönergeler sunduğumuz araçları genişlettik.
Genel akışlar, yukarı akış desteğiyle genel kullanıma sunuldu
Genel akışların genel önizlemesi harika bir benimseme ve geri bildirim aldı. Bu güncelleştirmede, ek özellikleri genel kullanıma genişlettik. Artık genel akışı özel bir akıştan yukarı akış kaynağı olarak ayarlayabilirsiniz. Özel ve proje kapsamına sahip akışlara hem yukarı akış yaparak hem de bu akışlardan yukarı akış yaparak yapılandırma dosyalarınızı basit tutabilirsiniz.
Portaldan proje kapsamlı akışlar oluşturma
Genel akışları kullanıma sunduğumuzda, proje kapsamlı akışlar da yayımladık. Şimdiye kadar REST API'leri aracılığıyla veya genel akış oluşturup ardından projeyi özele dönüştürerek proje kapsamlı akışlar oluşturulabilirdi. Artık gerekli izinlere sahipseniz herhangi bir projeden doğrudan portalda proje kapsamlı akışlar oluşturabilirsiniz. Ayrıca hangi akışların proje olduğunu ve hangilerinin kuruluş kapsamına sahip olduğunu akış seçicide görebilirsiniz.
Raporlama
İstediğiniz her şeyi içeren sprint Burndown pencere öğesi
Yeni Sprint Burndown pencere öğesi Hikaye Noktalarına, Görev sayısına göre veya özel alanları toplayarak yazma işlemini destekler. Özellikler veya Epic'ler için bir sprint burndown bile oluşturabilirsiniz. Pencere öğesi ortalama yazma, tamamlanma yüzdesi ve kapsam artışını görüntüler. Ekibi yapılandırarak aynı panoda birden çok ekip için sprint yazma işlemleri görüntüleyebilirsiniz. Tüm bu harika bilgilerin görüntülenmesiyle panoda 10x10'a kadar yeniden boyutlandırmanıza olanak tanırız.
Denemek için pencere öğesi kataloğundan veya mevcut Sprint Burndown pencere öğesinin yapılandırmasını düzenleyerek ve Yeni sürümü şimdi deneyin kutusunu işaretleyerek ekleyebilirsiniz.
Not
Yeni pencere öğesi Analiz'i kullanır. Analytics'e erişiminiz yoksa eski Sprint Burndown'ını sakladık.
Wiki
Wiki sayfalarını düzenlemeye yönelik zaman uyumlu kaydırma
Düzenleme ve önizleme bölmesi arasındaki zaman uyumlu kaydırma sayesinde wiki sayfalarını düzenlemek artık daha kolay. Bir tarafta kaydırma, ilgili bölümleri eşlemek için otomatik olarak diğer tarafı kaydıracaktır. Zaman uyumlu kaydırmayı iki durumlu düğmeyle devre dışı bırakabilirsiniz.
Not
Zaman uyumlu kaydırma iki durumlu düğmesinin durumu kullanıcı ve kuruluş başına kaydedilir.
Wiki sayfaları için sayfa ziyaretleri
Artık wiki sayfaları için sayfa ziyaretleri hakkında içgörüler edinebilirsiniz. REST API, son 30 gün içindeki sayfa ziyaretleri bilgilerine erişmenizi sağlar. Wiki sayfalarınız için raporlar oluşturmak için bu verileri kullanabilirsiniz. Ayrıca bu verileri veri kaynağınızda depolayabilir ve en çok görüntülenen ilk n sayfa gibi belirli içgörüler elde etmek için panolar oluşturabilirsiniz.
Ayrıca, her sayfada son 30 gün için toplu sayfa ziyaretlerinin sayısını görürsünüz.
Not
Sayfa ziyareti, belirli bir kullanıcı tarafından 15 dakikalık bir aralıkta sayfa görünümü olarak tanımlanır.
Sonraki adımlar
Not
Bu özellikler önümüzdeki iki-üç hafta içinde kullanıma sunulacaktır.
Azure DevOps'a gidin ve bir göz atın.
Geri bildirim sağlama
Bu özellikler hakkında düşüncelerinizi duymak isteriz. Bir sorunu bildirmek veya öneri sağlamak için yardım menüsünü kullanın.
Stack Overflow'da topluluk tarafından öneriler ve sorularınıza yanıt alabilirsiniz.
Teşekkürler,
Jeff Beehler