Git 🌙
Chapters â–Ÿ 2nd Edition

4.8 Git pÄ servern - GitLab

GitLab

GitWeb Àr dock ganska primitivt. Om du Àr ute efter en mer modern, fullutrustad Gitserver finns det nÄgra öppen kÀllkods-alternativ dÀr ute som du kan installera istÀllet. Eftersom GitLab Àr en av de mer populÀra, behandlar vi installation och anvÀndning av det som exempel. Detta Àr lite mer komplicerat Àn GitWeb-alternativet och krÀver troligtvis mer underhÄll, men det Àr ett mycket mer utrustat alternativ.

Installation

GitLab Àr en databasbackad webbapplikation, sÄ dess installation Àr lite mer krÀvande Àn andra Gitservrar. Lyckligtvis Àr denna processen vÀldigt vÀldokumenterad och underhÄllen.

Det finns ett antal vĂ€gar du kan ta för att installera GitLab. För att fĂ„ igĂ„ng nĂ„got snabbt, kan du ladda ner en virtuell maskin-avbild eller ett en-klicks-installationsprogram frĂ„n https://bitnami.com/stack/gitlab, och modifiera konfigurationen för att passa din miljö. Ett trevligt som Bitnami har inkluderat Ă€r inloggningsskĂ€rmen (som man kommer Ă„t med alt+→); den ger dig IP-adressen och standardanvĂ€ndarnamnet och lösenordet för det installerade GitLab.

InloggningsskÀrmen till Bitnamis virtuella maskin.
Figur 50. InloggningsskÀrmen till Bitnamis virtuella maskin.

För allt annat, följ guiden i Readme för GitLab Community Edition, vilken du finner pĂ„ https://gitlab.com/gitlab-org/gitlab-ce/tree/master. DĂ€r hittar du ocksĂ„ hjĂ€lp för att installera GitLab via Chef-recept, en virtuell maskin pĂ„ Digital Ocean, och RPM- samt DEB-paket (vilket, vid tiden för författandet, Ă€r i betaversion). Det finns ocksĂ„ “inofficiella” guider för hur man fĂ„r igĂ„ng GitLab med ovanliga operativsystem och databaser, ett fullt manuellt installationsskript, och mĂ„nga andra saker.

Administration

GitLabs administrationsgrĂ€nssnitt nĂ„s över webben. Via din webblĂ€sare, gĂ„ till datornamnet eller IP-adressen för den dator dĂ€r GitLab Ă€r installerat och logga in som en admin-anvĂ€ndare. StandardanvĂ€ndarnamnet Ă€r admin@local.host och standardlösenordet Ă€r 5iveL!fe (som du kommer bli pĂ„bjuden att Ă€ndra sĂ„ fort du skriver in det). NĂ€r du vĂ€l loggat in, klicka pĂ„ menyalternativet “Admin area” i menyn uppe till höger.

Menyalternativet ``Admin area'' i GitLab menyn.
Figur 51. Menyalternativet “Admin area” i GitLab menyn.

AnvÀndare

AnvÀndare i GitLab Àr konton som motsvarar personer. AnvÀndarkonton Àr inte sÄ komplicerade; i huvudsak Àr det en samling personlig information bunden till inloggningsdata. Varje anvÀndarkonto har en namnrymd, som Àr en logisk gruppering av projekt som tillhör den anvÀndaren. Om anvÀndaren jane har ett projekt som heter project sÄ Àr det projektets URL http://server/jane/project.

AnvÀndaradministrationsskÀrmen i GitLab.
Figur 52. AnvÀndaradministrationsskÀrmen i GitLab.

Man kan ta bort en anvĂ€ndare pĂ„ tvĂ„ sĂ€tt. “Blockering” av en anvĂ€ndare förhindrar att de loggar in pĂ„ GitLabinstansen, men all data under den anvĂ€ndarens namnrymd finns bevarad, och versioner som Ă€r signerade med den anvĂ€ndarens epostadress lĂ€nkar fortfarande till deras profil.

“Radering” av en anvĂ€ndare Ă„ andra sidan, tar bort dem frĂ„n bĂ„de databasen och filsystemet. Alla projekt och data i deras namnrymd tas bort, och alla grupper de Ă€ger kommer ocksĂ„ att tas bort. Detta Ă€r sĂ„ledes en mycket mer permanent och destruktiv handling, och anvĂ€nds dĂ€rför sĂ€llan.

Grupper

En GitLab-grupp Àr en samling av projekt tillsammans med data om hur anvÀndare kan nÄ de projekten. Varje grupp har en projektnamnrymd (pÄ samma sÀtt som anvÀndare), sÄ om gruppen training har ett projekt materials, kommer dess URL att vara http://server/training/materials.

GruppadministrationsskÀrmen i GitLab.
Figur 53. GruppadministrationsskÀrmen i GitLab.

Varje grupp Ă€r associerad med ett antal anvĂ€ndare, som var och en har en nivĂ„ av rĂ€ttigheter för gruppens projekt och gruppen i sig. Dessa spĂ€nner frĂ„n “Guest” (enbart arbetspaket och chat) till “Owner” (full kontroll över gruppen, dess medlemmar och dess projekt). De olika rĂ€ttigheterna Ă€r för mĂ„nga för att lista hĂ€r, men GitLab har en hjĂ€lpsam lĂ€nk pĂ„ administrationsskĂ€rmen.

Projekt

