Tjenester/Kodelager
Gitea er en tjeneste vi bruker for både å oppbevare, dele, og samarbeide på kode og andre filer. Du kan bruke den som et alternativ til GitHub eller IDI GitLaben. Den kjører på Maskiner/kommode og er tilgjengelig på https://git.pvv.ntnu.no
Bruk
For generell bruk, se https://docs.gitea.com/category/usage
På loginsiden kan du logge inn med vanlig PVV-brukernavn og passord
Git remotes med SSH og ProxyJump
Maskinen som tjener gitea er for tiden ikke mulig å nå med SSH utenfor NTNU sitt nettverk. Det er imidlertid mulig å konfigurere SSH slik at den sender all trafikken via en loginboks først. For å gjøre dette, må du sette opp noe slikt i ~/.ssh/config (den viktige biten her er ProxyJump):
Host pvv-git git.pvv.ntnu.no Port 2222 User gitea HostName git.pvv.ntnu.no AddressFamily inet ProxyJump hildring Host hildring login.pvv.ntnu.no User mittbrukernavn HostName login.pvv.ntnu.no AddressFamily inet
Vi antar også her at du allerede har satt opp en SSH-nøkkel. Husk å registrere den offentlige nøkkelen din her: https://git.pvv.ntnu.no/user/settings/keys
Hvis alt er satt opp korrekt, så skal denne testen fungere:
$ ssh -T pvv-git Hi there, <bruker>! You've successfully authenticated with the key named <keyname>, but Gitea does not provide shell access. If this is unexpected, please log in with password and setup Gitea under another user.
Da er det bare å klone i vei:
$ git clone ssh://gitea@git.pvv.ntnu.no:2222/Projects/dibbler.git # Dette skal også fungere fint: $ git clone pvv-git:Projects/dibbler
Speiling av kodebrønner
Gitea støtter speiling av kodebrønner både til og fra flere kilder. PVV bruker selv å speile en del prosjekter mot GitHub (se https://github.com/Programvareverkstedet). For å komme i gang med speiling, kan du lese mer her:
Hvis du skal speile til en GitHub-brønn eller fra en privat GitHub-brønn må du forsyne Gitea med en token. Vi anbefaler deg å bruke en ny
Bruk av CI
Se https://docs.gitea.com/usage/actions/quickstart#use-actions for generell bruk.
For prosjektbrønner har vi satt opp et system for å forhåndsgenerere tokens for å publisere html-dokumenter fra CI. Tokenen er lagret under id WEB_SYNC_SSH_KEY. I tillegg finnes det en heimbrent byggekloss som simplifiserer prosessen. Du kan finne eksempel på bruk her: https://git.pvv.ntnu.no/Projects/rsync-action/src/branch/main/.gitea/workflows/test.yml
En snutt om innhold
Alt innhold på PVV-giten skal som alt annet innhold på PVVs systemer, følge PVV sine regler for bruk av maskineri og utstyr, som deriblant også inneholder NTNU sitt IT-reglement. Utover dette har vi enn så lenge bestemt at det ikke skal gå utover disk-kvota å lagre prosjekter på kodelageret. Dette er delvvis fordi at Gitea ikke hadde implementert kvotetracking da vi satt den opp, men også med intensjon om å oppmuntre bruk av kodelageret for prosjekter og samarbeid. Programvareutvikling, rett og slett.
Vi sliter til dels med bots og vev-edderkopper (crawlers) som kommer og laster ned alt innhold på kodelageret fra tid til annen. Derfor hadde drift satt pris på om brukere var litt forsiktig med å poste gigabyte-vis av blobs og store filer. Det er gale nok som det er, nedlastning av store blobs kan sannsynligvis knele hele kodelageret i senk.
Historie
Tidlig 2023 ble både TRAC og Gogs tatt ned, og byttet ut med Gitea. De fleste repoer ble migrert (med unntak av noen vi ikke fant kildekode for i datamappene), og det ble satt opp prosjektgrupper for repo-er som tidligere var samarbeidsprosjekter. Repo-er hvor vi så at det hovedsakelig var én person som jobbet, ble omgjort til brukerens personlige repo.