Git
Git v wikiju prikaže repozitorije git, ki so krajevno na strežniku: imenik znanih repozitorijev, dostop do programa git izključno za branje, vstavljanje izvorne kode z oznako {{source>git:…}} ter brskalnik za commite in veje. Paket nikoli ničesar ne zapiše. Namenjen je avtorjem, ki na strani pokažejo izvorno kodo, in upraviteljem, ki repozitorije odobrijo.
Prvi koraki
Hitri začetek: registracija prvega lokalnega repozitorija – najkrajša pot do prvega rezultata, v štirih korakih.
Registrirajte repozitorij → Vstavite oznako na stran → Preverite zaščito
Pogosta opravila
| Kaj želite | Za koga | Kje to naredite | Navodilo |
|---|---|---|---|
| odobriti krajevni repozitorij | upravitelji | Splošne nastavitve | Nastavitve |
| pokazati izvorno kodo iz repozitorija na strani | avtorji | oznaka {{source>git:repo:ref:pfad}} | Namen |
| pregledati commite in veje | bralci | do=wkdogit | Namen |
| razumeti, zakaj je dostop samo za branje | vsi | – | Kako je izvajanje zavarovano |
| pokazati repozitorij iz Azure DevOps | avtorji | – | ADO-Git |
| vedeti, česa paket ne zmore | vsi | – | Meje |
Namen
V wikiju prikaže repozitorije git, ki so krajevno na strežniku: registracijo znanih repozitorijev, brskalnik za commite in veje, izvorno kodo v predalu paketa Source Viewer ter povezave med delovnimi elementi in mesti v izvorni kodi.
Prijavljena storitev (glejte Core): git.runner; poleg tega ponudnik virov git:.
- ta vtičnik: »kaj je v tem klonu na tem strežniku« – program
gitkliče na krajevnih poteh, izključno za branje. wkdoadogit: »kdo sme kaj z dejanskim oddaljenim repozitorijem« – z ADO govori prek REST in navzven ponuja posrednika git.
Oba lahko delujeta drug ob drugem.
Kako je izvajanje zavarovano
Pot izvajanja je občutljivo mesto: tu koda wikija zažene zunanji program. Utrditev je zato večplastna in je ni mogoče izklopiti:
- Samo argv, brez lupine. Ni ukazne vrstice, ki bi jo lahko zvilo ime datoteke s posebnimi znaki.
- Seznam dovoljenih ukazov. Izvedejo se samo izrecno dovoljeni podukazi git; vse drugo se zavrne, ne filtrira.
- Varovala za ref, pot in repozitorij. Ref ali pot, ki nima pričakovane oblike, ne pride do klica programa.
- Časovna meja in omejitev količine za vsak zagon.
- Samo zbirka objektov, nikoli delovno drevo – nič se ne prevzame (checkout) in nič ne zapiše.
Nastavitve
| Nastavitev | Privzeto | Pomen |
|---|---|---|
git_binary | prazno | pot do programa git: absolutna ali glede na mapo wikija, z {os}. Prazno = izklopljeno |
git_repo_root | prazno | koren, pod katerim je repozitorije dovoljeno registrirati in uporabljati; relativna pot velja od podatkovne mape |
git_timeout_ms | 5000 | časovna meja za vsak zagon |
max_bytes | 262144 | zgornja meja pri branju objekta blob |
max_lines | 1000 | zgornja meja števila vrstic |
browse_page | 50 | commiti na stran brskalnika (zaščita pred obremenitvijo) |
git_repo_root pomeni »brez dodatne omejitve poti«, ne »vse zaprto«. Če nastavite samo
git_binary in polje za koren pustite prazno, registracijo odprete za vsako pot, ki jo proces
spletnega strežnika lahko bere. V produkciji nastavite obe polji. Nastavljena vrednost, katere mapa
ne obstaja, pa ne dovoli nobenega repozitorija.
git_binary ni nastavljen, vtičnik je torej nedejaven. Nameščen je, ker
sodi v družino paketov in ker pogodba paketa Source Viewer predvideva ponudnika git: –
v uporabo pa ni bil dan.
Meje
- Izključno za branje. Brez commita, brez pusha, brez checkouta. Poti s pisanjem gredo prek wkdoadogit.
- Vmesnik naslove še izriše sam in ne prek skupne glave dokumenta iz wkfluentui; prehod še ni opravljen.
Podatki o paketu
Vtičnik: wkdogit
Imenski prostor: lib/plugins/wkdogit/
Avtor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
Licenca: GPL 2