Ett GitLabprojekt motsvarar grovt mot ett enskilt Gitrepo. Varje projekt tillhör en enda namnrymd, antingen en anvÀndare eller en grupp. Om projektet tillhör en en anvÀndare, har Àgaren av projektet direkt kontroll över vem som har Ätkomst till projektet; om projektet tillhör en grupp, spelar Àven gruppens anvÀndarnivÄbehörigheter roll.

Varje projekt har en synlighetsnivÄ, som kontrollerar vem som har lÀsÄtkomst till projektets sidor och repo. Om ett projekt Àr Private, mÄste projektets Àgare explicit ge Ätkomst till specifika anvÀndare. Ett projekt som Àr Internal Àr synligt för alla inloggade anbvÀndare, medan projekt som Àr Public Àr synliga för alla. Notera att denna kontrollerar bÄde git fetch-Ätkomst sÄvÀl som Ätkomst till webbgrÀnssnittet för det projektet.

Krokar

GitLab har stöd för krokar bÄde pÄ projekt- och systemnivÄ. Oavsett vilken kommer GitLabservern att utföra ett HTTP POST-anrop med en beskrivande JSON nÀr en relevant hÀndelse intrÀffar. Detta Àr ett förtrÀffligt sÀtt att koppla dina Gitrepon och GitLabinstansen till resten av din utvecklingsautomation, sÄsom CI-servrar, chatrum eller distributionsverktyg.

GrundlÀggande anvÀndning

Det första du kommer vilja göra med GitLab Ă€r att skapa ett nytt projekt. Detta gör du genom att klicka pĂ„ ikonen “+” i verktygsfĂ€ltet. Du kommer bli ombedd att ange projektets namn, vilken namnrymd det skall tillhöra och vad dess synlighetsnivĂ„ skall vara. Det mesta du anger hĂ€r Ă€r inte permanent och kan justeras senare genom instĂ€llningsgrĂ€nssnittet. Klicka pĂ„ “Create Project”, och sedan Ă€r du klar.

SÄ fort projektet finns sÄ vill du sÀkert ansluta det med ett lokalt Gitrepo. Varje projekt Àr nÄbart över HTTPS eler SSH, som bÄda kan anvÀndas för att konfigurera ett fjÀrrepo. URL:erna Àr synliga vid toppen av projektets hemsida. För ett existerande lokalt repo, kommer följande kommando att skapa ett repo benÀmnt gitlab till vÀrdplatsen:

$ git remote add gitlab https://server/namespace/project.git

Om du inte har en lokal kopia av repot, kan du helt enkelt göra sÄhÀr:

$ git clone https://server/namespace/project.git

WebbgrÀnssnittet tillhandahÄller Ätkomst till flera anvÀndbara vyer av repot sjÀlvt. PÄ varje projekts hemsida visas senaste aktivitet, och lÀnkar i toppen leder dig till vyer över peojektets filer och versionslogg.

Arbeta tillsammans

Det enklaste sĂ€ttet att arbeta tillsammans pĂ„ ett GitLabprojekt Ă€r genom att ge en annan anvĂ€ndare direkt skrivrĂ€ttighet till Gitrepot. Du kan lĂ€gga till en anvĂ€ndare till ett projekt genom att gĂ„ till delen “Members” i projektet instĂ€llningar och associera den nya anvĂ€ndaren med enn Ă„tkomstnivĂ„ (skillnaden mellan Ă„tkomstnivĂ„er diskuteras i Grupper). Genom att ge en anvĂ€ndare Ă„tkomstnivĂ„n “Developer” eller över, kan den anvĂ€ndaren villkorslöst skicka upp versioner och grenar direkt till repot.

Ett annat, mer frikopplat sĂ€tt att samarbeta Ă€r att anvĂ€nda sammanslagningsbegĂ€ran. Denna funktion ger vilken anvĂ€ndare som helst som kan se projektet möjlighet att bidra till det pĂ„ ett kontrollerat sĂ€tt. AnvĂ€ndare med direkt Ă„tkomst kan helt enkelt skapa en gren, skicka versioner till den och öppna en sammanslagningsbegĂ€ran frĂ„n sin gren tillbaks in till master eller nĂ„gon annan gren. AnvĂ€ndare som inte har skrivrĂ€ttigheter fölr ett repo kan “klyva” repot (skapa sin egen kopia), skicka versioner till den kopian, och sedan öppna en sammanslagningsbegĂ€ran frĂ„n deran gren tillbaks in till huvudprojektet. Denna modellen ger Ă€garen möjlighet att stĂ€ndight ha full kontroll av vad som kommer in i repot och nĂ€r, samtidigt som man tillĂ„ter bidrag frĂ„n opĂ„litliga anvĂ€ndare.

SammanslagningsbegÀran och felrapporter Àr huvuddelarna i lÄnglivade diskussioner i GitLab. Varje sammanslagningsbegÀran tillÄter rad-för-rad-diskussion av den föreslagna Àndringen (som stödjer en enkel form av kodgranskning), sÄ vÀl som generell översiktlig disussion. BÄda kan tilldelas anvÀndare, eller organiseras i milstolpar.

Detta avsnitt fokuserade huvudsakligen pÄ Git-relaterade funktioner av GitLab, men som ett moget projekt har den mÄnga andra verktyg för att hjÀlpa ditt team att jobba tillsammans sÄsom projektwikisidor och sytemunderhÄllningsverktyg. En fördel med GitLa Àr att nÀr vÀl Servern Àr uppe och kör, behöver du sÀllan modifiera en konfigurationsfil eller lÀsrÀttigheter till servern via SSH; den mesta administrationen och generell anvÀndning kan ske via webblÀsarfönstret.

scroll-to-top