Gitpod er en enkel, men rikholdig IDE som kjører i nettleseren og som kan åpnes med innholdet i et git-kodelager (repo), også fra vår lokale gitlab-installasjon.

Det finnes mange IDE-er, og selv om vi så langt har basert oss på Eclipse i TDT4100 (av ulike grunner, men ikke at den er enkel i bruk) så finnes det mange gode alternativer. Et alternativ er gitpod, som har flere viktige egenskaper som gjør den egnet for oss:

  • Den kjører rett i nettleseren og krever ingen installasjon.
  • Arbeidsområdet (workspace) som gitpod starter opp i, hentes fra et git-kodelager. Også oppsettet på den virtuelle maskina som gitpod kjører inni, er en del av kodelageret, inkludert nødvendige verktøy og rammeverk.
  • Gitpod bruker VS Code som standard IDE, som mange kanskje bruker, og dermed er et vell av tillegg tilgjengelig.

Gitpod har også noen ulemper:

  • En må forholde seg til git, hvis en skal ta vare på koden en jobber på, og ikke alle introduseres for git i første studieår (enn så lenge).
  • Det er litt unaturlig å lage JavaFX-apper, siden de kjører på en virtuell skjerm som må "åpnes" i nettleseren på en spesiell måte.
  • En må selvsagt være på nett, og gitpod takler i varierende grad at nettet er ustabilt.

Alt i alt er gitpod egnet for å dele mindre eller større kode-eksempler, siden "oppstartskostnader" for den som skal se på eksemplene, blir (nesten) borte. Vi ser også på muligheten for å bruke den på eksamen, både hjemme-eksamen (som er aktuelt ifm. COVID-utbruddet) og skole-eksamen. Men gitpod kan også brukes til ordentlig utvikling av et bredt spekter av applikasjoner, spesielt web-applikasjoner er godt støttet.

gitpod @ NTNU 

Den åpent tilgjengelige gitpod-tjenesten hos gitpod.io kan brukes mot offentlig git-baserte nettsteder for kode-deling som GitHub og Gitlab. Denne kan vi imidlertid ikke bruke i våre emner, siden vi ikke har noen databehandleravtale med disse. I stedet har vi fått opprettet vår egen gitpod-tjeneste på NTNU, som nås på gitpod.stud.ntnu.no og er koblet mot vår egen Gitlab-installasjon på gitlab.stud.idi.ntnu.no. Dette åpner for at øvingsopplegget i mange typer emner kan gjøres i sin helhet i gitpod i nettleseren, så alt av konfigurasjonsproblemer kan unngås. Imidlertid krever det som nevnt litt erfaring med git, som vi skal se på under.

Siden mye av oppsettet til gitpod hentes fra git-kodelageret som det åpnes på, snakker man gjerne om at et kodelager er "gitpod enabled" eller "gitpodifisert", dvs. at det ligger filer for oppsett av gitpod der. Slike kodelagre har gjerne en gitpod-merkelapp i sin README.md-fil, så det synes når en åpner sida på gitlab, se f.eks. kodelageret for videoforelesningene i TDT4100: https://gitlab.stud.idi.ntnu.no/tdt4100/videoer:

README.md-fil med gitpod-merkelapp, som viser at kodelageret er gitpodifisert. Det er jo ikke merkelappen selv som gjør kodelageret gitpodifisert, men .gitpod.yml-fila (konfigurasjonsfil for IDE-en) og gjerne også en .gitpod.docker-fil (konfigurasjon for den virtuelle maskina gitpod kjører inni).

Merkelappen er klikkbar, og lenka er https://gitpod.stud.ntnu.no/#https://gitlab.stud.idi.ntnu.no/tdt4100/videoer. Generelt er gitpod-lenker på formen https://gitpod.stud.ntnu.no/#<lenke til kodelageret>, så det er lett å lage lenker til egne gitpodifisert kodelagre, f.eks. for å dele med medlemmer i en gruppe eller en faglig veileder. Merk at en må bruke den offentlige gitpod.io-tjenesten dersom en vil jobbe mot eget eller andres kodelager på GitHub.

