You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Current »

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

Det finnes mange IDE-er, og selv om vi 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-repo. Også oppsettet på "maskina" som gitpod kjører inni, er en del av repoet, så ekstra verktøy som spesifikke rammeverk kan være en del av oppsettet.
  • Gitpod ligner på VS Code, som mange kanskje bruker, og støtter mange av VS Code sine tillegg.

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 (foreløpig) takler ikke gitpod så godt 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.

gitpod @ IDI 

Den åpent tilgjengelige gitpod-tjenesten hos gitpod.io kan brukes mot offentlig git-baserte nettsted for kode-deling som GitHub og Gitlab. Denne kan vi imidlertid ikke bruke i våre emner, siden vi ikke har noen databehandleravtale. I stedet har vi fått opprettet vår egen gitpod-tjeneste på IDI, som nås på gitpod.idi.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-repoet som det åpnes på, snakker man gjerne om at et repo er "gitpod enabled" eller "gitpodifisert", dvs. at det ligger filer for oppsett av gitpod der. Slike repo har gjerne en gitpod-merkelapp i sin README.md-fil, så det synes når en åpner sida på gitlab, se f.eks. repet for videoforelesningene i TDT4100: https://gitlab.stud.idi.ntnu.no/tdt4100/videoer:

README.md-fil med gitpod-merkelapp, som viser at repoet er gitpodifisert. Det er jo ikke merkelappen selv som gjør repoet 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.idi.ntnu.no/#https://gitlab.stud.idi.ntnu.no/tdt4100/videoer. Generelt er gitpod-lenker på formen https://gitpod.idi.ntnu.no/#<repo-lenke>, så det er lett å lage lenker til egne gitpodifisert repo, 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 repo på GitHub.

Merkelappen er klikkbar og skal åpne gitpod med innholdet i repoet som arbeidsområde, altså filene som utgjør kodingsprosjektet. Siden dette repoet 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-en 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 Theia-IDE-en 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 Theia her: https://www.gitpod.io/docs/ide/

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-repo, og for det andre så er det lagt opp til at filene som endres skal legges tilbake i samme eller et annet git-repo. Hvis en bruker gitpod til utvikling av egne prosjekter, så har en jo eierskap til git-repoet og kan oppdatere originalfilene. Mens dersom en åpner et repo som eies av noen andre, som tilfellet er med TDT4100 sitt videoer-repo, så må en opprette et eget repo og legge endringene der.

Bruk av gitpod mot repo som eies av andre


For hvert nye git-repo en ønsker å ta bruk og som eies av andre, så må en lage et tilsvarende repo 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.

Repoet 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 repoet.

Hvert repo 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 repo eid av andre og som du ønsker å knytte til eget repo, 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 repoet 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 origin (Oppdaterer ditt gitlab-repo med alle filene inni gitpod. Nå skal du kunne se filene på gitlab-sida til repoet.)

Dersom repoet 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-repo. Følg derfor oppskriften under for videre bruk.

Bruk av gitpod mot repo som du eier

Gitpod kan startes opp mot alle git-repo, selv uten spesiell konfigurering. Som vist over, så bruker du nettadressen til gitpod-tjenesten etterfulgt av # og så nettadressen til repet. Dersom repoet ikke har de gitpod-spesifikke konfigurasjonsfilene .gitpod.Dockerfile (konfigurerer den virtuelle maskina som gitpod starter i) og .gitpod.yml (konfigurerer gitpod selv) så vil gitpod automatisk starte en veiviser som lar deg opprette disse. I tillegg vil du bli spurt om du ønsker en gitpod-merkelapp i README-fila di, som jeg er praktisk fordi det lar deg starte gitpod fra repo-sida på gitlab (eller github).


  • No labels