İçeriğe geç

Geliştirici araçları ve API şirketleri için bir changelog aracı.

Döngüyü kapatan bir changelog.

Kullanıcıların bir şey ister. Ekibin teslim eder. İsteyen kişi haberdar olur. Kayıtlar birleştirilmiş pull request'lerden hazırlanır, incelemen için bekler, sonra bir JSON akışına veya ürününün içindeki iki satırlık bir widget'a yayımlanır.

Tek depo için ücretsiz. Kredi kartı gerekmez.

acme.dev/changelog
  1. Görünüm

    Karanlık mod geldi

    Ayarlar'dan aç ya da sistem temasını izlemesine izin ver.

    İstendiği issue #482'de paylaşıldı

  2. API

    Webhook'lar 24 saat boyunca yeniden denenir

    Başarısız teslimatlar backoff ile yeniden denenir ve her deneme panoda görünür.

  3. Düzeltme

    CSV dışa aktarımları saat dilimini korur

    Dışa aktarımdaki zaman damgaları artık uygulamadakilerle aynı.

Kullanıcılarının okuduğu sayfa bu. Birleştirilmiş pull request'ten hazırlanır, onayladığında yayımlanır.

  • Her planda herkese açık JSON akışı
  • İki satırla widget gömme
  • Taslaklar varsayılan olarak incelemeyi bekler
  • Tek depo için ücretsiz, kart yok
JSON AKIŞI

Changelog'un, kendi kodunla renderlanır

Akış, herhangi bir kaynağa açık CORS'lu, sade herkese açık bir endpoint'tir, dolayısıyla onu bir sayfadan, bir build adımından veya curl ile okuyabilirsin. On satır React ve changelog'un, bir bağlantı uzağında olmak yerine ürününün bir parçası olur.

  • Depoya göre filtrele, bir imleçle sayfala, çağrı başına 50'ye kadar kayıt
  • Güçlü ETag ve 60 saniyelik Cache-Control, böylece değişmemiş bir akış 304 yanıtı verir
  • Ayrıca üç sabit sütunlu bir roadmap akışı: planned, building, shipped
Her endpoint, alan ve durum kodu geliştirici dokümantasyonunda
Changelog.tsx
const ID = 'YOUR_ID';
const API = 'https://api.changeloop.dev';

export function Changelog() {
  const [entries, setEntries] = useState([]);
  useEffect(() => {
    fetch(`${API}/v1/public/${ID}/changelog.json`)
      .then((r) => r.json())
      .then((feed) => setEntries(feed.data));
  }, []);
  return entries.map((e) => <Entry key={e.id} {...e} />);
}
WIDGET

Ya da iki satırla göm

Bir shadow root içine render eden bir custom element, bu yüzden stillerini ne devralır ne de onlara sızar. Üç sekmesi var: güncellemelerin, roadmap'in ve kullanıcılarının yazabileceği bir kutu.

  • İki öznitelik, akış kimliğin ve API kaynağın
  • Bir sürümü sabitle, byte'ları asla değişmesin, ya da otomatik olarak en yeni build'i al
  • npm paketi yok, build adımı yok, döndürülecek anahtar yok
GüncellemelerYol haritasıGeri bildirim
  1. Görünüm

    Karanlık mod geldi

  2. API

    Webhook'lar 24 saat boyunca yeniden denenir

  3. Düzeltme

    CSV dışa aktarımları saat dilimini korur

index.html
<script src="https://api.changeloop.dev/widget.js"
        defer></script>

<changelogapp-widget
  data-public-id="YOUR_ID"
  data-api="https://api.changeloop.dev"
></changelogapp-widget>
TASLAK

Birleştirmede hazırlanır, bir kişi için bekletilir

Bir pull request varsayılan branşına birleştirilir. Changeloop başlığını ve açıklamasını okur ve ürününü kullanan kişiler için bir kayıt yazar. Kaynak kodun buna asla dahil olmaz.

  • Bağımlılık güncellemeleri, CI işleri ve refactor'lar, herhangi bir şey hazırlanmadan önce filtrelenir
  • Taslaklar inceleme kutusunda bekler, burada metni düzenler, onaylar veya reddedersin
  • Otomatik yayımlama depo başına vardır, sen açana kadar kapalıdır
