GitHub Node
GitHub node'u, SkyStudio workflow'larında GitHub repository'lerinizle entegrasyon sağlar. Issue ve Pull Request yönetimi yapabilir, dosya içeriklerine erişebilir, workflow'ları tetikleyebilir ve release oluşturabilirsiniz.
Bağlantı Kurulumu ve Yönetimi
GitHub node'unu kullanabilmek için GitHub hesabınızda bir Personal Access Token oluşturmanız gerekir. OAuth veya App Registration gerekmez; yalnızca token ve varsayılan owner bilgisi yeterlidir.
🎬 Videoyu izlemek için tıklayın → []
GitHub Personal Access Token Oluşturma
- GitHub hesabınıza giriş yapın ve sağ üstteki profil fotoğrafına tıklayın.
- Settings seçeneğine gidin.
- Sol menüyü aşağı kaydırarak Developer settings bölümüne gelin.
- Personal access tokens → Fine-grained tokens seçeneğine tıklayın.
- Generate new token butonuna tıklayın.
- Token'a bir Name (isim) verin.
- İsteğe bağlı olarak bir Description ve Expiration date ekleyin.
- Resource owner olarak ilgili kullanıcıyı veya organizasyonu seçin.
- Repository access bölümünde erişim vermek istediğiniz repository'leri seçin.
- Permissions (izinler) bölümünden ihtiyaç duyulan izinleri ekleyin:
| İzin | Açıklama |
|---|---|
Contents → Read & Write | Dosya okuma ve yazma için |
Issues → Read & Write | Issue okuma, oluşturma ve güncelleme için |
Pull requests → Read | Pull Request listeleme için |
Actions → Write | Workflow tetiklemek için |
Metadata → Read | Repository bilgilerine erişmek için |
Releases → Read & Write | Release listeleme ve oluşturma için |
- Generate token butonuna tıklayın ve oluşturulan token'ı kopyalayın (
ghp_ile başlar).
Not: Token yalnızca oluşturulduğu anda tam olarak görüntülenir. Kaybetmeniz durumunda yeniden oluşturmanız gerekir.
SkyStudio'ya Bağlantı Ekleme
- SkyStudio'nun sol menüsünden Uygulama Bağlantıları bölümüne gidin.
- Yeni Bağlantı Ekle butonuna tıklayın.
- Sağlayıcı olarak GitHub seçin.
- Aşağıdaki alanları doldurun:
| Alan | Açıklama |
|---|---|
| Bağlantı Adı | Tanımlayıcı bir isim (örn. Şirket GitHub) |
| Personal Access Token | Oluşturduğunuz ghp_... token'ı |
| Default Owner (user/org) | Varsayılan GitHub kullanıcı adı veya organizasyon adı (örn. myorg veya myusername) |
- Kaydet butonuna tıklayın.
Bağlantıyı Node'a Atama
GitHub node'unu canvas'a ekledikten sonra sağ paneldeki Uygulama Bağlantıları açılır menüsünden kaydettiğiniz bağlantıyı seçin.
İpucu: Default Owner alanı, operasyonlardaki Owner alanı boş bırakıldığında varsayılan olarak kullanılır. Birden fazla organizasyon için ayrı bağlantılar oluşturabilirsiniz.
Operasyonlar
GitHub node'u 15 operasyon sunmaktadır:
| Operasyon | Kategori | Açıklama |
|---|---|---|
| Repository Listele | Öne Çıkan | Bir kullanıcının veya organizasyonun repository'lerini listeler |
| Issue Listele | Öne Çıkan | Repository'deki issue'ları listeler |
| Pull Request Listele | Öne Çıkan | Repository'deki Pull Request'leri listeler |
| Workflow Tetikle | Öne Çıkan | GitHub Actions workflow'unu tetikler |
| GitHub AI Asistan | Öne Çıkan | Doğal dil sorgusuyla GitHub verilerini sorgular |
| Repository Detayı | Standart | Bir repository'nin detaylı bilgilerini getirir |
| Issue Oluştur | Standart | Yeni bir issue oluşturur |
| Issue Güncelle | Standart | Mevcut bir issue'yu günceller |
| Yorum Ekle | Standart | Issue veya PR'a yorum ekler |
| Commit Listele | Standart | Repository'deki commit geçmişini listeler |
| Branch Listele | Standart | Repository'deki branch'leri listeler |
| Dosya İçeriği Getir | Standart | Repository'deki bir dosyanın içeriğini getirir |
| Dosya Oluştur / Güncelle | Standart | Dosya oluşturur veya mevcut dosyayı günceller |
| Release Listele | Standart | Repository'deki release'leri listeler |
| Release Oluştur | Standart | Yeni bir release oluşturur |
Repository Listele
Bir kullanıcının veya organizasyonun sahip olduğu repository'leri listeler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner (user/org) | Hayır | Listelenecek kullanıcı veya organizasyon adı (boş = Default Owner) |
| Type | Hayır | Repository tipi: all, public, private, forks, sources |
| Limit | Hayır | Döndürülecek maksimum repository sayısı |
Issue Listele
Repository'deki issue'ları filtreli olarak listeler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi (boş = Default Owner) |
| Repository | Evet | Repository adı (örn. my-repo) |
| State | Hayır | Issue durumu: open, closed, all |
| Labels (CSV) | Hayır | Filtrelenecek etiketler (virgülle ayrılmış, örn. bug,enhancement) |
| Assignee | Hayır | Atanan kişinin kullanıcı adı |
| Limit | Hayır | Döndürülecek maksimum issue sayısı |
Pull Request Listele
Repository'deki Pull Request'leri listeler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi (boş = Default Owner) |
| Repository | Evet | Repository adı |
| State | Hayır | PR durumu: open, closed, all |
| Base Branch | Hayır | Hedef branch (örn. main) |
| Limit | Hayır | Döndürülecek maksimum PR sayısı |
Workflow Tetikle
GitHub Actions'ta tanımlı bir workflow'u workflow_dispatch olayıyla tetikler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| Workflow ID or Filename | Evet | Workflow ID'si veya YAML dosya adı (örn. deploy.yml) |
| Branch / Tag | Hayır | Tetiklenecek branch veya tag (örn. main) |
| Inputs (JSON) | Hayır | Workflow'a gönderilecek input parametreleri (JSON formatında) |
GitHub AI Asistan
Doğal dil sorgusuyla GitHub verilerini sorgular. Videoda da gösterildiği gibi repository ve issue bilgilerini serbest metin sorgusuyla alabilirsiniz.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Query | Evet | Doğal dilde GitHub sorgusu |
| System Prompt | Hayır | AI asistanının davranışını özelleştiren sistem talimatı |
Kullanım Örneği
Query: "Son açık bug issue'larını listele"
System Prompt: "Yalnızca 'bug' etiketi taşıyan açık issue'ları getir. Türkçe özet yaz."
Repository Detayı
Belirli bir repository'nin detaylı bilgilerini (yıldız sayısı, dil, açıklama vb.) döndürür.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
Issue Oluştur
Belirtilen repository'de yeni bir issue oluşturur.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| Title | Evet | Issue başlığı |
| Body | Hayır | Issue açıklaması (Markdown destekler) |
| Labels (CSV) | Hayır | Eklenecek etiketler (örn. bug,enhancement) |
| Assignees (CSV) | Hayır | Atanacak kullanıcı adları (örn. user1,user2) |
Issue Güncelle
Mevcut bir issue'nun başlık, açıklama, durum veya etiketlerini günceller.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| Issue Number | Evet | Güncellenecek issue'nun numarası |
| Title | Hayır | Yeni başlık |
| Body | Hayır | Yeni açıklama |
| State | Hayır | Yeni durum: open veya closed |
| Labels (CSV) | Hayır | Güncellenmiş etiketler |
| Assignees (CSV) | Hayır | Güncellenmiş atananlar |
Yorum Ekle
Bir issue veya Pull Request'e yorum ekler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| Issue Number | Evet | Yorum eklenecek issue veya PR numarası |
| Body | Evet | Yorum içeriği (Markdown destekler) |
Commit Listele
Repository'deki commit geçmişini listeler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| Branch | Hayır | Branch adı (boş = varsayılan branch) |
| Limit | Hayır | Döndürülecek maksimum commit sayısı |
Branch Listele
Repository'deki tüm branch'leri listeler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| Limit | Hayır | Döndürülecek maksimum branch sayısı |
Dosya İçeriği Getir
Repository'deki belirli bir dosyanın içeriğini getirir.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| File Path | Evet | Dosyanın repository içindeki yolu (örn. src/main.py) |
| Branch / Ref | Hayır | Branch veya commit SHA (boş = varsayılan branch) |
Dosya Oluştur / Güncelle
Repository'ye yeni dosya ekler veya mevcut dosyayı günceller ve otomatik commit oluşturur.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| File Path | Evet | Oluşturulacak veya güncellenecek dosyanın yolu |
| Content | Evet | Dosya içeriği (düz metin veya base64) |
| Commit Message | Evet | Commit mesajı (örn. chore: update config) |
| Branch | Hayır | Hedef branch (boş = varsayılan branch) |
Release Listele
Repository'deki release'leri listeler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| Limit | Hayır | Döndürülecek maksimum release sayısı |
Release Oluştur
Yeni bir GitHub release oluşturur.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak GitHub bağlantısı |
| Owner | Hayır | Repository sahibi |
| Repository | Evet | Repository adı |
| Tag Name | Evet | Release tag'i (örn. v1.2.0) |
| Name | Hayır | Release başlığı (örn. v1.2.0 - Yeni Özellikler) |
| Body | Hayır | Release notları (Markdown destekler) |
| Draft | Hayır | Açıksa release taslak olarak kaydedilir |
| Prerelease | Hayır | Açıksa ön sürüm olarak işaretlenir |
Hızlı Başlangıç Örnekleri
Örnek 1: Açık Issue Günlük Raporu
Her sabah açık bug issue'larını Teams kanalına gönderen workflow:
Schedule (Her sabah) → Issue Listele → LLM (özetle) → Kanala Mesaj Gönder (Teams)
Issue Listele ayarları:
- Repository:
my-repo - State:
open - Labels (CSV):
bug - Limit:
20
Örnek 2: Webhook'tan Otomatik Issue Oluşturma
Bir hata bildirimi geldiğinde GitHub'da otomatik issue açan workflow:
Webhook → LLM (issue içeriği yaz) → Issue Oluştur
Issue Oluştur ayarları:
- Repository:
my-repo - Title:
[Otomatik] {{webhook.hata_tipi}} - Body:
{{llm.output}} - Labels (CSV):
bug,auto-generated
Örnek 3: GitHub AI Chatbot
Kullanıcının doğal dilde GitHub'u sorgulamasını sağlayan chatbot:
Metin Girişi → GitHub AI Asistan → Metin Çıktısı
GitHub AI Asistan ayarları:
- Query:
{{input.text}} - System Prompt:
"Sen bir yazılım geliştirme asistanısın. GitHub repository verilerini kullanarak Türkçe yanıt ver."
Örnek 4: Otomatik Release Notları
Yeni tag push'landığında release notlarını otomatik oluşturan workflow:
Webhook (tag push) → Commit Listele → LLM (release notu yaz) → Release Oluştur
Release Oluştur ayarları:
- Repository:
my-repo - Tag Name:
{{webhook.tag}} - Name:
{{webhook.tag}} - Release - Body:
{{llm.output}}
Sık Karşılaşılan Hatalar
| Hata | Olası Neden | Çözüm |
|---|---|---|
401 Unauthorized | Token geçersiz veya süresi dolmuş | GitHub Settings'ten yeni Fine-grained token oluşturun |
403 Forbidden | Token'ın gerekli izni yok | Token izinlerini kontrol edin; gerekli permission'ı ekleyin |
404 Not Found | Repository bulunamadı veya erişim yok | Owner ve Repository adının doğru olduğunu kontrol edin |
422 Unprocessable Entity | Geçersiz alan değeri (örn. mevcut olmayan label) | Etiket, branch veya kullanıcı adını GitHub'da doğrulayın |
| Repository listeleme boş | Owner yanlış girilmiş | Default Owner ayarını veya Owner alanını kontrol edin |
Notlar
- Owner alanı boş bırakıldığında bağlantıdaki Default Owner değeri kullanılır. Farklı bir organizasyona erişmek için Owner alanını açıkça doldurun.
- Fine-grained token'lar belirli bir repository veya tüm repository'ler için oluşturulabilir. Yalnızca belirli repo'larla çalışacaksanız seçici olun.
- Dosya Oluştur / Güncelle operasyonu mevcut bir dosyayı güncellerken dosyanın son SHA değerini otomatik çeker; manuel SHA girişi gerekmez.
- Token'ın varsayılan geçerlilik süresi 90 gündür (Fine-grained tokens). Süresi dolmadan önce yenilemeniz önerilir.
- Labels (CSV) ve Assignees (CSV) alanları virgülle ayrılmış değerler alır, JSON formatı gerekmez (örn.
bug,wontfix).