Sari la conținut

Un instrument de changelog pentru companii de instrumente pentru dezvoltatori și API-uri.

Un changelog care închide bucla.

Utilizatorii cer ceva. Echipa ta livrează. Cel care a cerut află. Intrările sunt redactate din pull request-uri îmbinate, așteaptă recenzia ta, apoi sunt publicate într-un feed JSON sau într-un widget de două linii din produsul tău.

Gratuit pentru un repozitoriu. Nu ai nevoie de card de credit.

acme.dev/changelog
  1. Aspect

    A sosit modul întunecat

    Activează-l din Setări sau lasă-l să urmeze tema sistemului.

    Publicat pe issue-ul #482, unde a fost cerut

  2. API

    Webhook-urile se reîncearcă timp de 24 de ore

    Livrările eșuate se reîncearcă cu backoff, iar fiecare încercare apare în dashboard.

  3. Remediere

    Exporturile CSV păstrează fusul orar

    Marcajele de timp din export corespund acum celor din aplicație.

Asta citesc utilizatorii tăi. Redactat din pull request-ul îmbinat, publicat după ce îl aprobi.

  • Feed JSON public în fiecare plan
  • Încorporează widgetul în două linii
  • Ciornele așteaptă recenzia implicit
  • Gratuit pentru un repozitoriu, fără card
FEED JSON

Changelog-ul tău, randat cu propriul tău cod

Feedul este un endpoint public simplu, cu CORS deschis pentru orice origine, deci îl poți citi dintr-o pagină, un pas de build sau curl. Zece linii de React sunt suficiente, iar changelog-ul tău devine parte din produsul tău în loc să fie la un link distanță.

  • Filtrează după repozitoriu, paginare cu cursor, până la 50 de intrări per apel
  • ETag puternic și Cache-Control de 60 de secunde, deci un feed neschimbat răspunde 304
  • Și un feed de roadmap cu trei coloane fixe: planned, building, shipped
Fiecare endpoint, câmp și cod de stare în documentația pentru dezvoltatori
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

Sau încorporează-l în două linii

Un custom element care se randează într-un shadow root, deci nu îți moștenește stilurile și nici nu se scurge în ele. Are trei file: actualizările tale, roadmap-ul tău și o casetă în care utilizatorii tăi pot scrie.

  • Două atribute, ID-ul feedului tău și originea API-ului tău
  • Fixează o versiune ca octeții să nu se schimbe niciodată, sau primește automat cel mai nou build
  • Fără pachet npm, fără pas de build, fără cheie de rotit
NoutățiRoadmapFeedback
  1. Aspect

    A sosit modul întunecat

  2. API

    Webhook-urile se reîncearcă timp de 24 de ore

  3. Remediere

    Exporturile CSV păstrează fusul orar

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>
CIORNĂ

Redactată la îmbinare, rezervată pentru o persoană

Un pull request este îmbinat în branch-ul tău implicit. Changeloop citește titlul și descrierea și scrie o intrare pentru persoanele care folosesc produsul tău. Codul tău sursă nu este niciodată implicat.

  • Actualizările de dependențe, sarcinile CI și refactorizările sunt filtrate înainte ca ceva să fie redactat
  • Ciornele așteaptă în caseta de recenzie, unde editezi textul, aprobi sau respingi
  • Publicarea automată este setată per repozitoriu, dezactivată până o activezi
