16 — API ile çalışma
Arayüzde yapabildiğiniz hemen her şey HTTP üzerinden de yapılabilir: yedekleme, raporlama, kendi araçlarınız.
Kimlik doğrulama
Erişim jetonu üretin (bölüm 10) ve her isteğe başlık olarak ekleyin:
TOKEN=jetonunuz
curl -H "Authorization: token $TOKEN" \
https://forge.kabaforce.com/api/v1/user
Jeton, üretirken seçtiğiniz yetkilerle sınırlıdır: salt-okur bir iş için yazma yetkisi vermeyin.
Sık kullanılan uçlar
Tabandaki adres: https://forge.kabaforce.com/api/v1
| Uç | Ne verir |
|---|---|
/user | Jetonun sahibi olan hesap |
/user/repos?limit=50 | Erişebildiğiniz depolar |
/repos/search?q=kelime | Depo arama |
/repos/{sahip}/{depo} | Deponun künyesi |
/repos/{sahip}/{depo}/contents/{yol} | Dosya veya klasör içeriği |
/repos/{sahip}/{depo}/branches | Dallar |
/repos/{sahip}/{depo}/commits?limit=10 | Son işlemeler |
/repos/{sahip}/{depo}/issues?state=open | Açık konular |
/repos/{sahip}/{depo}/releases · /tags | Sürümler ve etiketler |
Listeler sayfalanır: ?page=2&limit=50.
Dosya okuma
curl -H "Authorization: token $TOKEN" \
"https://forge.kabaforce.com/api/v1/repos/sahip/proje/contents/belgeler"
Dönen kayıtta content alanı base64'tür; ham içeriği doğrudan istemek daha kolaydır:
curl -H "Authorization: token $TOKEN" \
https://forge.kabaforce.com/sahip/proje/raw/branch/main/readme.md
Dosya oluşturma ve güncelleme
curl -X POST -H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d '{"content":"aGVsbG8=","message":"not eklendi","branch":"main"}' \
https://forge.kabaforce.com/api/v1/repos/sahip/proje/contents/notlar.md
content base64 kodludur. Var olan bir dosyayı güncellerken PUT kullanın ve dosyanın mevcut sha değerini gönderin — bu, başkasının değişikliğini sessizce ezmenizi engeller.
Konu açma
curl -X POST -H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"giriş sayfası mobilde kayıyor","body":"Adımlar: ..."}' \
https://forge.kabaforce.com/api/v1/repos/sahip/proje/issues
Hata kodları
| Kod | Anlamı |
|---|---|
| 401 | Jeton yok, yanlış veya süresi dolmuş |
| 403 | Jeton geçerli ama bu iş için yetkisi yok |
| 404 | Yol yanlış — ya da özel bir depoya yetkisiz erişim |
| 409 | Çakışma: güncellemede eski sha gönderdiniz |
| 422 | Gövde eksik/hatalı (örneğin başlıksız konu) |
Kurallar
- Jetonu betiğin içine gömmeyin; ortam değişkeninden okuyun.
- Otomasyon için kendi hesabınız yerine dar yetkili ayrı bir jeton üretin.
- İşiniz yalnız okumaksa dağıtım anahtarı da düşünün (bölüm 13).