İçeriğe geç

Bir PR'ı inceleme ve birleştirme

Bu kılavuz, bir pull request’i nasıl inceleyeceğinizi ve birleştireceğinizi gösterir.

  1. Kenar çubuğunda Pull request’ler bölümüne gidin
  2. Listeden bir PR seçin

Bir PR, tek bir sayfa olarak değil, sekmeli bir çalışma tezgahı olarak açılır. Varsayılan olarak bu sırayla beş sekme açılır: Genel bakış, Fark, Kaynak denetimi, Sohbet ve Eylemler (iş akışına göre gruplanmış CI kontrolleri). İncele — inceleme pipeline’ının ilerlemesi, ardından yayınladığı yapıt ve bulgular şeridi — bilinçli olarak bunlardan biri değildir: biri istemedikçe bir PR’ın incelemesi olmaz, dolayısıyla onu AI’ya sor açar. Bir terminal, tek dosyalık bir düzenleyici, gömülü bir code-server ve uygulama içi bir tarayıcı istek üzerine açılır; PR’da bir önizleme URL’si algılandığında dağıtım önizlemesi sekmeleri otomatik olarak eklenir. Sekme düzeniniz her PR için hatırlanır.

Genel bakış sekmesi, PR’ın üst verilerini (yazar, dal, etiketler, atananlar, tepkiler, commit’ler, kontrol durumu) ve eylem satırını taşır: yenile, İncele, Birleştir, IDE’de aç ve bir ⋯ taşma menüsü.

PR’ın farkının tamamını tek seferde görmek için Fark sekmesini açın; dosyalar arasında geçiş yapmak için de bir dosya ağacı vardır.

  • Fark araç çubuğundaki ayarlar düğmesi Bölünmüş (yan yana) ve Birleşik görünüm arasında geçiş yapar; satır kaydırmayı ve kod yazı tipi ligatürlerini açıp kapatır.
  • @@ hunk başlıklarının yerini, tıklandığında çevredeki bağlamı yerine ekleyen Show N lines / Show end of file öğeleri alır.
  • Dosyalar arasında adım adım ilerlemek için j / k, odaktaki dosyayı daraltmak veya genişletmek için c, kenar çubuğunu dosya ağacına döndürmek için t ve farkın tamamında arama yapmak için ⌘F tuşlarına basın (Enter / Shift+Enter eşleşmeler arasında gezinir).
  • Odaktaki dosyayı görüntülendi olarak işaretlemek için v tuşuna basın; imleç bir sonraki dosyaya ilerler. GitHub’da görüntülendi durumu forge’da saklanır, böylece istemciler arasında sizi takip eder; GitLab ve Bitbucket’ta böyle bir API yoktur, dolayısıyla orada yalnızca bu cihazda hatırlanır.

Kod alanında fareyle sürüklemek metni tam sütuna kadar seçer ve ⌘C, işlenmiş fark işaretleri yerine ham kaynağı kopyalar.

  1. Bir kod satırının kenarındaki boşluğa dokunarak o satıra sabitlenmiş bir yorum kutusu açın ya da dosya düzeyinde bir yorum için dosya başlığındaki + düğmesini kullanın
  2. Geri bildiriminizi Markdown ile yazın
  3. Gönderin

GitHub ve GitLab’da yorum kutusu iki gönderme seçeneği sunar: Tek yorum ekle hemen gönderir; İnceleme başlat / İncelemeye ekle ise yorumu, Onayla, Değişiklik iste veya Yorum ile gönderilen bekleyen bir incelemeye kuyruklar. Bitbucket’ta bekleyen incelemeleri toplu gönderme yoktur; bu yüzden orada her gönderme anında iletilir. Anında gönderilen bir yorum, forge onaylayana kadar beklemede durumu gösterir, ardından eşitlendi durumuna geçer. Gönderim başarısız olursa yorum dizisi hatayla işaretlenir ve yeniden deneme sunar.

Yalnızca inceleme gövdesi bir taslaktır: yazmayı bıraktıktan bir an sonra sunucu tarafında (owner, repo, PR numarası) karşılığına kaydedilir; böylece bir yeniden yüklemeden sonra da kalır ve masaüstü ile web istemcileri arasında sizi takip eder.

  1. Genel bakış sekmesinin eylem satırında İncele düğmesine basın (kendi PR’larınızda ve kapatılmış ya da birleştirilmiş bir PR’da gizlidir)
  2. İnceleme gövdesini yazın. Bir görsel ekleyebilir, bir emoji veya GIF yerleştirebilir ve yazma ile önizleme arasında geçiş yapabilirsiniz
  3. Değişiklik iste, Yorum veya Onayla düğmesine basın

Karar düğmenin kendisidir — ayrı bir karar seçici yoktur. Onayla veya Değişiklik iste işleminden sonra düğme kendini Onaylandı ya da İstenen değişiklikler olarak yeniden adlandırır ve taslak gövde temizlenir. Yorum kararı düğmeyi İncele olarak bırakır.

Birleştir düğmesi, yazma erişiminiz olduğunda ve PR açık ve taslak olmadığında görünür. Rengi, gerekli onaylardan ve kontrol durumundan (hazır / beklemede / engellendi) türetilen bir hazır olma sinyalidir — yalnızca tavsiye niteliğindedir. Düğme hiçbir zaman inceleme durumu nedeniyle devre dışı kalmaz; kuralları uygulayan şey forge’un kendi dal korumasıdır.

  1. Birleştirme açılır panelini açmak için Birleştir düğmesine basın
  2. Bir birleştirme yöntemi seçin: squash, merge commit ya da rebase (varsayılan squash’tır). Bitbucket’ta gerçek bir rebase birleştirmesi yoktur; bu yüzden rebase, onun fast-forward stratejisine eşlenir ve dalları ayrışmış bir dalda başarısız olur
  3. squash ve merge commit için önceden doldurulmuş commit başlığını ve açıklamasını düzenleyin. rebase ikisini de almaz ve her iki alanı da gizler
  4. Uyarılar panelini okuyun — başarısız kontrolleri ve bekleyen incelemeleri adlarıyla belirtir, ancak sizi engellemez
  5. Onaylamak için açılır paneldeki birleştirme düğmesine basın

Birleştirme geri alınamaz: commit’leri forge’a iter; bu yüzden geri alma girdisi yerine bir onay adımı alır. Ardından PR’ın önbelleği geçersiz kılınır, durumu Birleştirildi olarak değişir ve durumu merged olan bir PullRequestStatusChanged olayı tetiklenir. Bu olay geçici “open in editor” çalışma ağacını serbest bırakır ve iki yerleşik pipeline’ı başlatır: PR’ın bayat çalışma ağaçlarını ve konuşma klasörlerini kaldıran Stale repository cleanup ve bir değişiklik günlüğü girdisinin taslağını hazırlayan Release notes.

Genel bakış sekmesindeki ⋯ taşma menüsü, bu PR için yerleşik pr_review pipeline’ını başlatan AI’ya sor seçeneğini taşır. Yalnızca PR açıkken görünür. Pipeline’ın ne yaptığını ve bulgularını nasıl yayınlayacağınızı YZ destekli inceleme kullanma sayfasında, deterministik kohort ve eksen modelini ise İnceleme hesaplaması sayfasında görebilirsiniz.

Control Center, uygulama dışında insanlar tarafından açılan PR’ları da içe aktarır. Yukarıdaki inceleme akışı aynıdır. Harici PR’lar, PR yoklama hizmeti tarafından algılanır.