Pull Request: nədir, yaradılma prosesi və code review

Müəllif: IT Sectr Dərc olunub: 2026-05-10 Oxuma vaxtı: 10 dəq

Pull Request (PR) “ Git-də birgə iş mexanizmidir və tərtibatçıya komandaya dəyişikliklərin əsas budağa birləşdirilməyə hazır olduğunu bildirməyə imkan verir. PR kod müzakirəsini, avtomatik CI/CD yoxlamalarını və code review prosesini əhatə edir. GitHub Docs, 2026-ya görə, platformada hər ay 150 milyondan çox Pull Request yaradılır.

Başlıca məqamlar

  • Pull Request — müzakirə və review mexanizmi ilə dəyişikliklərin birləşdirilməsi sorğusu
  • Code review — PR-in məcburi hissəsi: rəyçilər birləşdirmədən əvvəl kodu yoxlayır
  • CI/CD inteqrasiyası — PR yaradılarkən avtomatik yoxlamalar (testlər, linterlər) işə salınır
  • Platformalar — GitHub, GitLab, Bitbucket PR idarəetməsi üçün interfeys təqdim edir
  • Best practices — kiçik PR-lar, aydın təsvir, sürətli əks əlaqə

Pull Request nədir?

Pull Request (PR) — paylanmış versiya idarəetmə sistemi çərçivəsində bir budaqdan digərinə dəyişikliklərin daxil edilməsi üçün formal sorğudur. PR GitHub, GitLab və Bitbucket platformalarında birgə tətbiq inkişafın mərkəzi elementidir və kod müzakirəsini, avtomatik testi və dəyişikliklərin təsdiq prosesini birləşdirir.

“Pull Request” adı əməliyyatın mahiyyətini əks etdirir: tərtibatçı depozitorinin sahibindən dəyişikliklərini “götürməyi” (pull) xahiş edir (request). Termin 2008-ci ildə GitHub tərəfindən təqdim edilmişdir — bundan əvvəl oxşar mexanizm yamalar və merge request (GitLab termini) şəklində mövcud idi. Hal-hazırda PR komanda ilə Git işi üçün de fakto standartdır.

GitHub Octoverse, 2025-ə görə, açıq mənbəli layihələrin 89%-i dəyişikliklər etmək üçün PR yaradılmasını tələb edir. Korporativ inkişafda bu göstərici 95%-ə çatır. PR təkcə texniki vasitə deyil, həm də inkişaf mədəniyyətinin bir hissəsinə çevrilmişdir: PR vasitəsilə bilik ötürülməsi, səhvlərin aşkarlanması və memarlıq qərarlarının razılaşdırılması baş verir.

Pull Request-in komponentləri

Adi bir PR başlıq, təsvir, dəyişdirilmiş faylların siyahısı (diff), rəyçilərin şərhləri və CI yoxlama statuslarından ibarətdir. Hər bir PR mənbə və hədəf budağına bağlıdır və birləşdirmədən sonra avtomatik silinə bilər.

Pull Request necə yaradılır

PR yaratmaq xüsusiyyət budağının uzaq depozitoriyada dərc edilməsi ilə başlayır. Push-dan sonra tərtibatçı platformanın interfeysi və ya CLI (gh, glab) vasitəsilə PR açır. Prosesi GitHub nümunəsində nəzərdən keçirək.

Budağı push etmək və PR-in açılması

İlk addım — xüsusiyyət budağını uzaq depozitoriyaya push edib veb interfeys və ya əmr sətri vasitəsilə Pull Request yaratmaqdır.

bash
# Xüsusiyyət budağını yaradın və push edin
git checkout -b feature/biometric-auth
git add src/auth/
git commit -m "feat: add biometric authentication"
git push -u origin feature/biometric-auth

# GitHub CLI vasitəsilə PR yaradın
gh pr create --title "feat: add biometric authentication" \
  --body "Implements fingerprint and face recognition login.
  Closes #142" \
  --base develop

