Skip to main content

Opprette nytt repo på Github

Dette dokumentet beskriver fremgangsmåten et produktteam skal bruke for å opprette et nytt repository på Github - enten de skal starte et nytt prosjekt, eller flytte et gammelt.

Merknad for produkter som ikke er på SKIP

Merk at det meste av dette dokumentet også er gyldig for prosjekter som ikke er på SKIP-plattformen - men at det likevel er skrevet for SKIP-teams, så sikkerhetsreglene kan sees på som gode råd dersom du ikke skal bruke SKIP.

For ikke å snakke om at du dersom du følger disse sikkerhetsreglene vil få en mye enklere jobb hvis du skal flytte prosjektet over til SKIP i fremtiden

Hvordan opprette et nytt GitHub Repository

  • Logg inn på GitHub
  • Opprett et nytt repository ved å trykke på pluss-ikonet øverst til høyre på https://github.com og velge “New repository”. Dette gjelder uansett om du skal lage et nytt prosjekt eller importere et eksisterende prosjekt, siden du ikke vil kunne bruke “Import”-funksjonaliteten på vanlig måte.
  • Dersom du skal importere et eksisterende git-repository, følg denne tutorialen .
  • Fyll ut skjemaet med riktig informasjon.
    • Huskeregler:
  • Dokumenter hvilket team som er ansvarlig for repositoriet ved å opprette en Codeowners fil.Dette er dokumentert her .Som regel er det nok med en linje - slik (bytt ut skip med ditt eget team).
  • Gi teamet ditt rettigheter til repoet. Dette er dokumentert her . Det er vanlig å sette Tech Lead som eier for repositoriet, men dette bestemmer dere selv.

Opprett tilganger til Google Cloud for Github Actions

Dersom du har behov til å autentisere deg mot GCP kan du legge til at ditt repo GitHub kan autentisere seg mot Google Cloud med en bestemt bruker. Da må man sette opp Workload Identity Federation . Dette er noe SKIP ordner for produktteamene på en automatisert måte ved hjelp av Terraform.

Ønsker du å legge til et nytt repo kan du opprette en Pull Request for dette repoet: https://github.com/kartverket/gcp-service-accounts

Eksempel på liste over GitHub repoer for KomReg: https://github.com/kartverket/gcp-service-accounts/blob/main/modules.tf

module "komreg" {
source = "./project_team"
team_name = "KomReg"
repositories = [
"kartverket/komreg-frontend",
"kartverket/komreg-backend",
"kartverket/komreg-frontend-api", # Legg til flere repoer i denne listen
]
env = var.env
project_id = var.komreg_project_id
kubernetes_project_id = var.kubernetes_project_id
can_manage_log_alerts_and_metrics = true
can_manage_sa = true
extra_team_sa_roles = [
"roles/resourcemanager.projectIamAdmin",
"roles/secretmanager.admin",
"roles/storage.admin"
]
}

Når PR’en merges inn vil det ved et nytt team bli opprettet en deploy-servicekonto, som heter <teamnavn>-deploy@<prosjekt-id>.iam.gserviceaccount.com . Denne servicekontoen tillater at github-repoene i listen har lov til å etterligne den og dens tilganger.

Mer informasjon om Github Actions: GitHub Actions som CI/CD