
Izšla je različica 13.4 s shrambo HashiCorp za spremenljivke CI, Kubernetes Agentom in središčem za varnost, pa tudi s preklopnimi funkcijami v Starter.
V GitLabu vedno razmišljamo o tem, kako uporabnikom pomagati zmanjšati tveganja, povečati učinkovitost in hitrost dobave na vaši najljubši platformi. Ta mesec smo dodali številne uporabne novosti, ki širijo varnostne zmožnosti, zmanjšujejo število ranljivosti, povečujejo učinkovitost, poenostavljajo delo z GitLabom in pomagajo vaši ekipi hitreje dostavljati funkcije. Upamo, da vam bodo koristne ključne funkcije izdaje, pa tudi 53 novih funkcij, ki so bile dodane v tej izdaji.
Razširjene možnosti varnosti
Vsak mesec se trudimo dodati nekatere nove funkcije GitLab DevSecOps, in ta izdaja ni izjema. v okviru gradnje in uvajanja. Poleg tega lahko organizacije, ki želijo vzdrževati ločitev nalog pri uvajanju kode, zdaj Ta vloga ustreza in omogoča potrjevanje merge requestov ter uvajanje kode v zaščitena okolja, ne da bi pri tem omogočili dostop do sprememb same kode.
Še en način za zmanjšanje tveganj je uporaba novega Zaposleni za upravljanje lahko uvajajo Kubernetes gruče iz GitLaba, ne da bi morali omogočiti dostop do svoje gruče celotnemu internetu. Prav tako uvajamo samodejno podporo za nadzor različic za nove datoteke stanja Terraform z za podporo skladnosti in udobja pri odpravljanju napak. In končno, nadzorna plošča varnosti v instanci se je spremenila v z poročili o ranljivostih in nastavitvami varnosti.
Bolj priročno in učinkovito delo z GitLabom
Izboljšali smo naš globalni iskalni sistem, tako da smo dodali , ki omogoča enostavno prehajanje do zadnjih zahtevkov, skupin, projektov, nastavitev in razdelkov pomoči. Z veseljem sporočamo, da so v GitLab Pages za preusmjeravanje pojedinačnih stranica i direktorija unutar web stranice, što će korisnicima omogućiti učinkovitije implementiranje njihovih web stranica. A onima koji žele dobiti proširene informacije o implementaciji, ova verzija omogućava !
Ulozi s otvorenim izvorom
Predstavljamo , koju je dodao . Oznake pokrivenosti unit-testovima izmijenjenog koda daju programerima preglednu sliku o pokrivenosti koda tijekom pregleda; ove informacije pomažu u ubrzavanju pregleda i smanjenju vremena potrebnog za spajanje i implementaciju novog koda. A također smo i planiramo .
I to je još samo početak!
Kao i uvijek, u općem pregledu ima premalo prostora, a zanimljivih značajki u verziji 13.4 ima jako puno. Evo nekoliko dodatnih:
- .
Ako želite unaprijed saznati što vas očekuje u sljedećem izdanju, pogledajte .
.

ovog mjeseca —
Fabio je dao značajan u — značajka koju je zajednica GitLab dugo čekala. Ovo je zaista važan doprinos s netrivijalnim promjenama, koje su zahtijevale stalno surađivanje s članovima GitLab tima i utjecale na mnoge oblasti projekta, kao što su UX, frontend i backend.
Glavne značajke izdanja GitLab 13.4
Koristite ključeve HashiCorp Vault u CI zadacima
(PREMIUM, ULTIMATE, SILVER, GOLD)
U izdanju 12.10 GitLab je predstavio mogućnost dobivanja i prijenosa ključeva u CI zadacima putem GitLab pokretača zadataka (GitLab runner). Sada proširujemo , dodajući novu sintaksu secrets u datoteku .gitlab-ci.yml. To će olakšati konfiguraciju i korištenje HashiCorp spremišta s GitLab-om.

in .
Predstavljamo GitLab Kubernetes Agent
(PREMIUM, ULTIMATE)
Integracija GitLab-a s Kubernetesom omogućuje implementaciju na Kubernetes klasterima bez potrebe za ručnim podešavanjem. Mnogim korisnicima se svidjela jednostavnost korištenja ove kombinacije, dok su drugi naišli na neke poteškoće. Za trenutnu integraciju, vaš klaster mora biti dostupan putem interneta kako bi GitLab imao pristup. Za mnoge organizacije to nije moguće, jer ograničavaju pristup klasterima iz sigurnosnih, usklađenosti s propisima ili regulatornih razloga. Da bi zaobišli ova ograničenja, korisnici su morali stvarati vlastite alate iznad GitLab-a, inače ne bi mogli iskoristiti ovu mogućnost.
Danas predstavljamo GitLab Kubernetes Agent — novi način implementacije na Kubernetes klasterima. Agent radi unutar vašeg klastera, tako da ga ne morate otvarati za cijeli internet. Agent koordinira implementaciju, tražeći nove promjene od GitLab-a, umjesto da GitLab šalje ažuriranja na klaster. Bez obzira na metodu GitOps koju koristite, GitLab će vam odgovarati.
Napominjemo da je ovo prvi izdanak agenta. Trenutno se fokusiramo na konfiguraciju i upravljanje implementacijom putem koda. Neke postojeće funkcije integracije s Kubernetesom, kao što su ploče za implementaciju i aplikacije upravljane GitLab-om, još uvijek nisu podržane. , da će ove mogućnosti biti dodane agentu u budućim izdanjima, kao i nove integracije usmjerene na sigurnost i usklađenost s propisima.

in .
Dajte korisnicima dozvole za implementaciju bez pristupa kodu
(PREMIUM, ULTIMATE, SILVER, GOLD)
Ranije, sistem dozvola u GitLab-u nije omogućavao pravilno razdvajanje odgovornosti unutar vašeg tima između onih koji su odgovorni za razvoj i onih koji su odgovorni za implementaciju. S izdanjem GitLab 13.4, možete dati dozvolu za odobravanje merge requestova za implementaciju, kao i za stvarnu implementaciju koda ljudima koji ne pišu kod, a da im ne date prava pristupa održavača (u ruskoj lokalizaciji GitLab-a 'održavatelj').

in .
Centar za sigurnost
(ULTIMATE, GOLD)
Ranije je upravljanje ranjivostima na nivou instance bilo ograničeno funkcionalnošću i fleksibilnošću. Interfejs je bio jedna stranica koja je kombinovala detalje o ranjivostima, grafikone metrika i podešavanja. Nije bilo mnogo prostora za dalji razvoj ovih funkcija ili korišćenje drugih bezbednosnih alata.
Uveli smo fundamentalne promene u upravljanju bezbednošću i njenoj transparentnosti u GitLab-u. Panel za upravljanje bezbednošću instance se transformisao u ceo bezbednosni centar. Najveća promena je uvođenje nove strukture menija: umesto jedne stranice sada odvojeno možete videti panel za upravljanje bezbednošću, izveštaj o ranjivostima i odeljak podešavanja. Iako funkcionalnost nije promenjena, deljenje na delove omogućava unapređenje ovog odeljka, što bi inače bilo otežano. To takođe stvara osnovu za buduće dodatne mogućnosti vezane za bezbednost.
Poseban odeljak za izveštaj o ranjivostima sada ima više prostora za prikaz važnih detalja. Ovde su sakupljene ranjivosti koje trenutno postoje na listi ranjivosti projekta. Premestanje widget-a sa metrikama ranjivosti u poseban odeljak stvara udoban panel za upravljanje bezbednošću. Sada je to platno za buduće vizualizacije — ne samo za upravljanje ranjivostima, već i za sve metrike vezane za bezbednost. Na kraju, poseban prostor za podešavanja stvara zajednički prostor za sve bezbednosne postavke na nivou instance, ne samo za upravljanje ranjivostima.