PR yaradıldıqdan sonra GitHub avtomatik olaraq CI pipeline-ları (GitHub Actions) işə salır, hədəf budaqla konfliktləri yoxlayır və rəyçiləri dəvət edir. PR təsviri şablonu .github/PULL_REQUEST_TEMPLATE.md vasitəsilə konfiqurasiya edilə bilər ki, bütün PR-lar məcburi bölümələri ehtiva etsin: məqsəd, dəyişikliklər, test etmə, əlaqəli tapşırıqlar.

Təsvir və etiketləmə

Keyfiyyətli PR təsviri daxildir: tapşırığa keçid (issue/ticket), dəyişikliklərin qısa təsviri, test təlimatı və əlaqəli dəyişikliklərin siyahısı. Etiketlər (bug, feature, refactoring) PR-ları kateqoriyalara ayırmağa kömək edir, təyin edilmiş şəxslər və rəyçilər isə avtomatik olaraq CODEOWNERS vasitəsilə təyin edilir.

bash
# CODEOWNERS vasitəsilə rəyçiləri təyin edin (depozitorinin kök kataloqundakı fayl)
# Nümunə .github/CODEOWNERS:
# src/auth/ @team-auth @senior-dev
# src/api/ @team-backend
# *.kt @kotlin-team

# Gh cli vasitəsilə rəyçilərin təyini ilə PR yaradın
gh pr create --reviewer "team-auth" --label "feature"

CODEOWNERS — dəyişdirilmiş fayllardan asılı olaraq rəyçilərin avtomatik təyini üçün GitHub/GitLab standart mexanizmidir. Məsələn, src/auth/ kataloqundakı hər hansı dəyişiklik avtomatik olaraq team-auth və senior-dev-i rəyçi kimi təyin edir. Bu, prosesi sürətləndirir və lazımi şəxslərin PR-i görməsini təmin edir.

Review-dan sonra PR-in yenilənməsi

Rəyçinin şərhlərini aldıqdan sonra tərtibatçı eyni xüsusiyyət budağında düzəlişlər edir və yeni commit-ləri push edir — PR avtomatik olaraq yenilənir. PR artıq açıqdırsa, dərc edilmiş xüsusiyyət budağında tarixçəni (rebase) yenidən yazmamaq vacibdir, çünki bu, şərhlərdəki konkret commit-lərə keçid lənkini qırar.

bash
# Rəyçinin şərhlərinə əsasən dəyişikliklər edin
git checkout feature/biometric-auth
# kodu düzəldin
git commit -m "fix: handle biometric timeout per review"
git push

# PR avtomatik yenilənəcək
# Təsdiqdən sonra — PR-i GitHub interfeysi vasitəsilə birləşdirin

Code review prosesi

Code review — Pull Request-in mərkəzi elementidir. Rəyçi dəyişiklikləri düzgünlük, kod stili, təhlükəsizlik və memarlıq uyğunluğu baxımından yoxlayır. Keyfiyyətli review nəinki səhvlərin qarşısını alır, həm də komanda daxilində kod bazası haqqında bilikləri yayır.

Google Engineering Practices (2025) aşağıdakı code review prinsiplərini tövsiyə edir: rəyçi dəyişikliklərin kontekstini başa düşməli, ümumi qeydlər əvəzinə konkret tövsiyələr verməli, texniki və stilistik şərhləri ayırmalıdır. Review müddəti PR-in yaradılmasından 24 saat çox olmamalıdır.

Mobil tətbiq inkişafı üçün code review spesifik yoxlamaları əhatə edir: targetSdk ilə uyğunluq, lifecycle (Android) / view lifecycle (iOS) idarəsinin düzgünlüyü, yaddaş sızıntılarının olmaması (LeakCanary, Instruments), qaranlıq rejim və lokalizasiya dəstəyi. Bu yoxlamalar linterlər və Detekt/ktlint vasitəsilə avtomatlaşdırıla bilər.

Şerh növləri