yourteam/webapp
Pull request îmbinat
Ciornă scrisă
În recenzie
Publicat
feat(ui): add dark theme toggle (#517)
CIORNĂ · RECENZIE

A sosit modul întunecat

Activează-l din Setări sau lasă-l să urmeze tema sistemului.

AprobăEditeazăSari peste
FEEDBACK

O cerere vine ca issue, iese ca intrare

Pe GitHub, caseta de feedback a widgetului deschide un issue etichetat în repozitoriul tău, deci intră în triajul pe care îl faci deja. Îmbină un pull request care spune fixes #12, aprobă intrarea, iar noi comentăm pe acel issue cu link către ce a fost livrat.

  • Trei etichete pe fiecare issue: bug sau feature-request, o prioritate și from-widget
  • Adresa de e-mail a expeditorului nu ajunge niciodată la issue sau la modelul care îl clasifică
  • Ei verifică singuri starea în widget. Nu le trimitem încă un e-mail.
acme/web · issue #482

Mod întunecat, te rog

feature-requestpriority:mediumfrom-widget

Înregistrat automat din widgetul de feedback.

Livrat: vizualizări salvate în inbox

Inclus în fiecare plan

Feed JSON de changelog

Intrările publicate, cele mai noi primele, filtrabile după repozitoriu și paginate cu un cursor opac.

Feed JSON de roadmap

Planned, building și shipped, mereu în ordinea asta, conduse de etichetele de pe propriile tale issue-uri GitHub.

Widget încorporabil

Un custom element într-un shadow root, cu actualizări, roadmap și feedback în trei file.

O pagină găzduită, ca rezervă

O pagină simplă pentru feedul tău, până îți construiești propria pagină, și pentru linkurile pe care le lăsăm pe issue-uri.

Redactat din pull request-uri îmbinate

Titlul și descrierea unei îmbinări devin o intrare pentru clienți. Codul rămâne la tine.

Caseta de recenzie

Editează textul, aprobă sau respinge. O ciornă respinsă poate fi restaurată mai târziu.

Modificările interne, filtrate

Actualizările de dependențe, modificările CI, refactorizările și corectările de greșeli de tipar nu ajung niciodată în coadă.

Feedback în propriul tău repozitoriu GitHub

Pe GitHub, trimiterile din widget deschid issue-uri etichetate în repozitoriul tău, fără adresa de e-mail a expeditorului. Proiectele GitLab și Bitbucket alimentează doar changelog-ul.

Preț fix pentru echipă

Un singur preț pentru repozitorii nelimitate în planul Team. Fără taxă per repozitoriu.

Întrebările pe care un dezvoltator le pune primele

Pot randa changelog-ul în propria mea interfață?

Da, și exact asta e ideea. Fiecare intrare publicată este servită dintr-un feed JSON public, cu CORS deschis pentru orice origine, fără cheie și fără autentificare, deci zece linii de React sunt suficiente ca s-o randezi în propriile tale componente. Documentația pentru dezvoltatori conține fiecare endpoint, câmp și cod de stare.

De ce are nevoie widgetul de la mine?

Un tag script și un element cu două atribute: ID-ul feedului tău și originea API-ului. Se randează într-un shadow root, deci CSS-ul tău și al lui nu se întâlnesc niciodată. Afișează actualizări, roadmap și o casetă de feedback.

Ce citește Changeloop din repozitoriul meu?

Pe GitHub, titlul și descrierea pull request-urilor care se îmbină în branch-ul tău implicit, plus metadate ale repozitoriului. GitHub App-ul nu are permisiunea de a citi fișierele din repozitoriul tău, fiecare build Changeloop este verificat ca să nu ceară niciodată un diff, iar orice arată ca un secret este eliminat înainte să fie scrisă ciorna. Funcționează prin tokenuri de instalare de scurtă durată, nu printr-un personal access token. GitLab și Bitbucket trimit același tip de date printr-un webhook pe care îl adaugi.

Se publică ceva fără mine?

Nu, decât dacă ceri asta. Ciornele așteaptă în caseta de recenzie până când cineva le aprobă, iar publicarea automată este o setare per repozitoriu care rămâne dezactivată până o activezi.

Ce se întâmplă cu feedbackul trimis de utilizatorii mei?

Pe GitHub, deschide un issue etichetat în propriul tău repozitoriu, cu bug sau feature-request, o prioritate și eticheta from-widget, deci intră în triajul pe care îl faci deja. Un proiect GitLab sau Bitbucket îți alimentează changelog-ul, dar nu și asta. Deschiderea unui issue cere un token de acces pe care, intenționat, nu îl cerem, iar Bitbucket și-a eliminat issue tracker-ul în august 2026. Adresa de e-mail a expeditorului este eliminată înainte ca mesajul să ajungă la acel issue sau la modelul care îl clasifică. Când aprobi intrarea care o rezolvă, adăugăm un comentariu pe issue cu link către ce a fost livrat, iar expeditorul poate vedea starea în widget. Nu îi trimitem un e-mail, acea parte nu a fost încă construită.

Ce este gratuit și ce este plătit?

Planul Free acoperă un repozitoriu cu 20 de generări AI pe lună și include feedul de changelog, feedul de roadmap, widgetul și pagina găzduită. Planul Team este un preț unic fix pentru repozitorii nelimitate.

Pune-ți changelog-ul în produsul tău.

Creează un cont gratuit, conectează un repozitoriu și direcționează propria ta interfață către feed.