in .
Prebacive funkcije sada u GitLab Starter
(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
U GitLab 11.4 je objavljeno . U 12.2 smo uveli strategije za njih in , a u 13.1 dodali smo in za različita okruženja.
Ranije ove godine GitLab je preuzeo obavezu u otvoreni kod. U ovom izdanju završili smo premještanje prebacivih funkcija u Starter plan i nastavićemo sa njihovim prenošenjem u Core sa . Drago nam je da pružimo ovu mogućnost većem broju korisnika i želimo da znamo kako ćete ih koristiti.

in .
Hitra navigacija iz iskalne vrstice
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Včasih želite pri navigaciji po GitLabu takoj preiti na določen projekt in ne na stran z rezultati iskanja.
S pomočjo globalne iskalne vrstice lahko hitro dostopate do zadnjih tiketov, skupin, projektov, nastavitev in razdelkov pomoči. Uporabite lahko tudi bližnjico na tipkovnici /, da premaknete kazalec na iskalno vrstico in tako še učinkoviteje navigirate po GitLabu!

in .
Prikaz pokritosti kode v razlikah med združitvenimi zahtevki
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Med pregledovanjem združitvenega zahtevka je lahko težko ugotoviti, ali je spremenjena koda pokrita z enotnimi testi. Namesto tega lahko pregledovalci zaupajo na splošno pokritost in zahtevajo njeno povečanje, preden potrdijo združitveni zahtevek. To lahko vodi do brezsistemskega pristopa pri pisanju testov, kar dejansko ne izboljša kakovosti kode ali njene pokritosti s testi.
Sedaj boste ob ogledu razlike med združitvenim zahtevkom videli vizualno prikaz pokritosti kode. Nove oznake bodo omogočile hitro razumevanje, ali je spremenjena koda pokrita z enotnim testom, kar bo pospešilo pregledovanje kode in čas združevanja ter uvajanja nove kode.
Hvala in Siemensu za to funkcijo!

in .
Več okolij in projektov na nadzorni plošči okolij
(PREMIUM, ULTIMATE, SILVER, GOLD)
Z izdajo GitLaba 12.5 ste s pomočjo lahko spremljali stanje okolij, vendar ne več kot sedem okolij v treh projektih. To nadzorno ploščo smo izboljšali z izdajo 13.4, ko smo jo razdelili na strani, da vam olajšamo upravljanje okolij v večjem obsegu. Zdaj lahko vidite več okolij v več projektih.

in .
GitLab je prevzel upravljanje s ponudnikom GitLab Terraform
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Nedavno smo i planiramo . V zadnjem mesecu smo sprejeli 21 združitvenih zahtevkov in zaprli 31 tiketov, vključno z nekaterimi dolgo prisotnimi napakami in manjkajočimi funkcijami, kot so . Lahko v dokumentaciji o Terraformu.

in .
Fuzzing testiranje API-jev s specifikacijami OpenAPI ali HAR-datoteko
(ULTIMATE, GOLD)
Fuzzing testing API je odličan način za pronalaženje grešaka i ranjivosti u vašim web aplikacijama i API-ima koje drugi skeneri i metode testiranja možda promaše.
Testiranje API fuzzingom u GitLabu omogućava pružanje ili vaše aplikacije, a zatim automatski generira nasumične ulaze namijenjene provjeri graničnih slučajeva i pronalaženju grešaka. Rezultati se odmah prikazuju unutar vašeg lanca.
Ovo je naše prvo izdanje za testiranje API fuzzingom, i radujemo se što ćemo čuti vaše mišljenje. Za fuzzing testiranje imamo još , koje ćemo temeljiti na ovom izdanju funkcionalnosti.

in .
Pregled novih grafikona na ploči sa metrima
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Ranije je bilo teško stvoriti grafikon na ploči s metrima u GitLabu. Nakon što ste stvorili metriku u YAML datoteci ploče, izmjene ste unosili u master, bez mogućnosti da provjerite da li novostvoreni grafikon funkcionira onako kako ste željeli. Sa ovim izdanjem možete unaprijed pregledati izmjene dok stvarate grafikon, dobivajući uvid u rezultat prije slanja promjena u YAML datoteku ploče.

in .
Podaci o pokrivenosti koda testovima za sve projekte grupe
(PREMIUM, ULTIMATE, SILVER, GOLD)
Kada upravljate velikim brojem projekata u GitLabu, potrebna vam je jedinstvena informacija o tome kako se s vremenom mijenja pokrivenost koda kroz sve projekte. Ranije je prikazivanje ovih informacija zahtijevalo iscrpan i mukotrpan ručni rad: trebalo je preuzeti podatke o pokrivenosti koda iz svakog projekta i objediniti ih u tabeli.
U izdanju 13.4 uvedena je mogućnost lako i brzo prikupiti u .csv datoteku sve podatke o pokrivenosti koda za sve projekte grupe ili za odabranu grupu projekata. Ova funkcionalnost je MVC, a slijedi mogućnost .

in .
Podrška za nove jezike za potpuno fuzzing testiranje
(ULTIMATE, GOLD)
Ovo izdanje predstavlja podršku za nekoliko novih jezika za fuzzing testiranje, usmjerenih na potpunu pokrivenost.
Zdaj lahko ocenite vse možnosti fuzzing testiranja v vaših aplikacijah na Java, Rust in Swift ter odkrijete napake in ranljivosti, ki jih drugi skenerji in metode testiranja morda spregledajo.

in .
Obvestila na začetni strani okolij
(PREMIUM, ULTIMATE, SILVER, GOLD)
Stran okolij prikazuje skupno stanje vaših okolij. V tej različici smo izboljšali to stran z dodajanjem prikaza obvestil. Aktivna obvestila skupaj s stanjem vaših okolij vam bodo pomagala, da boste hitreje ukrepali za odpravo morebitnih težav.

in .
Vloženi cevovodi zdaj lahko zaženejo svoje vložene cevovide
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Pri uporabi vloženih cevovodov je zdaj mogoče zagnati nove cevovode znotraj podrejenih cevovodov. Dodatna raven globine je lahko koristna, če potrebujete prilagodljivost za generiranje spremenljivega števila cevovodov.
Prej je vsak podrejeni cevovod potreboval sprožilec naloge, ki je bil ročno določen v nadrejenem cevovodu. Zdaj pa lahko ustvarjate vložene cevovode, ki bodo dinamično zagnali poljubno število novih vloženih cevovodov. Na primer, če imate monorepo, lahko dinamično ustvarite prvi vloženi cevovod, ki bo samo ustvaril potrebno število novih cevovodov na podlagi sprememb na veji.

in .
Izboljšano premikanje med nadrejenimi in vloženimi cevovodi
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Premikanje med nadrejenimi in vloženimi cevovodi prej ni bilo zelo udobno — potrebnih je bilo veliko klikov, da ste prišli do želenega cevovoda. Tudi razumeti je bilo težko, katera naloga je sprožila ta cevovod. Zdaj bo povezovanje med nadrejenimi in vloženimi cevovodi veliko lažje.

in .
Paralelna matrična opravila prikazujejo ustrezne spremenljivke v imenu naloge
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Če ste uporabljali , ste morda opazili, da je bilo težko ugotoviti, katera matrična spremenljivka se uporablja za določeno nalogo, saj so imena nalog izgledala kot matrix 1/4. V izidu 13.4 boste videli ustrezne vrednosti spremenljivk, ki so bile uporabljene v tej nalogi, namesto splošnega imena naloge. Na primer, če je vaš cilj odpravljanje napak za arhitekturo x86, bo naloga imenovana matrix: debug x86.

in .
Druge izboljšave v GitLabu 13.4
Povezovanje računa Atlassian
(CORE, STARTER, PREMIUM, ULTIMATE)
Uporabniki GitLab-a bodo zdaj lahko povezali svoje račune GitLab s svojim računom Atlassian Cloud. To bo omogočilo prijavo v GitLab z uporabniškimi podatki Atlassian in položilo temelj za prihodnje izboljšave v integraciji in z drugimi proizvodi iz palete Atlassian.

in .
Izvoz seznama vseh združitvenih komitov
(ULTIMATE, GOLD)
Organizacijam, usmerjenim v skladnost, je potreben način, da prikazujejo revizionerjem celovit pregled komponent, povezanih s katero koli določeno spremembo v produkciji. Znotraj GitLab-a to pomeni, da je potrebno zbrati na enem mestu vse: združitvene zahtevke, karte, cevi, varnostne skene in druge podatke o komitu. Do sedaj ste morali to bodisi ročno zbirati v GitLab-u bodisi prilagajati svoje instrumente za zbiranje informacij, kar ni bilo zelo učinkovito.
Zdaj lahko programatsko zbirate in izvažate te podatke, da izpolnite zahteve revizij ali izvedete druge analize. Za izvoz seznama vseh združitvenih komitov za trenutno skupino morate iti na in klikniti na gumb Seznam vseh združitvenih komitov. Pridobljen datoteka bo vsebovala vse komite združitvenih zahtevkov, njihove avtorje, ID povezane združitvene zahteve, skupino, projekt, potrdila in druge informacije.

in .
Izvajanje seznama in upravljanje osebnih dostopnih žetonov prek API-ja
(ULTIMATE, GOLD)
Upravljanje dostopom do prostora imen GitLab je pomemben del skladnosti. Od načel minimalnih privilegijev do onemogočanja dostopa po času – lahko obstajajo različne zahteve glede osebnih dostopnih tokenov v GitLab. Da bi olajšali vzdrževanje in upravljanje vseh teh uporabniških podatkov v okviru vašega prostora imen, smo omogočili možnost izvoziti seznam vseh osebnih dostopnih tokenov in po potrebi prek API-ja.
Te izboljšave v API-ju GitLab omogočajo uporabnikom, da izvozijo seznam in prekličejo svoje osebne dostopne tokene, administratorjem pa, da izvozijo seznam in prekličejo tokene svojih uporabnikov. Zdaj bo administratorjem lažje videti, kdo ima dostop do njihovega prostora imen, sprejeti odločitve o dodeljevanju dostopa na podlagi uporabniških podatkov ter preklicati osebne dostopne tokene, ki so morda bili ogroženi ali ki presegajo pravila podjetja o upravljanju dostopa.
in .
Sorodne naloge in druge funkcije so zdaj v GitLab Core
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Pred nekaj meseci smo napovedali načrt . Med izvajanjem tega obljube smo naredili , in (v ruskem prevodu GitLab 'nadzorna plošča razprave') dostopne v načrtu Core. To velja samo za odnose vrste 'povezano z', odnosi vrste 'blokira' in 'je blokiran' ostanejo v plačljivih načrtih.
in .
Prikaz imena izvorne veje na stranski plošči mrg-vloge
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Pri pregledu sprememb kode, razprav in commitov mrg-vloge je pogosto zaželeno, da se lokalno preveri veja za bolj poglobljen pregled. Vendar pa postane iskanje imena veje z vsakim dodatkom vse težje, ko se dodaja vse več vsebine v opis mrg-vloge in je potrebno prelistati stran.
Dodali smo ime veje na stransko ploščo mrg-vloge, kar ga vedno naredi dostopnega in odpravlja potrebo po prelistavanju celotne strani. Tako kot povezava do mrg-vloge, razdelek z izvorno vejo vsebuje priročen gumb 'kopiraj'.
Hvala за огромный вклад в разработку этой функции!
in .
Указание на наличие свернутых файлов в диффах мерж-реквеста
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Мерж-реквесты, которые добавляют изменения к нескольким файлам, иногда сворачивают диффы больших файлов, чтобы улучшить производительность отображения. Когда это происходит, можно случайно пропустить файл при ревью, особенно в мерж-реквестах с большим числом файлов. Начиная с версии 13.4 мерж-реквесты будут отмечать диффы, содержащие свернутые файлы, благодаря чему вы не пропустите эти файлы в процессе ревью кода. Для еще большей ясности мы планируем добавить подсветку этих файлов в будущем релизе. Следите за обновлениями в .

in .
Предупреждение о наличии свернутых файлов в диффе мерж-реквеста
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
В разделе с диффами мерж-реквестов крупные файлы сворачиваются для повышения производительности. Однако при ревью кода некоторые файлы могут быть пропущены, когда ревьюер пролистывает список файлов, так как все крупные файлы свернуты.
Мы добавили видимое предупреждение наверху страницы диффа мерж-реквеста, чтобы информировать пользователей о том, что в этом разделе есть свернутый файл. Таким образом, вы не пропустите никакие изменения в мерж-реквесте при ревью.

in .
Автоматическое восстановление репозитория кластера Gitaly
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Раньше, когда первичная нода кластера Gitaly отключалась, репозитории на этой ноде помечались как доступные только для чтения. Это предотвращало потерю данных в ситуациях, если на ноде были изменения, которые еще не реплицировались. Когда нода снова подключалась, GitLab не восстанавливался автоматически, и администраторам приходилось вручную запускать процесс синхронизации или мириться с потерей данных. Также могли приводить к появлению устаревших или доступных только для чтения репозиториев и другие ситуации, такие как неудачное завершение задания по репликации на вторичной ноде. В этом случае репозиторий оставался устаревшим до тех пор, пока не была произведена следующая операция записи, которая бы запустила задание по репликации.
Для решения этой проблемы Zdaj načrtuje nalogo za replikacijo, ko zazna zastareli repozitorij na enem vozlišču in zadnjo različico repozitorija na drugem. Ta naloga za replikacijo avtomatsko osveži repozitorij, kar zmanjšuje potrebo po ročnem obnavljanju podatkov. Avtomatsko obnavljanje prav tako zagotavlja hitro obnovitev sekundarnih vozlišč, če naloga za replikacijo ne uspe, namesto da bi čakali na naslednjo operacijo zapisa. Ker številni klasterji Gilaly hranijo veliko število repozitorijev, to bistveno skrajša čas, ki ga skrbniki in inženirji za zagotavljanje zanesljivosti porabijo za obnovo podatkov po napaki.
Poleg tega samodejno popravljanje sproži replikacijo repozitorijev na katerem koli novem vozlišču Gitaly, dodanem k klasterju, kar zmanjšuje ročno delo pri dodajanju novih vozlišč.
in .
Označite nalogo to-do kot zaključeno na strani oblikovanja
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Učinkovita komunikacija v GitLab temelji na seznamih nalog to-do. Če ste bili omenjeni v komentarju, je bistveno, da lahko preidete na nalogo in bodisi začnete delati nanjo bodisi jo označite kot že zaključeno. Prav tako je pomembno, da lahko nalogo dodelite sebi, ko je potrebno delati na nečem ali se vrniti k temu kasneje.
Prej niste mogli dodajati nalog ali jih označiti kot zaključene pri delu z oblikovanji. To je resno oviralo učinkovitost komunikacije med produkcijskimi ekipami, saj so naloge to-do izredno pomemben del delovnega postopka v GitLab.
V različici 13.4 oblikovanja dohitevajo komentarje k nalogam v uporabi nalog, kar dela delo z njimi bolj dosledno in učinkovito.

in .
Izboljšano vodilo za odpravljanje težav za CI/CD
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Izboljšali smo vodilo za odpravljanje težav za GitLab CI/CD z dodajanjem dodatnih informacij o pogostih težavah, s katerimi se lahko srečate. Upamo, da bo izboljšana dokumentacija vredni vir, ki vam bo pomagal hitro in enostavno nastaviti in zagnati GitLab CI/CD.
in .
Povlečeni merži več ne padajo iz vrste merža
(PREMIUM, ULTIMATE, SILVER, GOLD)
Prej so merži lahko nenamerno izpadli iz vrste merža zaradi poznih komentarjev. Če je bil merž že v vrsti in je nekdo dodal komentar, ki je ustvaril novo nerešeno razpravo, je bil merž števen za neprimernega za merž in je padel iz vrste. Zdaj, ko je merž dodan v vrsto merža, lahko dodate nove komentarje, ne da bi vas bilo strah, da bi motili postopek merža.
in .
Prikaz vrednosti pokritosti kode v meržu
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Razvijalci morajo imeti možnost videti vrednost pokritosti kode po končanju cevovoda – tudi v zapletenih scenarijih, kot je delovanje cevovoda z več nalogami, ki jih je treba obdelati za izračun vrednosti pokritosti. Prej je widget merža prikazoval le povprečje teh vrednosti, kar je pomenilo, da ste morali prestopiti na stran naloge in nazaj na merž, da bi dobili vmesne vrednosti pokritosti. Da bi vam prihranili čas in vas razbremenili teh nepotrebnih korakov, smo v widget dodali prikaz povprečne vrednosti pokritosti, njenega spremembe med ciljno in izvorno vejo ter pojavne namige, ki prikazujejo vrednost pokritosti za vsako nalogo, na podlagi katere je bilo izračunano povprečje.

in .
Odstranitev paketov iz registra paketov pri ogledu skupine
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Register paketov GitLab je mesto za shranjevanje in distribucijo paketov v različnih formatih. Ko imate v svojem projektu ali skupini veliko paketov, jih morate hitro identificirati in odstraniti, da jih ljudje ne morejo prenašati. Pakete lahko odstranjujete iz svojega registra preko ali preko uporabniškega vmesnika registra paketov. Vendar pa do sedaj niste mogli odstranjevati paketov pri ogledu skupine preko uporabniškega vmesnika. Posledično ste morali odstranjevati odvečne pakete ločeno za vsak projekt, kar ni bilo učinkovito.
Zdaj lahko odstranjujete pakete pri ogledu registra paketov skupine. Preprosto pojdite na stran registra paketov skupine, filtrirajte pakete po imenu in odstranite vse nepotrebne.

in .
Krepitev paketov Conan na ravni projekta
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Lahko uporabite repozitorij Conan v GitLabu za objavo in distribucijo C/C++ odvisnosti. Vendar je bilo prej mogoče pakete razširiti le na ravni instance, saj je ime paketa Conan lahko vsebovalo največ 51 znakov. Če ste želeli objaviti paket iz podskupine, na primer gitlab-org/ci-cd/package-stage/feature-testing/conan, je bilo skoraj nemogoče to doseči.
Zdaj lahko pakete Conan razširite na raven projekta, kar omogoča enostavno objavo in distribucijo odvisnosti vaših projektov.
in .
Podpora za nove upravljavce paketov in jezike za skeniranje odvisnosti
(ULTIMATE, GOLD)
Veseli smo, da lahko našemu seznamu dodamo skeniranje odvisnosti za projekte s kodo v C, C++, C# in .Net, ki uporabljajo NuGet 4.9+ ali upravljavce paketov Conan. Zdaj lahko vključite skeniranje odvisnosti kot del faze Secure, da preverite znane ranljivosti odvisnosti, dodanih preko upravljavcev paketov. Ugotovljene ranljivosti bodo prikazane v vašem mrg-povpraševanju skupaj z nivojem njihove nevarnosti, da boste vedeli, katere tveganja prinaša nova odvisnost pred izvedbo združitve. Prav tako lahko konfigurirate svoj projekt tako, da zahteva za odvisnosti z ranljivostmi s kritično (Critical), visoko (High) ali neznanimi (Unknown) nivoji nevarnosti.
in .
Obvestila ob spremembi nastavitve mrg-povpraševanja na ‘Združiti ob uspešnem zaključku cevi’
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Prej, ko ste nastavili mrg-povpraševanje Združiti, ko se zaključi cev (Merge When Pipeline Succeeds, MWPS) ni bilo poslanih e-poštnih obvestil. Moral si je ročno preverjati status ali čakati na obvestilo o izvedbi združitve. V tej izdaji smo veseli, da lahko predstavimo prispevek uporabnika , ki je rešil ta problem z dodajanjem samodejnega pošiljanja obvestil vsem, ki so naročeni na mrg-povpraševanje, ko recenzent spremeni nastavitev združitve na MWPS.

in .
Ustvarjanje grozdov EKS z različico Kubernetes, ki jo določa uporabnik
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Uporabniki GitLab zdaj lahko izberejo različico Kubernetes, ki bo zagotovljena v EKS; lahko izbirate med različicami 1.14–1.17.
in .
Ustvarjanje incidentov kot tipov tiketov
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Ne vsak pojav težave takoj sproži obvestil: uporabniki poročajo o napakah v delovanju, člani ekip pa obravnavajo težave s hitrosti. Zdaj so incidenti vrsta tiketa, tako da bodo vaše ekipe lahko hitro ustvarjale te v okviru običajnega delovnega procesa. Kliknite Nova naloga z katerega koli mesta v GitLab-u, in v polju Tip izberite Incident.

in .
Omenjanje obvestil GitLab v Markdown
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Izboljšali smo obvestila GitLab z dodajanjem nove vrste omembe posebej za njih v GitLab različico Markdown, kar olajša deljenje obvestil in omembo le-teh. Uporabite ^alert#1234, da omenjate obvestilo v katerem koli polju z Markdown-jaziko: v incidentih, tiketih ali merge requestih. To vam bo tudi pomagalo identificirati naloge, ki so ustvarjene iz obvestil, namesto iz tiketov ali merge requestov.
in .
Ogled obremenitve obvestil po incidentih
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Opis obvestila vsebuje informacije, ki so kritičnega pomena za diagnosticiranje napak in obnovitev, in te informacije morajo biti enostavno dostopne, da ne boste morali preklapljati med orodji ali zavihki pri delu na reševanju incidenta. Incidenti, ustvarjeni iz obvestil, prikazujejo celoten opis obvestila na zavihku Podrobnosti o obvestilu.

75% hitrejše razširjeno iskanje
(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
GitLab, kot enotna aplikacija, ima edinstveno priložnost, da iskanje vsebine po celotnem poteku dela DevOps naredi hitro. V GitLab 13.4 razširjeno iskanje daje rezultate 75% hitreje, ko je , kot na GitLab.com.
in .
Ogled odstranjeni projektov za skrbnike
(CORE, STARTER, PREMIUM, ULTIMATE)
Možnost odložiti izbris projekta je bila Vendar preden, ni bilo mogoče videti na enem mestu vseh projektov, ki čakajo na odstranitev. Zdaj lahko skrbniki uporabniških instanc GitLab v enem mestu pregledujejo vse projekte, ki čakajo na odstranitev, skupaj s gumbi za enostavno obnovitev teh projektov.
Ta funkcionalnost omogoča skrbnikom boljšo kontrolo nad odstranitvijo projektov, saj zbira vse potrebne informacije na enem mestu in daje možnost, da se neželene odstranitve prekličejo.
Hvala za to funkcijo!
in .
V API je dodana podpora za pravila potiska za skupine
(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
Prej so lahko bila pravila potiska za skupine nastavljena le z obiskom vsake skupine posamezno preko uporabniškega vmesnika GitLab in uporabo teh pravil. Zdaj lahko upravljate s temi pravili preko API, da podprete svoje uporabniške naprave in avtomatizacijo GitLab.
in .
Povrat tokene osebnega dostopa za samo-hranjenje podatkov
(ULTIMATE)
nudi skrbnikom informacije, potrebne za upravljanje uporabniških podatkov v njihovi instanci GitLab. Ker se organizacije, usmerjene v skladnost, razlikujejo po strogosti svojih pravil za upravljanje podatkov, smo dodali gumb, ki skrbnikom omogoča, da po želji prekličejo tokene osebnega dostopa uporabnika (PAT). Zdaj lahko skrbniki enostavno prekličejo potencialno kompromitirane PAT. Ta funkcionalnost je koristna za organizacije, ki potrebujejo bolj fleksibilne možnosti za zagotavljanje skladnosti, da bi zmanjšali motnje za svoje uporabnike.

in .
Konfiguracijska datoteka za urejevalnik statičnih spletnih mest
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
V GitLab 13.4 predstavljamo nov način za nastavitev urejevalnika statičnih spletnih mest. Medtem ko konfiguracijska datoteka v tej različici ne shranjuje in ne pridobiva nobenih nastavitev, postavljamo temelje za prihodnjo nastavitev obnašanja urejevalnika. V naslednjih izdajah bomo dodali v datoteko .gitlab/static-site-editor.yml nastavitve za določitev , na kateri , prepisovanje nastavitev sintakse Markdown in drugih nastavitev urejevalnika.
in .
Urejanje uvodnega dela datoteke z urejevalnikom statičnih spletnih strani
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Uvodni del (front matter) je prilagodljiv in enostaven način za določitev spremenljivk strani v podatkovnih datotekah, namenjenih za obdelavo s generatorjem statičnih spletnih strani. Običajno se uporablja za nastavitev naslova strani, predloge postavitve ali avtorja, vendar se lahko uporablja tudi za prenos kakršnih koli vrst metapodatkov v generator med upodabljanjem strani v HTML. Vključen na vrhu vsake podatkovne datoteke, je uvodni del običajno formatiran kot YAML ali JSON in zahteva dosledno in natančno sintakso. Uporabniki, ki niso seznanjeni s specifičnimi pravili sintakse, lahko nenamerno vnesejo neveljavne oznake, kar lahko povzroči težave pri formatiranju ali celo zrušitve sestavljanja.
Način WYSIWYG urejevalnika statičnih spletnih strani že odstrani uvodni del iz urejevalnika, da prepreči te napake pri formatiranju. Vendar to ne omogoča spremembe vrednosti, shranjenih v tem delu, brez vračanja k urejanju v načinu izvorne kode. V GitLabu 13.4 lahko dostopate do katerega koli polja in uredite njegovo vrednost v znanem vmesniku na osnovi obrazcev. Ob pritisku na gumb Nastavitve (Nastavitve) se odpre plošča, na kateri je prikazano obrazec za vsako ključno besedo, določeno na začetku. Polja so napolnjena s trenutnimi vrednostmi, za urejanje kateregakoli od njih pa je dovolj, da ga preprosto vnesete v spletni obrazec. Takšno urejanje uvodnega dela omogoča izogibanje zapletom pri sintaksi in vam daje popoln nadzor nad vsebino, hkrati pa zagotavlja enotno oblikovanje končnega rezultata.

in .
GitLab za Jira in DVCS povezovalec zdaj v jedru
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Za uporabnike Jire v GitLabu: in omogočata prikazovanje informacij o commitih in merge requestih GitLab neposredno v Jiri. V kombinaciji z našo vgrajeno integracijo z Jiro lahko enostavno prehajate med obema aplikacijama med delom.
Te funkcije so prej bile na voljo samo v našem Premium načrtu, zdaj pa so dostopne vsem uporabnikom!
in .
Glasovanje s posamičnimi glasovi za transakcije v grozdu Gitaly (beta različica)
(CORE, STARTER, PREMIUM, ULTIMATE)
Grozd Gitaly omogoča replikacijo Git repozitorijev na več 'toplih' vozliščih Gitaly. To povečuje razpoložljivost z odpravo posameznih točk napake. , predstavljene v GitLab 13.3, sprožajo množični prenos sprememb na vsa vozlišča Gitaly v grozdu, vendar le vozlišča Gitaly, ki glasujejo v soglasju s primarnim vozliščem, shranijo spremembe na disk. Če se vsa replikacijska vozlišča ne strinjajo, se na disku shrani le ena kopija spremembe, kar ustvari enotno točko napake do zaključka asinhrone replikacije.
Glasovanje s posamičnimi glasovi povečuje razpoložljivost in zahteva soglasje večine vozlišč (ne vseh) pred shranjevanjem sprememb na disk. Če je ta preklopna funkcija omogočena, bo zapis moral biti uspešno izveden na več vozliščih. Nesoglašena vozlišča se samodejno sinhronizirajo z asinhrono replikacijo iz tistih vozlišč, ki so oblikovala kvorum.
in .
Podpora za uporabniško shemo za validacijo JSON v Web IDE
(PREMIUM, ULTIMATE, SILVER, GOLD)
Projekti, kjer ljudje pišejo konfiguracije v formatu JSON ali YAML, so pogosto izpostavljeni težavam, ker je enostavno narediti tipkarsko napako in nekaj pokvariti. Orodja za preverjanje, ki ulovijo te težave v CI procesu, so lahko koristna, toda uporaba JSON datotek shem je lahko koristna za zagotavljanje dokumentacije in namigov.
Člani projekta lahko v svojem repozitoriju določijo pot do uporabniške sheme v datoteki .gitlab/.gitlab-webide.yml, ki natančno določa shemo in pot do datotek za preverjanje. Pri nalaganju določene datoteke v Web IDE bo na voljo dodatna povratna informacija in preverjanje, ki bosta pomagala pri ustvarjanju datoteke.

in .
Omejitev ve�?anja usmerjenega acikličnega grafika (DAG) je povečana na 50
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Če uporabljate cevi (Directed Acyclic Graph (DAG)), ste morda opazili, da je omejitev 10 nalog, ki jih lahko naloga navede v needs:, prestricto. V 13.4 je privzeta meja povečana s 10 na 50, da se zagotovi bolj zapleteno omrežje povezav med nalogami v vaših cevovodih.
Če ste skrbnik uporabniškega primera GitLab, lahko to mejo dvignete še višje z nastavitvijo preklopne funkcije, čeprav tega ne podpiramo uradno.
in .
Izboljšano vedenje needs za zamujene naloge
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
V nekaterih primerih je zamujena naloga v cevovodu lahko napačno obravnavana kot uspešna za odvisnosti navedene v needs, kar je povzročilo zagon naslednjih nalog, kar ne bi smelo biti. To vedenje je bilo popravljeno v različici 13.4, in needs sedaj pravilno obravnava primere zamujenih nalog.
in .
Zaklenite zadnji artefakt naloge, da preprečite njegovo brisanje
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab zdaj samodejno zaklene zadnji artefakt uspešne naloge in cevovoda na katerikoli aktivni veji, merge requestu ali oznaki, da prepreči njegovo brisanje po poteku. Lažje je določiti bolj agresivna pravila poteka za čiščenje starih artefaktov. To pomaga zmanjšati porabo diskovnega prostora in zagotavlja, da imate vedno kopijo zadnjega artefakta iz cevovoda.
in .
Vodnik za CI/CD za optimizacijo cevovoda
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Optimizacija delovanja CI/CD cevovoda lahko poveča hitrost dostave in prihrani denar. Izboljšali smo našo dokumentacijo z dodajanjem kratkega vodnika za dosego maksimalnega izkoristka optimizacije vaših cevovodov.
in .
Poročilo o testiranju je razvrščeno po statusu testa
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
— je to enostaven način za ogled rezultatov vseh testov v toku dela. Vendar pri velikem številu testov iskanje neuspešnih testov lahko vzame veliko časa. Druge težave, ki otežujejo uporabo poročila, vključujejo težave s pomikanjem po dolgih izhodnih podatkih sledenja in zaokroževanje časa na nič za teste, izvedene v manj kot 1 sekundi. Zdaj po privzetku poročilo o testiranju pri razvrščanju najprej postavi neuspešne teste na začetek poročila, nato pa sortira teste po trajanju. To olajša iskanje okvar in dolgih testov. Poleg tega je trajanje testov zdaj prikazano v milisekundah ali sekundah, kar pomeni, da je branje tega veliko hitrejše, hkrati s tem so bile reševane tudi prejšnje težave s pomikanjem.
in .
Omejitve glede velikosti datotek, ki jih je mogoče naložiti v registru paketov
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Zdaj obstajajo omejitve glede velikosti datotek paketov, ki jih je mogoče naložiti v registru paketov GitLab. Omejitve so bile dodane za optimizacijo zmogljivosti registra paketov in preprečevanje zlorab. Omejitve so odvisne od formata paketa. Za GitLab.com so največje velikosti datotek:
- Conan: 250MB
- Maven: 3GB
- NPM: 300MB
- NuGet: 250MB
- PyPI: 3GB
Za uporabniške instance GitLab so privzete vrednosti enake. Vendar lahko skrbnik posodobiti omejitve z uporabo .
in .
Uporabite CI_JOB_TOKEN za objavo paketov PyPI
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Lahko uporabljate GitLab PyPI repozitorij za ustvarjanje, objavljanje in skupno rabo paketov Python skupaj z izvorno kodo in CI/CD tokovi. Vendar pa pred tem niste mogli avtenticirati v repozitoriju z vnaprej določeno okoljsko spremenljivko CI_JOB_TOKEN. Posledično ste morali za posodobitev repozitorija PyPI uporabljati svoje osebne poverilnice, ali pa ste se morda odločili, da repozitorija sploh ne boste uporabljali.
Zdaj je lažje uporabljati GitLab CI/CD za objavo in namestitev paketov PyPI z uporabo vnaprej določene okoljske spremenljivke CI_JOB_TOKEN.
in .
Profil skenerja DAST po povpraševanju
(ULTIMATE, GOLD)
Za DAST skeniranje po povpraševanju, ki je bilo , dodani so profili skenerja DAST. Ti razširjajo možnosti konfiguracije tega skeniranja, saj omogočajo hitro ustvarjanje več profilov za pokritje različnih vrst skeniranja. V različici 13.4 profil skenerja od začetka vključuje parameter časa izteka robotske pošiljke, ki določa, kako dolgo mora delovati robotska pošiljka DAST, ko poskuša odkriti vse strani skeniranega spletnega mesta. Profil vključuje tudi parameter časa izteka ciljnega spletnega mesta, ki določa, kako dolgo naj čaka skener, preden prekine skeniranje, če spletno mesto ne odgovori s kodo stanja 200 ali 300. Ko bomo to funkcionalnost izboljševali v prihodnjih različicah, bodo profilu skenerja dodani dodatni konfiguracijski parametri.

in .
Preprost konfiguracijski datoteka preusmeritev za GitLab Pages
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Če uporabljate GitLab Pages in želite bolje upravljati s spremembami URL, ste morda opazili, da upravljati s preusmeritvami na svojem spletnem mestu GitLab Pages ni bilo mogoče. GitLab zdaj omogoča nastavitev pravil za preusmerjanje enega URL na drugega za vaše spletno mesto Pages, tako da dodate konfiguracijsko datoteko v repozitorij. Ta funkcionalnost je postala mogoča zahvaljujoč prispevku Kevina Barnetta (), našega Erica Eastwooda () in ekipe GitLab. Hvala vsem za vaš prispevek.
in .
Stanje Terraform, upravljano z GitLabom
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Dostop do prejšnjih različic stanja Terraform je potreben tako za izpolnjevanje zahtev kot za odpravljanje napak, če je to potrebno. Podpora za upravljanje različic stanja Terraform, upravljanega z GitLabom, je na voljo od različice GitLab 13.4. Upravljanje različic se samodejno vklopi za nove datoteke stanja Terraform. Obstoječe datoteke stanja Terraform bodo v kasnejši različici.
in .
Pomembni podrobnosti obveščanja o incidentih
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
При обработке инцидентов вам нужно легко определять, как долго уведомление было открыто и сколько раз произошло событие. Эти детали часто имеют решающее значение для оценки воздействия на клиента и определения приоритетов задач вашей команды. На новой панели подробностей инцидента мы отображаем время начала предупреждения, количество событий и ссылку на исходное уведомление. Эта информация доступна для инцидентов, созданных из уведомлений.

in .
Настройка и изменение уровня серьёзности инцидента
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Параметр «уровень серьёзности инцидента» позволяет специалистам по реагированию и заинтересованным сторонам определять последствия сбоев в работе, а также методы и срочность реагирования. В процессе работы ваша команда может изменять этот параметр, делясь результатами устранения инцидента и восстановления работоспособности. Теперь вы можете редактировать уровень серьёзности инцидента на правой боковой панели страницы «Сведения об инциденте», а степень серьёзности будет отображаться в списке инцидентов.

in .
Создание, редактирование и удаление правил сетевой безопасности контейнеров
(ULTIMATE, GOLD)
Это обновление редактора правил сетевой безопасности контейнеров позволяет пользователям легко создавать, редактировать и удалять свои правила прямо из пользовательского интерфейса GitLab. Возможности редактора включают режим .yaml для опытных пользователей и редактор правил с интуитивно понятным интерфейсом для тех, кто менее знаком с сетевыми правилами. Вы можете найти новые возможности управления правилами в разделе Безопасность и соответствие > Управление угрозами > Политики (Security & Compliance > Threat Management > Policies).

in .
Поддержка хранилища blob-объектов Azure
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
И GitLab, и GitLab Runner теперь поддерживают , что упрощает запуск служб GitLab в Azure.
Инстансы GitLab поддерживают Azure для всех типов хранилищ объектов, включая файлы LFS, артефакты CI и . Чтобы настроить хранилище blob-объектов Azure, следуйте инструкциям по установке ili .
Обработчики заданий GitLab также поддерживают Azure для хранения Azure shramba lahko nastavite v razdelku .
in .
Omnibus ARM64 paketi za Ubuntu in OpenSUSE
(CORE, STARTER, PREMIUM, ULTIMATE)
V odgovor na naraščajoče povpraševanje po podpori za zagon GitLaba na 64-bitni arhitekturi ARM z veseljem sporočamo, da je uradna različica paketa ARM64 Ubuntu 20.04 Omnibus zdaj na voljo. Iskrena hvala Zitai Chen in Guillaume Gardet za njihov velik prispevek — njihovi združevalni zahtevki so odigrali ključno vlogo pri tem!
Za prenos in namestitev paketa za Ubuntu 20.04 obiščite našo in izberite Ubuntu.
in .
Podpora za avtentikacijo s pametnimi karticami v GitLab Helm chart
(PREMIUM, ULTIMATE)
Pametne kartice, kot so skupne dostopne kartice (CAC), zdaj podpirajo avtentikacijo v instanci GitLab, nameščeni preko Helm chart. Pametne kartice se avtentikirajo v lokalni podatkovni bazi z uporabo X.509 certifikatov. Tako je zdaj podpora za pametne kartice v Helm chart skladna s podporo pametnim karticam, ki je na voljo v Omnibus namestitvah.
in .
Podrobne beležke o izdaji in navodila za posodobitev/namestitev lahko preberete v izvirnem angleškem prispevku: .
Prevod iz angleščine so opravili , , in .
Izvor: habr.com
