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 (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.
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.
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.
İ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.
# 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.
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.
# 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.
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.
# 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 — 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.
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).
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.
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.
Ə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.
Ə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.
| Xarakteristika | GitHub | GitLab | Bitbucket |
|---|---|---|---|
| Adı | Pull Request | Merge Request | Pull Request |
| CI/CD | GitHub Actions | GitLab CI/CD | Bitbucket Pipelines |
| Code owners | CODEOWNERS | CODEOWNERS | CODEOWNERS |
| Auto-merge | Bəli | Bəli | Bəli |
| Squash merge | Bəli | Bəli | Bəli |
| Xüsusiyyəti | Ən böyük icma | Self-hosted + CI/CD | Jira 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
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.
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.
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ı).
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.
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
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.
Həm də oxuyun