PR platformaları üç növ şərhi dəstəkləyir: ümumi (bütün PR-ə aid), sətirli (konkret kod sətrinə aid) və təkliflər (əvəz ediləcək kodla birlikdə suggestions). Təkliflər dəyişikliyi bir kliklə tətbiq etməyə imkan verir, bu da prosesi sürətləndirir və iterasiyaların sayını azaldır.

Bütün şərhlər həll edildikdən və CI yoxlamaları keçdikdən sonra, rəyçi təsdiq (Approved) göndərir. PR birləşdirilə bilər. GitHub və GitLab budaq qoruma qaydalarını (branch protection rules) dəstəkləyir: məcburi təsdiqlərin sayı, məcburi CI yoxlamaları, PR olmadan main-ə push qadağası. Mobil layihələr üçün branch protection həmçinin build yoxlamasını əhatə edir: tətbiq qurulmursa PR birləşdirilə bilməz (gradle build failed / xcodebuild failed).

PR-də konfliktlərin həlli

Merge konfliktləri Pull Request-də aktiv komanda işində adi haldır. Platformalar sadə konfliktlər üçün veb interfeys vasitəsilə həll təklif edir və ya lokal həll etməyi tövsiyə edir. GitHub Actions hər push-da feature budağının birləşdirilmə qabiliyyətini avtomatik yoxlayır və birləşdirmə mümkün deyilsə, PR-ı conflict kimi qeyd edir.

Pull Request üçün ən yaxşı təcrübələr

Effektiv Pull Request-lər code review-i sürətləndirir və səhvlərin sayını azaldır. SmartBear (2025) tədqiqatı göstərdi ki, 200 sətirə qədər kod olan PR-lar 1000 sətirdən çox PR-lardan 2 dəfə çox məzmunlu şərh alır və review müddəti 3 dəfə qısalır.

  • Kiçik PR-lar — optimal ölçü 100-300 sətir. Böyük PR-ları məntiqi hissələrə bölün: hər bir PR bir tapşırığı həll edir. Bu review-i sadələşdirir və konflikt ehtimalını azaldır
  • Aydın təsvir — başlıq Conventional Commits-ə uyğun (feat:, fix:, refactor:), PR-in məzmunu “nə və niyə”-ni ehtiva edir, “necə”-ni yox (kod özü üçün danışır). Şablon: məqsəd → dəyişikliklər → test etmə → əlaqəli tapşırıqlar
  • Sürətli əks əlaqə — 24 saat ərzində review. PR bir gündən çox gözləyirsə — komanda konteksti itirir, merge zamanı konfliktlərin sayı artır
  • Avtomatlaşdırma — linterlər, formatlayıcılar və testlər PR yaradılarkən avtomatik işə düşməlidir. Qırmızı CI yoxlamaları olan PR-in birləşdirilməsinə icazə verməyin
  • Draft PR — memarlığın erkən müzakirəsi üçün istifadə edin. Draft PR review tələb etmir və birləşdirilə bilməz, lakin kodu erkən mərhələdə hümkarlara göstərməyə imkan verir

Əlavə təcrübələr: cümə axşamı PR yaratmayın (heç kəs bazar ertəsinə qədər review etməyəcək), 1-2 nəfərdən review istəyin (daha çoxu prosesi ləngidir, keyfiyyəti artırmır), birləşdirmədən əvvəl tərixçəni sıxmaq üçün squash merge istifadə edin. Mobil layihələr üçün PR təsvirinə test build linki (Firebase App Distribution / TestFlight) əlavə etmək tövsiyə olunur ki, rəyçi dəyişiklikləri işləyən tətbiqdə yoxlaya bilsin.

Müxtəlif platformalarda Pull Request

Əsas platformalar — GitHub, GitLab və Bitbucket. Ümumi konsepsiyaya baxmayaraq, hər birinin komanda üçün alət seçərkən nəzərə alınmalı xüsusiyyətləri var.

