%title Git Server Generell information om min git server som inte platsar i dess [[wn.public:gitserver-documentation|"officiella" dokumentation]]. https://git.hornquist.se = Publicering av "statiska" filer = :TODO: [[https://git.hornquist.se/puppet/profiles/tree/manifests/cgit.pp|Puppetprofilen]] vilken konfigurerar cgit drar just nu ett antal sidor från CGit's http-endpoint. Det leder till att de uppdateras varje körning. But ut till att [[wn.private:Continious deployment|de automatiskt publiceras]] och dra därifrån istället (kan vara både över HTTP och lokalt). = Backup = :TODO: En bakuplösning måste finnas [[wn.private:gitlab-mirroring]] :: = Autentisering = === Autentisering HTTP === ==== Framtiden ==== Det jag vill ha är ett grupp-baserat system där jag enkelt kan lägga till användare. Varje användare är med i ett antal gruppen, och varje repo har en användare och en grupp. Autentiseringssystemet ska gärna vara skillt från Unix's system (men fungera ungefär lika dant). === Autentisering SSH === Gitolite används för authentisering på serversidan. Dock har det vissa problem: - [[#HTTP access]] - [[#gitweb.owner]] ==== Problem ==== :TODO: 2018-12-28 Jag satte upp gitolite, och pull fungerade bra. Dock med vissa autentiseringsskavanker enligt nedan. Dock gick repon:a sönder när jag drog från dem via HTTP. Tror det hade att göra med filrättigheter. Om nginx låter en sätta användare per sub-sida skulle det lösa problemen. ==== HTTP access ==== För nuvarande är HTTP-access allt eller inget på repo:na markerade daemon. Förhoppningen är att det ska gå att sätta upp HTTP konton, vilkas rättigheter sedan administreras genom gitolite. Även vilka konton som finns får gärna administreras genom gitolite. ==== gitweb.owner ==== Då (planen är att) cgit ska autentisera användare mot fälten `gitweb.{owner,group}` behöver dem propageras ut från gitolite. Alternativt att någon form av gemensamm config sätts, som trycker till dem båda. = Pull Requests = Taget från [[Vimwiki]]: Jag bör från varje wiki sida länka till motsvarande git sida. (http://wiki.hornquist.se & http://git.hornquist.se/vimwiki ). Sen bör servern tillåta smidiga pull-requests för att andra ska kunna förbättra. En lösning är att ha fyra access-nivåer till servern (eller åtminstånde repo): - Enbart läsning - Push skapar ny gren (pull request) - Kan jobba på existerande grenar (som de inte skapat) - Full access = Hooks = - [[gitserver-documentation]] = Framtida förbättringar = - `enable-remote-branches` ([[man:cgitrc#5]]) - Vad händer om ett repo har både subdir och kattegori - Vad händer om de inte stämmer överrens? - Delade repositories - gitolite? == Publish == githooks.hornquist.se? https://git.hornquist.se/githooks/ ⇒ https://githooks.hornquist.se/githooks/ /githooks/commit/?id= /calp/tag/?h=v0.5.9 === in repo, for `/.githooks/${hookname}.d}/*.publish` === Setup containerized environment? === config === if `githooks.checkout = true` end env GIT_SOURCE_URL=https://git.hornquist.se/githooks/tree/${filename} GIT_REPO_DIR=${repo_dir} TARGET_DIRECTORY=${target_directory} PUBLISH=${target_directory}/file-to-publish === publish === {{{ find -t file ? }}} = Default config = {{{ [core] repositoryformatversion = 0 filemode = true bare = true }}} 41adefcd1f91e91d473275a100d31a2c == cclite == [remote "origin"] url = https://github.com/Sorroko/cclite == VVVVVV == [remote "origin"] url = https://github.com/TerryCavanagh/VVVVVV fetch = `+refs/heads/*:refs/remotes/origin/*` == password-store == [remote "upstream"] url = https://git.zx2c4.com/password-store fetch = `+refs/heads/*:refs/remotes/upstream` == reddit-parenthesis-bot == [gitweb] category = fork [remote "origin"] url = https://github.com/HugoNikanor/reddit-parenthesis-bot == cgit == [gitweb] group = cgit category = fork [remote "upstream"] url = git://git.zx2c4.com/cgit fetch = `+refs/heads/*:refs/remotes/upstream/*` == guile-cairo == [gitweb] category = fork [remote "upstream"] url = git://git.savannah.nongnu.org/guile-cairo.git fetch = `+refs/heads/*:refs/remotes/upstream/*`