Approval (godkännande) — är bekräftelsen i GitHub, GitLab eller Bitbucket att en pull request har genomgått code review och kan slås samman till målgrenen. Ägaren av repot konfigurerar antalet obligatoriska godkännanden, efter vilka PR låses upp för merge. Enligt GitHubs dokumentation (2026), under granskningsprocessen kan granskaren lämna kommentarer, begära ändringar (Request Changes) eller godkänna PR (Approve). Approval är inte bara en formalitet utan också en juridisk handling: granskaren tar ansvar för kvaliteten på den accepterade koden.
Huvudpunkter
Godkännande (approval) — är en positiv granskning av en pull request, vilket innebär att granskaren har kontrollerat koden, inte hittat kritiska problem och anser ändringarna redo för sammanslagning. I GitHub-gränssnittet är detta den gröna knappen «Approve» på PR-sidan. Efter godkännande kan författaren (eller vilken deltagare som helst med skrivrättigheter) utföra merge.
Godkännandeprocessen är en del av Branch Protection Rules. Repo-ägare konfigurerar obligatoriska krav: minsta antal godkännanden (t.ex. 1 eller 2), vem som kan godkänna (kodägare, teammedlemmar) och om PR måste godkännas på nytt efter ändringar (Dismiss stale reviews). Utan att konfigurera regler är godkännande ett valfritt steg, men i professionella team är det obligatoriskt.
GitLab använder en liknande mekanism som kallas Approval Rules. I GitLab kan du konfigurera hur många godkännanden som krävs från olika grupper (t.ex. 2 från backend-utvecklare och 1 från DevOps). Efter att ha mottagit alla obligatoriska godkännanden låses PR automatiskt upp för merge under förutsättning av en grön CI/CD-pipeline.
I GitHub och GitLab finns tre typer av granskning som en granskare kan lämna på en pull request. Varje typ har olika status och konsekvenser för sammanslagningsprocessen. Approve — grön, Request Changes — röd, Comment — neutral grå. Valet av typ beror på kodens kvalitet och ändringarnas beredskap för acceptans.
Approve — granskaren bekräftar: koden är korrekt skriven, följer standarder, innehåller inga uppenbara fel och kan slås samman. Approve betyder inte att koden är idealisk — bara att den är tillräckligt bra för produktion. Om det finns mindre anmärkningar (stil, namngivning) kan de lämnas som kommentarer utan att blockera PR.
Request Changes — granskaren hittar problem som måste åtgärdas före merge: logiska fel, sårbarheter, arkitekturöverträdelser, saknade tester. Efter Request Changes blockeras PR och för upplåsning krävs ett nytt godkännande från samma granskare (om alternativet Dismiss stale reviews är aktiverat för nya commits).
Branch Protection Rules — är mekanismen i GitHub för kvalitetskontroll av sammanslagningar. Konfigureras i Settings → Branches för varje skyddad gren (main, develop, release/*). Huvudparametrar: antal obligatoriska godkännanden, kodägare (CODEOWNERS), obligatorisk CI/CD-kontroll och förbud mot push utan PR.
Parametern Dismiss stale pull request approvals — tar automatiskt bort godkännanden om en ny commit läggs till i PR. Detta garanterar att granskare godkänner exakt den kodversion som kommer att slås samman. Utan denna inställning kan författaren lägga till ny kod efter godkännande och den hamnar i main utan ny kontroll.
CODEOWNERS — en fil i repo-roten som utser ansvariga för olika kataloger. Om PR påverkar filer som tillhör en kodägare blir hans godkännande obligatoriskt. CODEOWNERS fördelar ansvarsområden: iOS-utvecklaren ansvarar för Swift-filer, DevOps — för Docker-konfigurationer, testare — för testscenarier.
# Exempel på CODEOWNERS-fil i repo-roten
# iOS-utvecklare äger Swift-kod
*.swift @team/ios-developers
# DevOps äger CI/CD-konfiguration
.github/workflows/* @devops-team
# QA-ingenjörer granskar tester
**/tests/* @qa-engineers
# Standardägare för allt annat
* @tech-leads
Code review före godkännande — är en systematisk kontroll av koden, inte en ytlig titt på diff. En kvalitativ code review omfattar kontroll av arkitektur, logik, stil, tester och säkerhet. Utan denna kontroll blir godkännande en formalitet, inte ett verktyg för kvalitetskontroll.
Vad kontrolleras först: logiken i ändringarna — löser koden den givna uppgiften, finns det biverkningar, är hanteringen av gränsfall korrekt. Tester — täcker de nya testerna alla scenarier, passerar befintliga tester efter ändringarna. Säkerhet — finns det SQL-injektioner, XSS, läckage av känsliga data.
Vad inte bör vara föremål för granskning: formateringsstil (för det finns linters och formatters), arkitektoniska beslut som tagits i förväg (de diskuteras innan kod skrivs). Om granskningen har mer än 400 rader eller tar längre tid än en timme — är detta en signal om att uppgiften är för stor och kräver nedbrytning. Bästa praxis för granskning — portioner på 200–400 rader inom 24 timmar efter att PR skapats.
Ett typiskt arbetsflöde med godkännande i ett team på 5–10 utvecklare ser ut så här: utvecklaren skapar en PR, utser granskare (vanligtvis 1–2 personer från teamet eller kodägare), CI/CD startar automatiska kontroller. Efter att ha mottagit alla obligatoriska godkännanden och grön CI utför författaren merge. Tiden från PR-skapande till merge är i genomsnitt 2 timmar till 2 dagar beroende på komplexitet.
GitHub Actions möjliggör automatisering av merge efter godkännande. Om grenregler är konfigurerade blockerar GitHub själv merge tills alla villkor är uppfyllda. Vissa team använder bors-ng eller Mergify — botar som automatiskt slår samman PR efter att alla godkännanden mottagits och CI passerat. Detta snabbar upp processen och eliminerar den mänskliga faktorn vid merge.
Modernt tillvägagångssätt — trunk-based development med kortlivade grenar. I detta arbetsflöde måste godkännande erhållas inom några timmar, annars anses uppgiften föråldrad och kräver ny synkronisering med main. Team med hög granskningskultur strävar efter en godkännandetid på högst 4 arbetstimmar.
Vanligaste misstaget — formellt godkännande utan verklig kodkontroll. När PR är stor eller deadline närmar sig kan granskaren trycka på Approve utan att fördjupa sig i ändringarna. Detta devalverar hela code review-processen. Lösning: sätt en gräns för PR-storlek (högst 400 rader) och använd kodanalysverktyg (SonarQube, CodeClimate) för automatisk kontroll.
Andra misstaget — alltför strikt godkännande. Att förvänta sig idealisk kod blockerar utvecklingen. Granskare kräver ibland korrigering av stilistiska anmärkningar som inte påverkar kvaliteten. Lösning: separera tydligt obligatoriska anmärkningar (blockerande) och valfria förslag (kommentarer). GitHub gör det möjligt att uttryckligen ange om en kommentar är blockerande.
Tredje misstaget — godkännande utan CI/CD-kontroll. Även om koden ser korrekt ut kan den inte kompilera eller misslyckas i tester. Konfigurerad Branch Protection blockerar automatiskt merge vid röd CI, men vissa team stänger av detta skydd för hastighet. Lösning: kontrollera alltid CI-status före godkännande och godkänn aldrig en PR med röd pipeline.
Vanliga frågor
Godkänna — godkänna en pull request i GitHub/GitLab efter code review genom att trycka på Approve. Det innebär att koden har kontrollerats, följer standarder och är redo för sammanslagning. Godkännande är ett obligatoriskt villkor för merge i skyddade grenar med konfigurerade Branch Protection-regler.
Beror på repots regler. Minimistandard — 1 godkännande från en granskare som inte är författaren. För kritiska komponenter (betalningsmoduler, säkerhet) kan 2–3 godkännanden krävas. Antalet konfigureras i Branch Protection Rules GitHub eller Approval Rules GitLab.
Approve — koden är redo för sammanslagning, anmärkningar är valfria. Request Changes — koden innehåller problem som måste åtgärdas obligatoriskt, PR blockeras till ny granskning. Vid Request Changes är merge omöjligt, vid Approve — tillgängligt efter CI/CD-kontroller.
Nej, författaren kan inte godkänna sin egen PR — detta strider mot principen om oberoende granskning. GitHub blockerar denna möjlighet på gränssnittsnivå. Även om repots inställningar inte förbjuder det, anses författarens godkännande inte giltigt eftersom det inte har skett någon extern kodkontroll.
Dismiss stale review — ett Branch Protection-alternativ som automatiskt tar bort godkännanden när nya commits läggs till i PR. Säkerställer att granskare godkänner den aktuella kodversionen. Utan detta alternativ kan författaren ändra koden efter godkännande och ändringarna hamnar i main utan ytterligare kontroll.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också