PowerShell ile Azure DevOps REST Api Kullanımı – Bölüm 1
  1. Anasayfa
  2. DevOps

PowerShell ile Azure DevOps REST Api Kullanımı – Bölüm 1

0

Bu yazı serisinde PowerShell ile birlikte Azure DevOps REST Api nasıl ve neden kullanılabilir olduğunu anlatacak ve makalenin ilerleyen kısımlarında önemli detaylara değinmeye çalışacağız. Makaleye başlamadan önce Azure DevOps API yapısını kavrayabilmek için REST Api sayfasına dikkatlice bakmanız gerektiğini belirtmekte fayda var. Aşağıdaki sayfa üzerinden REST Api’ya ait olan endpointlerin hepsine erişebilir ve gerekli GET, POST, PATCH  gibi methodlar ile istekler atabilirsiniz.

Azure DevOps yapısına hakim iseniz, Organization adındaki bir kavramla daha önce karşılaşmanız pek olasıdır. PowerShell ile authenticate olmak istediğimizde karşımıza iki yöntem çıkmaktadır. Bunların başında, Azure DevOps organizasyonuna erişim sağlarken Azure Active Directory servisi kullanarak ya da Personal Access Token(PAT) oluşturarak erişim sağlayabilirsiniz. Ben bu yazı içerisinde tamamiyle Personal Access Token kullanarak ilerleme sağlayacağım.

Yukarıdaki resimde görüldüğü üzere “Personal access tokens” kısmına tıkladığınızda karşınıza gelecek ekrandan istediğiniz scope seçeneğine göre oluşturabilme şansınız bulunmaktadır. Ben şimdilik **Full Acccess** olarak token oluşturmasını gerçekleştireceğim.

PowerShell 3.0 ve sonrasını destekleyen herhangi bir cihaz üzerinde PowerShell’i açalım ve işlemlerimize başlayalım.

PowerShell Tanımları

PowerShell içerisinde yapmamız gerekenler öncelikle birkaç değişken oluşturmaktan ibaret olacak. Asağıdaki satırları beraber yorumlayalım.

$OrganizationName = "hasangural" # Azure DevOps OrganizationName
$AzDoToken        = "PAT-TOKEN-HERE" # Azure DevOps Personal Access Token (PAT)

# Authentcation Header for AzDo REST Endpoint.
$AuthenicationHeader = @{Authorization = 'Basic ' + [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$AzDoToken")) }

# Generating environment variables

Set-Variable -Name "azDoAuthHeader" -Value $AuthenicationHeader -Scope Global -ErrorAction Stop
Set-Variable -Name "azDoBaseUrl" -Value "https://dev.azure.com/$OrganizationName" -Scope Global -ErrorAction Stop

Şimdi yukarıdaki satırları tek tek anlayalım. Görüldüğü üzere OrganizationName ve AzDoToken isimli değişkenler oluşturdum ve bunların karşılarına ilgili değerleri atamış bulunmaktayım. Daha sonra AuthenicationHeader adında bir degişken daha oluşturup içerisine Authorization tipini Basic olarak gönderip Personal Access Token değerini encoded hale getirmiş bulunmaktayım. Bundan sonra ise iki adet environment variable oluşturdum. Bunlar sırasıyla azDoAuthHeader bu environment değişkenine ise encoded edilmiş olan token değerini atadık ve son olarak ise azDoBaseUrl için ise REST istekleri yapacağım zaman yine bu environment değişkenini cağırarak gerekli işlemler icin aksiyon alacağım.

Authentication işlemini gerçekleştirmek için gereken tüm değişkenleri ve tanımlaları PowerShell üzerinde gercekleştirdik. Artık bir basit REST isteği atabiliriz. Aşağıdaki örnek ile hemen bir deneme gercekleştirelim. Yapmak istediğimiz şu şekilde bir deneme olsun.

AzDevOps organizasyonun içerisindeki tüm projeleri listeyelim.

$OrganizationName = "hasangural" # Azure DevOps OrganizationName
$AzDoToken        = "PAT-TOKEN-HERE" # Azure DevOps Personal Access Token (PAT)

# Authentcation Header for AzDo REST Endpoint.
$AuthenicationHeader = @{Authorization = 'Basic ' + [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$AzDoToken")) }

# Generating environment variables

Set-Variable -Name "azDoAuthHeader" -Value $AuthenicationHeader -Scope Global -ErrorAction Stop
Set-Variable -Name "azDoBaseUrl" -Value "https://dev.azure.com/$OrganizationName" -Scope Global -ErrorAction Stop

# base address
$uri = "$azDoBaseUrl/_apis/projects?api-version=6.0"

# Rest API params
$restParams = @{

    "URI"         = $uri
    "Headers"     = $azDoAuthHeader
    "Method"      = "GET"
    "ErrorAction" = "Stop"

}

$getResponse = Invoke-RestMethod @restParams 

Yukarıda gördügünüz gibi basit bir sorgulama yaparak AzDevOps organizasyonumun içerisindeki tüm Projeleri bir liste şeklinde elde ettim. Bu benim için aslında Azure DevOps REST Api istek atarken her şeyin düzgün gittiğine dair bir işaret. Bir sonraki yazımızda ise artık, daha farklı örnekler çoğaltarak biraz daha otomasyon tarafında neler yapabilirize dair soru işaretlerine yoğunlaşalım.

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Hasan Güral, Istanbul doğumlu ve uzun yıllardır bilişim sektöründe danışmanlıktan eğitmenliğe farkli pozisyonlarda görev almıştır. Üniversite eğitimiyle birlikte bilişim sektöründe Kibar Holding, Bilge Adam Bilgi Teknolojileri Akademisi ve PeakUp Bilgi Teknolojileri gibi farkli kurumlarda Kıdemli Danışman ve Eğitmen olarak sektöre yön veren projelerde yer almistir.Microsoft Azure alanında yapmış olduğu paylaşımlar ve katkılarından dolayı Microsoft Valuable Professional (Azure) unvanına hak kazanmıştır. Cloud teknolojilerinin otomasyon alaninda gelişmesiyle birlikte zamaninin bir çoğunu PowerShell, Event-Driven Orchestration, Infrastructure as a Code ve Configuration as a Code ile geçirmektedir.Kariyerine Ingiltere’de DevOps Engineer ve Automation Enthusiast rolü ile Cloud Rundle’da devam etmektedir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir