Koncepti
Kako deluje wkdoadogit: kaj je priklop, od česa je odvisna vidnost repozitorija in kje tečejo meje paketa. Kaj želite narediti, piše na ADO-Git; kaj želite poiskati, v Tehnični referenci.
Namen
Vtičnik vključi v wiki repozitorije git, ki gostujejo v Azure DevOpsu: brskanje po repozitorijih, izris izvorne kode, urejanje in commit ter ukaze git clone, pull in push prek posrednika. Pri Azure DevOpsu se vedno prijavi en sam storitveni račun, zato bralci in uredniki ne potrebujejo svoje licence. Meja avtorizacije so izvorne pravice DokuWikija, ne licenca za Azure DevOps.
Komu je namenjen: skrbnikom in urednikom, ki želijo kodo iz Azure DevOpsa narediti vidno ali urejljivo v wikiju.
Tri dejanja, ki jih vtičnik ne opravi sam
Repozitorij postane viden šele, ko so opravljena tri ločena dejanja. Nobeno od njih ne sproži naslednjega.
| Dejanje | Kje | Kaj nastane |
|---|---|---|
| povezava | do=wkdoado na strani projekta DWDO | opis strežnika ADO s ključem in sklicem na skrivnost |
| priklop | Skrbništvo > Priklopi repozitorijev ADO-Git | vez med repozitorijem in imenskim prostorom ter pravice zanj |
| oznaka na strani | poljubna stran znotraj projekta DWDO | edini izris repozitorija; priklop nobene strani ne ustvari |
Celoten potek s primerom opisuje Prvi prikaz repozitorija ADO v wikiju.
Priklopi repozitorijev
Priklop poveže repozitorij z imenskim prostorom DokuWikija oblike code:{projekt}:{repozitorij}, na primer code:dokuwiki-plugins:wkdoadogit. Šele registriran priklop naredi repozitorij dosegljiv; vsaka dostopna pot – brskalnik, izris datoteke, posrednik git in prenos arhiva – preveri pravice DokuWikija glede na ta imenski prostor.
Imenski prostor priklopa je navidezen, saj v njem ne nastane nobena stran wikija. Če je v predlogi uporabljen nadomestek {lang}, priklop ostane en zapis, pravice pa se zapišejo za vsak jezik iz nastavitve mount_languages (privzeto de,en,hr,it,sl).
Raven vidnosti in ACL DokuWikija
Raven priklopa je edino mesto, kjer se ureja vidnost. Pravice se preberejo ob vsaki zahtevi, zato sprememba ravni učinkuje takoj. Zapišejo se za imenski prostor in za imenski-prostor:*. Skrbniki lahko vedno delujejo kot nadskrbniki.
| Raven | @ALL (anonimni) | @user (prijavljeni) | @wvds (razvijalci) | @wvdse (uredniki) | skupine vlog projekta |
|---|---|---|---|---|---|
private | 0 | – | – | 8 | – |
readonly | 0 | 2 | 2 | 8 | – |
showcase | 1 | – | – | 8 | – |
library | 1 | 2 | – | 8 | – |
public | 2 | – | – | 8 | – |
team | 0 | – | – | 8 | readers 1, contributors 2, maintainers 8 |
Skupine vlog projekta nosijo predpono iz nastavitve roleprefix vtičnika wkdocore in ključ projekta, na primer @dwdo_dwplugins_maintainers.
Ravni showcase in library ločujeta dve pravici, ki ju public podeli skupaj: ogled v brskalniku in prevzem kopije. Pri showcase sme brati vsakdo, klonirati pa nihče; pri library sme brati vsakdo, klonirati pa vsak prijavljen račun. Meja je prijava, ne občinstvo — kdor vzame kopijo, je račun, ki ga je pozneje mogoče poimenovati.
Ena številka, dve branji
Zapisana številka je hkrati pravica DokuWikija in zmožnost tega vtičnika.
| Raven | V tem vtičniku | V DokuWikiju |
|---|---|---|
| 1 | brskanje in izris v wikiju | branje strani |
| 2 | clone, fetch in prenos arhiva ZIP | urejanje obstoječe strani |
| 4 | push v refs/heads/users/<prijavno-ime>/ | ustvarjanje strani |
| 8 | push brez omejitve ter urejanje in commit iz wikija | nalaganje datotek |
Drugi stolpec je razlog, zakaj priklop na imenskem prostoru s pravimi stranmi wikija ni nedolžen: raven public odpre urejevalnik strani anonimnim obiskovalcem. Predogled v čarovniku zato prešteje strani, ki jih imenski prostor že nosi.
conf/acl.auth.php, med vrsticama # BEGIN wkdoadogit-managed in # END wkdoadogit-managed. Tega bloka ne urejajte ročno – namesto tega nastavite raven priklopa. Zapisovalnik nadomesti izključno ta blok (atomarno, z začasno datoteko, preimenovanjem in zaklepom) in pusti vsa druga pravila nedotaknjena, tudi tista, ki jih vzdržujete ročno ali prek jedrnega skrbnika acl. Odstranjen priklop svoje pravice izgubi, imenski prostor pa se vrne na privzeta pravila mesta.
Drugi dejavnik: dve kategoriji, dve stopnji
Kadar je nameščen vtičnik Identity, most do=wkdoadogit_stepup zahteva dokaz.
| Kategorija | Zahteva | Velja za |
|---|---|---|
mount-admin | MFA_ANY | registracijo, spremembo in odstranitev priklopa ter registracijo povezave Subversion |
token-issue | AUTHENTICATED, namestitev lahko zahtevo dvigne | izdajo osebnega žetona |
Preverjanje je dodatno k pravicam DokuWikija, nikoli namesto njih. Brez vtičnika wkidentity se paket vede nespremenjeno. Posrednik git temu preverjanju ni podvržen: deluje brez seje in ne more voditi interaktivnega izziva, zato se zahteva veže na izdajo žetona in ne na vsako zahtevo, ki ga pozneje uporabi.
Meje in opozorila
- Registracija priklopov in zapis pravic sta pridržana skrbnikom, osebni žetoni pa so samopostrežni.
- Podrobnejših pravic po podmapah ni. Raven velja za celoten priklop.
- Zavihka Branches in Tags v glavi brskalnika sta nedejavna. Prikazano vejo izberete v oznaki. Ustvarjanje veje ali oznake tag je izvedeno, preklop nanjo v vmesniku pa ne.
- Oznaka
{{wk:adogit>…}}zunaj korena projektov ne deluje, ker se povezava razreši prek projekta DWDO te strani. Oznaka{{source>ado:…}}ima poleg te še pot prek imenskega prostora priklopa. - Vsaka vgradnja je klic prek omrežja, omejen s časovnimi mejami in mejo bajtov v vtičniku
wkdoado. - Posrednik git se pri Azure DevOpsu vedno prijavi z enim samim storitvenim žetonom PAT. Vrednost pushedBy je zato storitveni račun, avtor commita pa ostane uporabnik wikija.
- Zavrnitev je namenoma skopa: nepriklopljen repozitorij, neznana povezava in manjkajoča pravica se od zunaj ne razlikujejo povsem.
- Zavezujoč vir preslikave ravni je
Domain/MountAclWriter::TIERS. Ob spremembi posodobite to stran in datoteko README vtičnika.
Sorodne teme
- ADO-Git — vstop in pogosta opravila
- Tehnična referenca — upravljanje priklopov, skladnja, dejanja, žetoni, nastavitve
- Diagnostika — simptomi z vzrokom in odpravo
- Izvor besedišča ravni — zakaj seznam ravni stoji na natanko enem mestu
- Zagon — pot od povezave do prvega priklopa
- Identity: Koncepti — zagotovilo, na katero se opira drugi dejavnik