Modül 5 · Project management · ⏱ 10 dakika

GitHub'da arama ve filtreler

Search and filters in GitHub

Bu derste neler öğreneceksin

  • GitHub global arama syntax'ını öğrenmek
  • Issue, PR ve repo aramalarında qualifier'ları kullanmak
  • Kod aramasını (code search) ve regex desteğini tanımak
  • Kaydedilmiş aramalar ve bildirim filtrelerini bilmek

GitHub’un güçlü arama sistemi GH-900’de sorulur. Doğru qualifier’ları bilmek, büyük projelerde hızlı navigasyonu sağlar ve sınav senaryo sorularında kritik öneme sahiptir.

Global arama temelleri

GitHub ana arama kutusundan erişilir. Varsayılan olarak tüm GitHub’da arar. Belirli bir repo’da aramak için repo:owner/repo qualifier’ı eklenir.

Issue ve PR arama qualifier’ları

# Açık issue'lar
is:open is:issue

# PR'lar
is:pr is:open

# Bana atanan
is:issue assignee:@me

# Benim oluşturduğum
is:issue author:ydemir

# Bug label'lı
is:issue label:bug

# Belirli repo'da
is:issue repo:owner/repo

# Mention'larım
is:issue mentions:ydemir

# Milestone
is:issue milestone:"v2.0"

# Tarih filtresi
is:issue created:>2024-01-01
is:issue updated:<2024-06-01

# Yorum sayısı
is:issue comments:>10

# Yanıtsız
is:issue no:assignee

# Kapalı PR'lar, merged
is:pr is:merged

# Draft PR'lar
is:pr draft:true

Repo arama qualifier’ları

# JavaScript ile yazılmış
language:javascript

# Yıldız sayısı
stars:>1000
stars:500..2000

# Fork sayısı
forks:>100

# Repo adı
repo:owner/my-repo

# Belirli konu (topic)
topic:machine-learning

# Lisans
license:mit

# Boyut (KB)
size:>5000

# Son push
pushed:>2024-01-01

Kod arama

GitHub’ın yeni nesil kod arama motoru (code search) regex ve path filtreleri destekler:

# Belirli dosyada
path:src/auth.js login

# Belirli uzantıda
extension:ts useState

# Belirli repoda
repo:owner/repo function authenticate

# Regex
/function\s+\w+Auth/

# Dil
language:python import pandas

Kullanıcı ve organizasyon arama

# Kullanıcı
type:user location:Istanbul followers:>100

# Organizasyon
type:org members:>50

Bildirim filtreleri

Bildirimler sayfasında (github.com/notifications):

# Mention'lar
reason:mention

# Atanan
reason:assign

# Review isteği
reason:review-requested

# Belirli repo
repo:owner/repo

# Okunmamış
is:unread

Sınav perspektifinden dikkat noktaları

  • is:pr is:merged — merge edilmiş PR’lar (is:closed ile farklı — kapalı PR merge edilmiş olmayabilir)
  • draft:true — draft PR’ları filtreler
  • assignee:@me — giriş yapan kullanıcıya atananlar
  • Kod araması farklı bir arayüze yönlendirir (github.com/search?type=code)
  • no:label, no:assignee, no:milestone — belirtilen field’ı olmayan item’lar

Pratik arama örnekleri

Sınavda şu tarzda senaryo soruları çıkabilir:

“Takımdaki tüm açık, atanmamış bug issue’larını bulmak için hangi arama kullanılır?”

Cevap: is:open is:issue label:bug no:assignee

“2024’te merge edilen ve test etiketli PR’ları bulun”

Cevap: is:pr is:merged label:test merged:>2024-01-01

Sırada ne var?

Modül 5 tamamlandı. Sonraki modülde gizlilik, güvenlik ve yönetim konularına geçiyoruz.