Merkelappen er klikkbar og skal åpne gitpod med innholdet i repoet som arbeidsområde, altså filene som utgjør kodingsprosjektet. Siden dette kodelageret ligger på vår egen gitlab, så blir du bedt om å logge inn der (kanskje etter først å ha måttet akseptere noen betingelser). Alle NTNU-brukere har automatisk bruker på gitlab-installasjonen vår, og du logger inn med vanlig NTNU-brukernavn og -passord. Når gitpod-ikonet har hoppet opp og ned en stund, vil du få opp VSCode med fil-treet i arbeidsområdet til venstre og README-fila åpnet i visningsmodus til høyre. Utlegget av panelene er omtrent som i Eclipse, og du kan flytte rundt på dem om du vil. Les mer om VSCode her: https://code.visualstudio.com/docs/introvideos/basics

Innlogging på gitlab.stud.idi.ntnu.no

Til venstre: Panel for visning av filene i arbeidsområdet

Til høyre: Visning av README-fila.

Bruk av git(lab)

Det er en tett kobling mellom gitpod og git(lab). For det første startes gitpod opp med filene fra et git-kodelager, og for det andre så er det lagt opp til at filene som endres skal legges tilbake i samme eller et annet git-kodelager. Hvis en bruker gitpod til utvikling av egne prosjekter, så har en jo eierskap til kodelageret og kan oppdatere originalfilene. Mens dersom en åpner et kodelager som eies av noen andre, som tilfellet er med TDT4100 sitt videoer-kodelager, så må en opprette et eget kodelager og legge endringene der.

Bruk av gitpod mot repo som eies av andre


For hvert nye git-kodelager en ønsker å ta bruk og som eies av andre, så må en lage et tilsvarende kodelager på egen gitlab-bruker.

Logg deg inn på gitlab.stud.idi.ntnu.no og velg den grønne New project-knappen. Du vil da få opp et skjema til utfylling av bl.a. navn på nytt repo. Det er enklest å bruke samme navn som original-repoet, f.eks. videoer. I noen tilfeller er det meningen at du skal lage kodelageret under en spesifikk gruppe satt opp av emnet, f.eks. tdt4100/v2020/studenter. Da navigerer du dit før du bruker New project-knappen.

Kodelageret bør være privat, hvis det brukes til arbeidskrav i et emne.

Velg Create project og du vil få opp sida for det nye kodelageret.

Hvert kodelager har sin egen adresse som brukes av git. Velg Clone-nedtrekksmenyen og kopier HTTPS-adressen. Den skal brukes i en git-kommando for oppsett av git inni gitpod.

Første gangen du bruker gitpod på et kodelager eid av andre og som du ønsker å knytte til eget kodelager, så må du konfigurere git (inni gitpod) riktig. Skriv inn følgende kommandoer i Terminal-panelet i gitpod (forklaringen i parentes skal ikke skrives inn):

git remote rename origin upstream (Dette endrer logisk navn på original-repoet til upstream)

git remote add origin https://gitlab.stud.idi.ntnu.no/tdt4100/videoer.git (Bruk adressen som du kopierte i trinnet over. Dette knytter origin-navnet til det nye kodelageret på gitlab, som fra nå av skal fungere som original. Gitpod sine innebygde git-funksjoner vil fra nå av virke mot dette repoet.)

git push -u origin master (Oppdaterer ditt gitlab-kodelager med alle filene inni gitpod. Nå skal du kunne se filene på gitlab-sida til kodelageret. Det kan tenkes du må bruke main i stedet for master, sjekk hva som er hovedgreina ved å kjøre git branch)

Dersom kodelageret har en gitpod-merkelapp øverst i README.md-fila, så vil lenka til merkelappen fortsatt referere til original-repoet, så den må oppdateres.

Fra nå av kan du bruke gitpod som om du er eier av git-repoet, siden origin nå referer til ditt gitlab-kodelager. Følg derfor oppskriften under for videre bruk.

Bruk av gitpod mot repo som du eier

Gitpod kan startes opp mot alle git-kodelager, selv uten spesiell konfigurering. Som vist over, så bruker du nettadressen til gitpod-tjenesten etterfulgt av # og så nettadressen til kodelageret. Gitlab har også en egen knapp for å starte gitpod på et kodelager, se etter en Gitpod-knapp evt. en Web IDE-knapp og velg Gitpod i nedtrekksmenyen, slik at denne blir standard knapp for å starte en nettleserbasert IDE. IDI sin gitlab-installasjon er konfigurert til å bruke NTNU sin gitpod-tjeneste (og omvendt), så disse skal fungere godt sammen.


  • No labels