Jump to content

Tjenester/Kodelager

From Programvareverkstedet

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.