This page is also available in English. Read in English →
İş takip entegrasyonları
Bir hatayı ekibin iş akışına taşımak için hata detayından tek tıkla GitHub
issue'su, Jira kaydı ya da Linear issue'su açılır. Kayıt hataya bağlanır;
detay sayfasında kayıt numarası (acme/api#42, OPS-17, ENG-123) ve bağlantısı
görünür. Kayıt ile hatanın durumu iki yönlü eşitlenir:
kayıt kapanınca hata çözülür, hata yeniden görülünce kayıt açılır.
Açılan kayıtta şunlar bulunur:
- hatanın başlığı (kayıt başlığı olarak),
- seviye, toplam görülme, ilk ve son görülme, son sürüm, ortam, kaynak çerçeve ve proje,
- son olayın stack trace'i (kod bloğu olarak),
- Errorbird'deki hataya dönüş bağlantısı.
Metin, kaydı açan kişinin panel dilindedir. Aynı hata aynı bağlantıda yalnızca bir kez açılır; ikinci deneme mevcut kaydı gösterir.
Bağlantı kurma
Bağlantılar organizasyon düzeyindedir ve panelde Entegrasyonlar sayfasından eklenir. Bağlantı organizasyon adına dış sisteme yazma yetkisi taşıdığı için yalnızca yöneticiler ekleyip silebilir ve bu işlemler denetim izine düşer. Hatadan kayıt açmak her üyenin yapabileceği bir iştir.
| Sistem | Gerekenler | Nereden alınır |
|---|---|---|
| GitHub | Depo (sahip/depo) ve token |
Settings → Developer settings → Fine-grained tokens. Yalnızca o depoya erişen, Issues: Read and write izinli bir token yeterlidir. |
| Jira Cloud | Adres (https://ekibiniz.atlassian.net), e-posta, API token, proje anahtarı, kayıt türü (varsayılan Bug) |
id.atlassian.com → Security → API tokens. E-posta, token'ın sahibi olan hesaptır. |
| Linear | Ekip anahtarı (ENG) ve kişisel API anahtarı |
Settings → Security & access → Personal API keys. Ekip anahtarı kayıt numaralarının önekidir. |
Kaydettikten sonra Test gönder düğmesi kayıt açmadan token'ı ve hedefi (depo, proje, ekip) doğrular. Yanlış yapılandırma ilk gerçek hatada değil burada görünür.
Token bir kez girilir ve hiçbir yanıtta geri dönmez. Jira'da yalnızca Jira Cloud
adresleri (*.atlassian.net) kabul edilir: Errorbird bu adrese istek attığı için
serbest adres, iç ağdaki sistemlere istek attırmanın yolu olurdu.
API
# Bağlantı ekle (yönetici)
curl -X POST https://api.errorbird.com/api/v1/issue-trackers \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{ "organizationId": "<org-id>", "type": "GitHub", "name": "Ürün deposu",
"repository": "acme/api", "token": "github_pat_…" }'
# Hatadan kayıt aç (üye)
curl -X POST https://api.errorbird.com/api/v1/issues/<issue-id>/links \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{ "trackerId": "<bağlantı-id>" }'
# 201 { "externalKey": "acme/api#42", "url": "https://github.com/acme/api/issues/42", … }
| Uç | Açıklama |
|---|---|
GET /api/v1/issue-trackers?organizationId= |
Bağlantılar (token dönmez) |
POST /api/v1/issue-trackers |
Bağlantı ekler (yönetici) |
POST /api/v1/issue-trackers/{id}/test |
Kayıt açmadan doğrular |
PATCH /api/v1/issue-trackers/{id} |
Durum eşitlemesini açar/kapatır (yönetici) |
DELETE /api/v1/issue-trackers/{id} |
Bağlantıyı siler; açılmış kayıtların bağlantıları kalır |
GET /api/v1/issues/{id}/links |
Hataya bağlı kayıtlar |
POST /api/v1/issues/{id}/links |
Kayıt açar ve bağlar |
POST /api/v1/issues/{id}/links/{linkId}/sync |
Durumu hemen eşitler |
DELETE /api/v1/issues/{id}/links/{linkId} |
Bağlantıyı kaldırır (dış kayıt silinmez) |
Hata kodları:
409 already_linked: hata bu bağlantıda zaten açılmış.404 issue_tracker_not_found: bağlantı yok ya da başka bir organizasyona ait.502 issue_tracker_failed: dış sistem isteği reddetti. Açıklamada sağlayıcının mesajı yer alır (ör. "token geçersiz ya da süresi dolmuş"). Aynı mesaj bağlantının "son hata" alanına da yazılır.
Durum eşitleme (iki yönlü)
Bağlantıda Durumları iki yönlü eşitle açıkken (varsayılan) hata ile kayıt birlikte hareket eder:
| Ne oldu | Errorbird ne yapar |
|---|---|
| Kayıt GitHub/Jira/Linear'da kapatıldı (Linear'da iptal de) | Hatayı çözüldü işaretler |
| Kapalı kayıt yeniden açıldı | Hatayı yeniden açar |
| Hata Errorbird'de çözüldü | Kaydı kapatır ve nedenini not olarak düşer |
| Hata yeniden açıldı ya da çözüldükten sonra yeniden görüldü | Kaydı yeniden açar; regresyonda sürümü nota yazar |
- Webhook gerekmez: Errorbird kayıtların durumunu birkaç dakikada bir okur. Hata Errorbird'de değişince bağlı kayıt bir dakika içinde ele alınır. Hata detayındaki Eşitle düğmesi beklemeden eşitler.
- Kapalı sayılan: GitHub'da
closed, Jira'da durum kategorisi "Done" olan her durum, Linear'da "completed" ve "canceled" türündeki durumlar. - Jira'da kapatma iş akışındaki bir geçişle yapılır: hedefi "Done" kategorisinde olan ilk geçiş. Açarken "To Do" kategorisine, yoksa "In Progress"e giden geçiş seçilir. Uygun geçiş yoksa bağlantıda hata görünür. Linear'da kapatırken ekibin ilk "completed", açarken ilk "unstarted" (yoksa backlog) durumu kullanılır.
- Çakışma: iki taraf aynı aralıkta değiştiyse dış kayıt kazanır; onu bir insan değiştirmiştir, Errorbird'deki değişiklik otomatik bir regresyon olabilir.
- Yok sayılan hata kayda yön vermez: yok saymak "uyarma" demektir, "iş bitti" değil.
- Eşitleme hatası (token süresi doldu, kayıt silindi) hata detayında kaydın altında görünür; sağlayıcı düzelince bir sonraki turda temizlenir.
- Token'ın kaydı düzenleme izni olmalıdır (GitHub'da "Issues: Read and write", Jira'da kayıtları geçiş yapıp yorum ekleyebilen hesap). Eşitlemeyi kapatmak için bağlantıdaki kutuyu boşaltın; kayıtlar ve bağlantılar yerinde kalır.
# Eşitlemeyi kapat (yönetici)
curl -X PATCH https://api.errorbird.com/api/v1/issue-trackers/<bağlantı-id> \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{ "syncStatus": false }'
# Bir kaydı hemen eşitle (üye)
curl -X POST https://api.errorbird.com/api/v1/issues/<issue-id>/links/<link-id>/sync \
-H "Authorization: Bearer <token>"
# { "externalKey": "acme/api#42", "syncedState": "Closed", "lastSyncedAt": "…", "lastSyncError": null, … }
Eşitlemeden önce açılmış kayıtlarda ilk turda kaydın bugünkü durumu benimsenir; o turda hiçbir taraf değiştirilmez.
Sınırlar
- Eşitleme yalnızca durumu kapsar; başlık, atanan kişi ve yorumlar eşitlenmez.
- Jira Server / Data Center desteklenmez. Yalnızca Jira Cloud.
- GitHub Enterprise Server desteklenmez. Yalnızca github.com.