Ana içeriğe geç

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

  1. GitHub hesabınıza giriş yapın ve sağ üstteki profil fotoğrafına tıklayın.
  2. Settings seçeneğine gidin.
  3. Sol menüyü aşağı kaydırarak Developer settings bölümüne gelin.
  4. Personal access tokens → Fine-grained tokens seçeneğine tıklayın.
  5. Generate new token butonuna tıklayın.
  6. Token'a bir Name (isim) verin.
  7. İsteğe bağlı olarak bir Description ve Expiration date ekleyin.
  8. Resource owner olarak ilgili kullanıcıyı veya organizasyonu seçin.
  9. Repository access bölümünde erişim vermek istediğiniz repository'leri seçin.
  10. Permissions (izinler) bölümünden ihtiyaç duyulan izinleri ekleyin:
İzinAçıklama
Contents → Read & WriteDosya okuma ve yazma için
Issues → Read & WriteIssue okuma, oluşturma ve güncelleme için
Pull requests → ReadPull Request listeleme için
Actions → WriteWorkflow tetiklemek için
Metadata → ReadRepository bilgilerine erişmek için
Releases → Read & WriteRelease listeleme ve oluşturma için
  1. 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

  1. SkyStudio'nun sol menüsünden Uygulama Bağlantıları bölümüne gidin.
  2. Yeni Bağlantı Ekle butonuna tıklayın.
  3. Sağlayıcı olarak GitHub seçin.
  4. Aşağıdaki alanları doldurun:
AlanAçıklama
Bağlantı AdıTanımlayıcı bir isim (örn. Şirket GitHub)
Personal Access TokenOluşturduğunuz ghp_... token'ı
Default Owner (user/org)Varsayılan GitHub kullanıcı adı veya organizasyon adı (örn. myorg veya myusername)
  1. 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:

OperasyonKategoriAçıklama
Repository ListeleÖne ÇıkanBir kullanıcının veya organizasyonun repository'lerini listeler
Issue ListeleÖne ÇıkanRepository'deki issue'ları listeler
Pull Request ListeleÖne ÇıkanRepository'deki Pull Request'leri listeler
Workflow TetikleÖne ÇıkanGitHub Actions workflow'unu tetikler
GitHub AI AsistanÖne ÇıkanDoğal dil sorgusuyla GitHub verilerini sorgular
Repository DetayıStandartBir repository'nin detaylı bilgilerini getirir
Issue OluşturStandartYeni bir issue oluşturur
Issue GüncelleStandartMevcut bir issue'yu günceller
Yorum EkleStandartIssue veya PR'a yorum ekler
Commit ListeleStandartRepository'deki commit geçmişini listeler
Branch ListeleStandartRepository'deki branch'leri listeler
Dosya İçeriği GetirStandartRepository'deki bir dosyanın içeriğini getirir
Dosya Oluştur / GüncelleStandartDosya oluşturur veya mevcut dosyayı günceller
Release ListeleStandartRepository'deki release'leri listeler
Release OluşturStandartYeni bir release oluşturur

Repository Listele

Bir kullanıcının veya organizasyonun sahip olduğu repository'leri listeler.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
Owner (user/org)HayırListelenecek kullanıcı veya organizasyon adı (boş = Default Owner)
TypeHayırRepository tipi: all, public, private, forks, sources
LimitHayırDöndürülecek maksimum repository sayısı

Issue Listele

Repository'deki issue'ları filtreli olarak listeler.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi (boş = Default Owner)
RepositoryEvetRepository adı (örn. my-repo)
StateHayırIssue durumu: open, closed, all
Labels (CSV)HayırFiltrelenecek etiketler (virgülle ayrılmış, örn. bug,enhancement)
AssigneeHayırAtanan kişinin kullanıcı adı
LimitHayırDöndürülecek maksimum issue sayısı

Pull Request Listele

Repository'deki Pull Request'leri listeler.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi (boş = Default Owner)
RepositoryEvetRepository adı
StateHayırPR durumu: open, closed, all
Base BranchHayırHedef branch (örn. main)
LimitHayırDöndürülecek maksimum PR sayısı

Workflow Tetikle

GitHub Actions'ta tanımlı bir workflow'u workflow_dispatch olayıyla tetikler.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
Workflow ID or FilenameEvetWorkflow ID'si veya YAML dosya adı (örn. deploy.yml)
Branch / TagHayırTetiklenecek branch veya tag (örn. main)
Inputs (JSON)HayırWorkflow'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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
QueryEvetDoğal dilde GitHub sorgusu
System PromptHayırAI 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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı

Issue Oluştur

Belirtilen repository'de yeni bir issue oluşturur.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
TitleEvetIssue başlığı
BodyHayırIssue açıklaması (Markdown destekler)
Labels (CSV)HayırEklenecek etiketler (örn. bug,enhancement)
Assignees (CSV)HayırAtanacak kullanıcı adları (örn. user1,user2)

Issue Güncelle

Mevcut bir issue'nun başlık, açıklama, durum veya etiketlerini günceller.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
Issue NumberEvetGüncellenecek issue'nun numarası
TitleHayırYeni başlık
BodyHayırYeni açıklama
StateHayırYeni durum: open veya closed
Labels (CSV)HayırGüncellenmiş etiketler
Assignees (CSV)HayırGüncellenmiş atananlar

Yorum Ekle

Bir issue veya Pull Request'e yorum ekler.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
Issue NumberEvetYorum eklenecek issue veya PR numarası
BodyEvetYorum içeriği (Markdown destekler)

Commit Listele

Repository'deki commit geçmişini listeler.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
BranchHayırBranch adı (boş = varsayılan branch)
LimitHayırDöndürülecek maksimum commit sayısı

Branch Listele

Repository'deki tüm branch'leri listeler.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
LimitHayırDöndürülecek maksimum branch sayısı

Dosya İçeriği Getir

Repository'deki belirli bir dosyanın içeriğini getirir.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
File PathEvetDosyanın repository içindeki yolu (örn. src/main.py)
Branch / RefHayırBranch 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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
File PathEvetOluşturulacak veya güncellenecek dosyanın yolu
ContentEvetDosya içeriği (düz metin veya base64)
Commit MessageEvetCommit mesajı (örn. chore: update config)
BranchHayırHedef branch (boş = varsayılan branch)

Release Listele

Repository'deki release'leri listeler.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
LimitHayırDöndürülecek maksimum release sayısı

Release Oluştur

Yeni bir GitHub release oluşturur.

Parametreler

ParametreZorunluAçıklama
ConnectionEvetKullanılacak GitHub bağlantısı
OwnerHayırRepository sahibi
RepositoryEvetRepository adı
Tag NameEvetRelease tag'i (örn. v1.2.0)
NameHayırRelease başlığı (örn. v1.2.0 - Yeni Özellikler)
BodyHayırRelease notları (Markdown destekler)
DraftHayırAçıksa release taslak olarak kaydedilir
PrereleaseHayırAçı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

HataOlası NedenÇözüm
401 UnauthorizedToken geçersiz veya süresi dolmuşGitHub Settings'ten yeni Fine-grained token oluşturun
403 ForbiddenToken'ın gerekli izni yokToken izinlerini kontrol edin; gerekli permission'ı ekleyin
404 Not FoundRepository bulunamadı veya erişim yokOwner ve Repository adının doğru olduğunu kontrol edin
422 Unprocessable EntityGeç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).