Przejdź do treści

Narzędzie changelog dla firm tworzących narzędzia dla deweloperów i API.

Changelog, który zamyka pętlę.

Użytkownicy o coś proszą. Twój zespół to dostarcza. Proszący się dowiaduje. Wpisy powstają z połączonych pull requestów, czekają na Twoją recenzję, a potem trafiają do feedu JSON lub dwuliniowego widgetu w Twoim produkcie.

Za darmo dla jednego repozytorium. Karta kredytowa niepotrzebna.

acme.dev/changelog
  1. Wygląd

    Tryb ciemny już jest

    Włącz go w Ustawieniach albo pozwól mu podążać za motywem systemu.

    Opublikowano w issue #482, gdzie o to proszono

  2. API

    Webhooki ponawiane przez 24 godziny

    Nieudane dostarczenia są ponawiane z backoffem, a każda próba widnieje w dashboardzie.

  3. Poprawka

    Eksport CSV zachowuje Twoją strefę czasową

    Znaczniki czasu w eksporcie zgadzają się teraz z tymi w aplikacji.

To czytają Twoi użytkownicy. Wpis powstał z połączonego pull requestu i ukazuje się, gdy go zatwierdzisz.

  • Publiczny feed JSON w każdym planie
  • Osadź widget dwiema liniami
  • Szkice domyślnie czekają na recenzję
  • Za darmo dla jednego repozytorium, bez karty
FEED JSON

Twój changelog, renderowany Twoim własnym kodem

Feed to prosty publiczny endpoint z otwartym CORS dla dowolnego pochodzenia, więc możesz go odczytać ze strony, kroku builda lub curla. Dziesięć linii Reacta wystarczy, a Twój changelog staje się częścią Twojego produktu, a nie jednym linkiem dalej.

  • Filtruj według repozytorium, paginuj kursorem, do 50 wpisów na wywołanie
  • Silny ETag i 60-sekundowy Cache-Control, więc niezmieniony feed odpowiada 304
  • Także feed roadmapy z trzema stałymi kolumnami: planned, building, shipped
Każdy endpoint, pole i kod statusu w dokumentacji dla deweloperów
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

Albo osadź dwiema liniami

Custom element renderowany w shadow root, więc ani nie dziedziczy Twoich stylów, ani do nich nie wycieka. Ma trzy zakładki: Twoje aktualizacje, roadmapę i pole, w którym Twoi użytkownicy mogą pisać.

  • Dwa atrybuty, identyfikator Twojego feedu i pochodzenie Twojego API
  • Przypnij wersję, by bajty nigdy się nie zmieniły, albo otrzymuj najnowszy build automatycznie
  • Bez pakietu npm, bez kroku builda, bez klucza do rotacji
NowościPlan rozwojuOpinie
  1. Wygląd

    Tryb ciemny już jest

  2. API

    Webhooki ponawiane przez 24 godziny

  3. Poprawka

    Eksport CSV zachowuje Twoją strefę czasową

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

Tworzony przy łączeniu, zarezerwowany dla jednej osoby

Pull request zostaje połączony z domyślną gałęzią. Changeloop czyta jego tytuł i opis i pisze wpis dla osób korzystających z Twojego produktu. Twój kod źródłowy nigdy w to nie wchodzi.

  • Aktualizacje zależności, zadania CI i refaktoryzacje są filtrowane, zanim cokolwiek zostanie utworzone
  • Szkice czekają w skrzynce recenzji, gdzie edytujesz tekst, zatwierdzasz lub odrzucasz
  • Automatyczna publikacja jest ustawiana per repozytorium, wyłączona, dopóki jej nie włączysz
yourteam/webapp
Pull request połączony
Szkic napisany
W recenzji
Opublikowano
feat(ui): add dark theme toggle (#517)
SZKIC · RECENZJA

Tryb ciemny już jest

Włącz go w Ustawieniach albo pozwól mu podążać za motywem systemu.

ZatwierdźEdytujPomiń
OPINIE

Prośba przychodzi jako issue, wychodzi jako wpis

Na GitHubie pole opinii widgetu otwiera oznaczone issue w Twoim repozytorium, więc trafia do triage, który już wykonujesz. Połącz pull request z fixes #12, zatwierdź wpis, a my dodamy komentarz do tego issue z linkiem do tego, co zostało dostarczone.

  • Trzy etykiety w każdym issue: bug lub feature-request, priorytet i from-widget
  • Adres e-mail nadawcy nigdy nie dociera do issue ani do modelu, który je klasyfikuje
  • Sami sprawdzają status w widgecie. Nie wysyłamy im jeszcze e-maila.
acme/web · issue #482

Tryb ciemny, proszę

feature-requestpriority:mediumfrom-widget

Zgłoszone automatycznie przez widget opinii.

Dostarczone: zapisane widoki w skrzynce odbiorczej

Zawarte w każdym planie

Feed JSON changeloga

Opublikowane wpisy, od najnowszych, z filtrowaniem po repozytorium i paginacją nieprzezroczystym kursorem.

Feed JSON roadmapy

Planned, building i shipped, zawsze w tej kolejności, sterowane etykietami na Twoich własnych issue na GitHubie.

Widget do osadzenia

Custom element w shadow root, z nowościami, roadmapą i opiniami w trzech zakładkach.

Hostowana strona jako rozwiązanie zapasowe

Prosta strona dla Twojego feedu, na czas, zanim zbudujesz własną, i dla linków, które zostawiamy w issue.

Tworzone z połączonych pull requestów

Tytuł i opis merge'a stają się wpisem dla klientów. Nie kod.

Skrzynka recenzji

Popraw treść, zatwierdź albo odrzuć. Odrzucony szkic można później przywrócić.

Zmiany wewnętrzne odfiltrowane

Aktualizacje zależności, zmiany w CI, refaktoryzacje i poprawki literówek nigdy nie trafiają do kolejki.

Opinie w Twoim własnym repozytorium na GitHubie

Na GitHubie zgłoszenia z widgetu otwierają oznaczone issue w Twoim repozytorium, z usuniętym adresem e-mail nadawcy. Projekty GitLab i Bitbucket zasilają tylko changelog.

Stała cena dla zespołu

Jedna cena za nieograniczoną liczbę repozytoriów w planie Team. Bez dopłat za każde repozytorium.

Pytania, które deweloper zadaje najpierw

Czy mogę renderować changelog we własnym UI?

Tak, i właśnie o to chodzi. Każdy opublikowany wpis jest serwowany z publicznego feedu JSON z CORS otwartym dla dowolnego pochodzenia, bez klucza i bez logowania, więc dziesięć linii Reacta wystarczy, by wyrenderować go we własnych komponentach. Dokumentacja dla deweloperów opisuje każdy endpoint, pole i kod statusu.

Czego widget ode mnie potrzebuje?

Tagu script i jednego elementu z dwoma atrybutami: identyfikatorem Twojego feedu i pochodzeniem API. Renderuje się w shadow root, więc Twój CSS i jego CSS nigdy się nie spotykają. Pokazuje nowości, roadmapę i pole na opinie.

Co Changeloop czyta z mojego repozytorium?

Na GitHubie tytuł i opis pull requestów połączonych z Twoją domyślną gałęzią, plus metadane repozytorium. GitHub App nie ma uprawnień do odczytu plików Twojego repozytorium, przy każdym buildzie Changeloop sprawdzamy, że nigdy nie prosi o diff, a wszystko, co wygląda na sekret, zostaje usunięte, zanim powstanie szkic. Działa na krótkotrwałych tokenach instalacji zamiast osobistego tokena dostępu. GitLab i Bitbucket przesyłają ten sam rodzaj danych przez webhook, który dodajesz.

Czy coś opublikuje się beze mnie?

Nie, chyba że tego chcesz. Szkice czekają w skrzynce recenzji, aż ktoś je zatwierdzi, a automatyczna publikacja to przełącznik per repozytorium, wyłączony, dopóki go nie włączysz.

Co dzieje się z opiniami od moich użytkowników?

Na GitHubie opinia otwiera oznaczone issue w Twoim własnym repozytorium, z etykietą bug lub feature-request, priorytetem i etykietą from-widget, więc trafia do triage, który już wykonujesz. Projekt GitLab lub Bitbucket zasila Twój changelog, ale tego nie robi. Założenie issue wymaga tokena dostępu, o który celowo nie prosimy, a Bitbucket usunął swój issue tracker w sierpniu 2026. Adres e-mail nadawcy jest usuwany, zanim wiadomość dotrze do tego issue lub do modelu, który ją klasyfikuje. Gdy zatwierdzisz wpis, który to dostarcza, dodajemy komentarz do tego issue z linkiem do tego, co zostało dostarczone, a nadawca może zobaczyć status w widgecie. Nie wysyłamy mu e-maila, ta część nie została jeszcze zbudowana.

Co jest za darmo, a co płatne?

Plan darmowy obejmuje jedno repozytorium z 20 generowaniami AI miesięcznie i zawiera feed changeloga, feed roadmapy, widget i hostowaną stronę. Plan Team to jedna stała cena za nieograniczoną liczbę repozytoriów.

Umieść swój changelog wewnątrz swojego produktu.

Załóż darmowe konto, połącz repozytorium i skieruj swój własny interfejs na feed.