Kako napraviti i objaviti changelog programa – automatski?

Jedna od najvećih prednosti korištenja Azure DevOpsa je mogućnost povezivanja vaše Kanban ploče (Azure Boards) i Radnih zadataka (Tasks, Bugs, PBI) s kodom (Commit, Pull Requests) te povezivanje s Build i Release pipelineom. S tim poveznicama moguće je identificirati koji Task je otišao po kojemu Releasu u produkcijsku verziju naše aplikacije.

Sve ovo dolazi na vašem Azure DevOps računu, međutim, moguće je da vam je još potrebno zasebno negdje voditi vaš Popis izmjena”(Changelog) za vašu aplikaciju. Azure DevOps je aplikacija zatvorenog tipa za koju je potrebna prijava koju vaši korisnici nemaju. Srećom, imamo API kojim možemo sve podatke dobiti i smisleno ih prikazati  na našoj stranici.

Postavke Azure DevOpsa

Jedino na što ovdje morate pripaziti je da vaš master branch zahtjeva poveznicu sa radnim zadacima (vidi sl.1.).

Sl. 1.

Kreiranje PAT za pristup

Da bi imali pristup Azure DevOpsu moramo imati kreiran Personal Access Token, koji ćemo koristiti za ključ za Basic autentifikaciju prilikom upita API-ju.

Kopirajte PAT ključ (napomena: nakon ovoga koraka PAT ključ obavezno uklonite radi sigurnosti) i pohranite ga na sigurnu lokaciju.

 

Promjena kod otvaranja Taskova na board-ovima

Ovo je moguće izvesti na više načina, a naš je bio jednostavan, imati ćemo Naslov Taska, Opis Taska i tag „changelog“ koji će nam reći da ovaj task namjenjen za Changelog.

 

Upit za dostupne Release-ove

https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases

Ovdje dohvatite sve ID-ove dostupnih Release-ova, koji će nam trebati u idućemu koraku.

Upit za povezane Taskove svakog Release-a

https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/1813/workitems

1813 – jedan Release ID iz prethodnog koraka.

Dakle, na slici iznad vidljivo je da smo za svaki Release dobili odgovarajuće ID-ove Taskova koji su ušli u taj Release. Sada već imamo lijepo povezanu priču, koju moramo zaokružiti još samo jednim upitom.

 

 

Upit za taskove i filtriranje „changelog“ tag-a

 

https://vsrm.dev.azure.com/{organization}/{project}/_apis/wit/workitems/4327

4327 – ID Taska koji smo dobili u prethodnome koraku

 

Dakle, sada smo za sve Iteme naših Releaseva dobili podatke koji uključuju naziv,  opis, datum i verziju Releasea te možemo napraviti filter samo onih tagova koji sadrže tekst „changelog“.

 

 

Prikaz na webu

Sada je moguće transformirati ove podatke i prikazati ih kako već želimo.

Mi smo primijenili HTML formatiranje i kreirali HTML datoteku koju uploadamo na našu web stranicu i pomoću iframe-a je uglavimo na stranicu.

Tako smo automatizirali jedan mali ali dosadni posao koji je često bio i zaboravljen nakon Releasea. Sada smo sigurni da u popisu važnih izmjena, nadogradnji i bug-ova imamo točno one stavke koje su u produkcijskoj verziji aplikacije i koje smo prethodno izabrali koristeći “changelog”.