yourteam/webapp
Pull request birleştirildi
Taslak yazıldı
İncelemede
Yayımlandı
feat(ui): add dark theme toggle (#517)
TASLAK · İNCELEME

Karanlık mod geldi

Ayarlar'dan aç ya da sistem temasını izlemesine izin ver.

OnaylaDüzenleAtla
GERİ BİLDİRİM

Bir istek issue olarak gelir, kayıt olarak çıkar

GitHub'da widget'ın geri bildirim kutusu kendi deponda etiketli bir issue açar, böylece zaten yaptığın triyaja girer. fixes #12 diyen bir pull request'i birleştir, kaydı onayla, o issue'ya teslim edilenin bağlantısıyla yorum bırakırız.

  • Her issue'da üç etiket: bug veya feature-request, bir öncelik ve from-widget
  • Gönderenin e-posta adresi issue'ya veya onu sınıflandıran modele asla ulaşmaz
  • Durumu widget'ta kendileri kontrol ederler. Onlara henüz e-posta göndermiyoruz.
acme/web · issue #482

Karanlık mod, lütfen

feature-requestpriority:mediumfrom-widget

Geri bildirim widget'ından otomatik olarak dosyalandı.

Teslim edildi: gelen kutusunda kayıtlı görünümler

Her planda dahil

Changelog JSON akışı

Yayımlanan kayıtlar en yeniden eskiye sıralanır, depoya göre filtrelenebilir ve opak bir imleçle sayfalanır.

Roadmap JSON akışı

Planned, building ve shipped, hep bu sırayla, kendi GitHub issue'larındaki etiketlerle yönetilir.

Gömülebilir widget

Shadow root içinde çalışan bir custom element: güncellemeler, roadmap ve geri bildirim üç sekmede.

Yedek olarak barındırılan bir sayfa

Akışın için sade bir sayfa: kendi arayüzünü kurmadan önceki dönem ve issue'lara bıraktığımız bağlantılar için.

Birleştirilmiş pull request'lerden hazırlanır

Bir birleştirmenin başlığı ve açıklaması kullanıcıya yönelik bir kayda dönüşür. Kod değil.

İnceleme kutusu

Metni düzenle, onayla ya da reddet. Reddedilen bir taslak daha sonra geri yüklenebilir.

İç değişiklikler filtrelenir

Bağımlılık güncellemeleri, CI değişiklikleri, refactor'lar ve yazım hatası düzeltmeleri kuyruğa hiç ulaşmaz.

Geri bildirim kendi GitHub deponda

GitHub'da widget'tan gelen gönderimler, gönderenin e-posta adresi çıkarılmış olarak deponda etiketli issue'lar açar. GitLab ve Bitbucket projeleri yalnızca changelog'u besler.

Ekip için sabit fiyat

Team planında sınırsız depo için tek fiyat. Depo başına ek ücret yok.

Bir geliştiricinin önce sorduğu sorular

Changelog'u kendi arayüzümde renderlayabilir miyim?

Evet, asıl amaç da bu. Yayımlanan her kayıt, her kaynağa açık CORS'lu, anahtar ve giriş gerektirmeyen herkese açık bir JSON akışından sunulur, bu yüzden onu kendi bileşenlerinde renderlamak için on satır React yeterli. Her endpoint, alan ve durum kodu geliştirici dokümantasyonunda.

Widget benden ne istiyor?

Bir script etiketi ve iki öznitelikli tek bir eleman: akış kimliğin ve API kaynağın. Bir shadow root içine render eder, bu yüzden senin CSS'in ile onunki hiç karşılaşmaz. Güncellemeleri, roadmap'i ve bir geri bildirim kutusunu gösterir.

Changeloop depomdan ne okuyor?

GitHub'da, varsayılan branşına birleştirilen pull request'lerin başlığını ve açıklamasını, ayrıca depo meta verilerini. GitHub App'in depondaki dosyaları okuma izni yok, Changeloop'un her derlemesi asla diff istemediğinden emin olmak için kontrol edilir ve gizli bilgiye benzeyen her şey taslak yazılmadan önce kaldırılır. Kişisel erişim belirteci yerine kısa ömürlü kurulum belirteçleriyle çalışır. GitLab ve Bitbucket aynı türden verileri senin eklediğin bir webhook üzerinden gönderir.

Benden habersiz bir şey yayımlanır mı?

Sen istemedikçe hayır. Taslaklar biri onaylayana kadar inceleme kutusunda bekler; otomatik yayımlama ise depo başına bir ayardır ve sen açana kadar kapalı kalır.

Kullanıcılarımın gönderdiği geri bildirime ne oluyor?

GitHub'da kendi deponda etiketli bir issue açar: bug veya feature-request, bir öncelik ve from-widget etiketiyle, böylece zaten yaptığın triyaja girer. Bir GitLab veya Bitbucket projesi changelog'unu besler ama bunu yapmaz. Issue açmak, bilerek istemediğimiz bir erişim belirteci gerektirir ve Bitbucket, Ağustos 2026'da issue takip sistemini kaldırdı. Gönderenin e-posta adresi, mesaj o issue'ya veya onu sınıflandıran modele ulaşmadan önce çıkarılır. Bunu teslim eden kaydı onayladığında, o issue'ya teslim edilenin bağlantısıyla yorum bırakırız ve gönderen durumu widget'ta görebilir. Ona e-posta göndermiyoruz, o kısım henüz yapılmadı.

Ne ücretsiz, ne ücretli?

Ücretsiz plan, ayda 20 AI oluşturmayla tek bir depoyu kapsar ve changelog akışını, roadmap akışını, widget'ı ve barındırılan sayfayı içerir. Team planı, sınırsız depo için tek bir sabit fiyattır.

Changelog'unu ürününün içine koy.

Ücretsiz bir hesap oluştur, bir depo bağla ve kendi arayüzünü akışa yönlendir.