İş 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:

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ı:

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
# 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