XarakteristikaGitHubGitLabBitbucket
AdıPull RequestMerge RequestPull Request
CI/CDGitHub ActionsGitLab CI/CDBitbucket Pipelines
Code ownersCODEOWNERSCODEOWNERSCODEOWNERS
Auto-mergeBəliBəliBəli
Squash mergeBəliBəliBəli
XüsusiyyətiƏn böyük icmaSelf-hosted + CI/CDJira inteqrasiyası

GitHub — ən böyük icması, CI/CD üçün Actions və geniş tətbiq ekosistemi (GitHub Marketplace) olan ən məşhur platforma. GitLab daxili CI/CD və tam self-hosted yerləşdirmə imkanı ilə seçilir. Bitbucket Jira və Atlassian ekosistemi ilə sıx inteqrasiya olunub, korporativ mühitdə məşhurdur.

Mobil tətbiq inkişafı üçün platforma seçimi çox vaxt CI/CD imkanları ilə müyyən edilir: GitHub Actions iOS qurulması üçün macOS runners dəstəkləyir, GitLab iOS/Android üçün daxili runners-lara malikdir, Bitbucket Firebase Test Lab ilə yaxşı inteqrasiya olunur. Platformadan asılı olmayaraq, PR prosesi eyni qalır: budaq → review → CI → merge.

Tez-tez verilən suallar

Pull Request Merge Request-dən nə ilə fərqlənir?

Yalnız adı ilə. GitHub Pull Request terminindən, GitLab isə Merge Request (MR) terminindən istifadə edir. Funksionallıq eynidir: müzakirə, review və CI yoxlamaları ilə dəyişikliklərin birləşdirilməsi sorğusu. Bitbucket də GitHub kimi Pull Request istifadə edir.

PR-ə neçə rəyçi təyin edilməlidir?

Optimal — 1-2. Bir rəyçi məntiqi və memarlığı yoxlayır, ikincisi — təhlükəsizliyi və ya spesifik sahəni (UI, məlumat bazası). Daha çox rəyçi keyfiyyəti əhəmiyyətli dərəcədə artırmadan prosesi ləngidir.

PR-i code review olmadan etmək olarmı?

Texniki cəhətdən bəli, əgər budaq qoruma qaydaları təsdiq tələb etmirsə. Lakin bu pis təcrübədir: hətta təcrübəli tərtibatçılar da səhvləri buraxır. İstisnalar — post-review ilə hotfix, cüzəvi dəyişikliklər (səhv yazılar, asılılıq versiyaları).

PR hədəf budaqla konflikt edərsə nə etməli?

Konflikti həll edin merge və ya rebase vasitəsilə. GitHub və GitLab sadə konfliktlərin həlli üçün veb interfeys təklif edir. Mürəkkəb hallarda — git merge target-branch lokal olaraq icra edin, konflikti həll edin və dəyişiklikləri push edin.

PR birləşdirildikdən sonra budağı silmək lazımdırmı?

Bəli, bu ən yaxşı təcrübədir. GitHub və GitLab merge-dən sonra budağın avtomatik silinməsini təklif edir. Silmə budaqlar siyahısının zibillənməsinin qarşısını alır və tərtibatçıların təsadüfi olaraq artıq birləşdirilmiş budaqda işləməyəcəyini təmin edir.

Nəticələr

  • Pull Request — müzakirə və review ilə Git-də birgə işin əsas mexanizmi
  • PR yaratmaq budağı push etmək, təsviri doldurmaq və rəyçiləri təyin etməkdən ibarətdir
  • Code review — məcburi mərhələ: məntiq, stil, təhlükəsizlik və memarlığın yoxlanması
  • CI/CD — hər PR üçün avtomatik yoxlamalar (testlər, linterlər) işə salınır
  • Ən yaxşı təcrübələr — kiçik PR-lar (300 sətirə qədər), aydın təsvir, 24 saat ərzində review
  • Platformalar — GitHub, GitLab və Bitbucket müxtəlif inteqrasiyalarla oxşar funksionallıq təqdim edir
  • Branch protection — məcburi təsdiqlər və CI yoxlamaları hədəf budağını keyfiyyətsiz dəyişikliklərdən qoruyur

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun