Инструмент changelog для компаний, создающих инструменты для разработчиков и API.
Changelog, который замыкает цикл.
Пользователи о чём-то просят. Ваша команда это делает. Тот, кто просил, узнаёт об этом. Записи составляются из объединённых pull request'ов, ждут вашей проверки, а затем публикуются в JSON-фид или в двухстрочный виджет в вашем продукте.
Бесплатно для одного репозитория. Банковская карта не нужна.
Появилась тёмная тема
Включите её в Настройках или пусть она следует системной теме.
Опубликовано в issue #482, где её просили
Webhook'и повторяются в течение 24 часов
Неудачные доставки повторяются с backoff, а каждая попытка видна в дашборде.
Экспорт в CSV сохраняет часовой пояс
Время в экспорте теперь совпадает с тем, что в приложении.
Это читают ваши пользователи. Составлено из объединённого pull request'а и опубликовано, когда вы его одобрите.
- Публичный JSON-фид в каждом плане
- Встройте виджет двумя строками
- Черновики по умолчанию ждут проверки
- Бесплатно для одного репозитория, без карты
Ваш changelog, отрендеренный вашим собственным кодом
Фид — это простой публичный endpoint с открытым CORS для любого источника, так что вы можете читать его со страницы, шага сборки или curl. Десяти строк React достаточно, и ваш changelog становится частью вашего продукта, а не ссылкой в стороне.
- Фильтруйте по репозиторию, постраничная навигация через курсор, до 50 записей за вызов
- Надёжный ETag и 60-секундный Cache-Control, так что неизменённый фид отвечает 304
- Также фид roadmap с тремя фиксированными колонками: planned, building, shipped
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} />); }
Или встройте двумя строками
Custom element, рендерящийся в shadow root, поэтому он не наследует ваши стили и не влияет на них. Есть три вкладки: ваши обновления, roadmap и поле, где ваши пользователи могут писать.
- Два атрибута: ID вашего фида и источник вашего API
- Зафиксируйте версию, чтобы байты никогда не менялись, или получайте новейшую сборку автоматически
- Без npm-пакета, без шага сборки, без ключа для ротации
Составляется при объединении, зарезервировано для одного человека
Pull request объединяется с веткой по умолчанию. Changeloop читает его заголовок и описание и пишет запись для людей, использующих ваш продукт. Ваш исходный код никогда в этом не участвует.
- Обновления зависимостей, задачи CI и рефакторинг отфильтровываются до того, как что-либо составлено
- Черновики ждут в папке проверки, где вы редактируете текст, одобряете или отклоняете
- Автопубликация настраивается для каждого репозитория, выключена, пока вы её не включите
Появилась тёмная тема
Включите её в Настройках или пусть она следует системной теме.
Запрос приходит как issue, выходит как запись
На GitHub поле обратной связи виджета открывает помеченный issue в вашем собственном репозитории, так что он попадает в ту же сортировку, что вы уже делаете. Объедините pull request со словами fixes #12, одобрите запись, и мы оставим комментарий к этому issue со ссылкой на то, что было доставлено.
- Три метки на каждом issue: bug или feature-request, приоритет и from-widget
- Email отправителя никогда не попадает в issue или в модель, которая его классифицирует
- Они сами проверяют статус в виджете. Мы пока не отправляем им email.
Тёмная тема, пожалуйста
Автоматически подано из виджета обратной связи.
Доставлено: сохранённые просмотры во входящих
Включено в каждый план
JSON-фид changelog
Опубликованные записи, сначала новые, с фильтром по репозиторию и постраничной навигацией через непрозрачный курсор.
JSON-фид roadmap
Planned, building и shipped, всегда в этом порядке, на основе меток на ваших собственных issue в GitHub.
Встраиваемый виджет
Custom element в shadow root: обновления, roadmap и обратная связь на трёх вкладках.
Размещённая страница как резервный вариант
Простая страница для вашего фида: пока вы не сделали свою, и для ссылок, которые мы оставляем в issue.
Составляется из объединённых pull request'ов
Заголовок и описание объединения превращаются в запись для клиентов. Код в этом не участвует.
Папка проверки
Отредактируйте текст, одобрите или отклоните. Отклонённый черновик можно потом восстановить.
Внутренние изменения отфильтрованы
Обновления зависимостей, изменения CI, рефакторинг и исправления опечаток никогда не попадают в очередь.
Обратная связь в вашем собственном репозитории GitHub
На GitHub отправки из виджета открывают помеченные issue в вашем репозитории, без email отправителя. Проекты GitLab и Bitbucket наполняют только changelog.
Фиксированная цена для команды
Одна цена за неограниченное количество репозиториев в плане Team. Никакой платы за каждый репозиторий.
Вопросы, которые разработчик задаёт в первую очередь
Могу ли я рендерить changelog в своём собственном интерфейсе?
Да, в этом и смысл. Каждая опубликованная запись отдаётся из публичного JSON-фида с открытым CORS для любого источника, без ключа и без входа, так что десяти строк React достаточно, чтобы отрендерить её в ваших собственных компонентах. В документации для разработчиков есть каждый endpoint, поле и код статуса.
Что нужно от меня виджету?
Тег script и один элемент с двумя атрибутами: ID вашего фида и источник API. Он рендерится в shadow root, так что ваш CSS и его CSS никогда не пересекаются. Он показывает обновления, roadmap и поле для обратной связи.
Что Changeloop читает из моего репозитория?
На GitHub это заголовок и описание pull request'ов, которые объединяются с веткой по умолчанию, плюс метаданные репозитория. У GitHub App нет разрешения читать файлы вашего репозитория, каждая сборка Changeloop проверяется на то, что она никогда не запрашивает дифф, а всё, что похоже на секрет, удаляется до того, как пишется черновик. Он работает через короткоживущие токены установки, а не через personal access token. GitLab и Bitbucket передают такие же данные через добавленный вами webhook.
Публикуется ли что-нибудь без меня?
Нет, если вы сами этого не попросите. Черновики ждут в папке проверки, пока кто-нибудь их не одобрит, а автопубликация настраивается для каждого репозитория отдельно и выключена, пока вы её не включите.
Что происходит с обратной связью от моих пользователей?
На GitHub она открывает помеченный issue в вашем собственном репозитории, с меткой bug или feature-request, приоритетом и меткой from-widget, так что он попадает в сортировку, которую вы уже ведёте. Проект GitLab или Bitbucket наполняет ваш changelog, но этого не делает. Чтобы создать issue, нужен токен доступа, который мы сознательно не запрашиваем, а Bitbucket убрал свой issue tracker в августе 2026 года. Email отправителя удаляется до того, как сообщение попадёт в этот issue или в модель, которая его классифицирует. Когда вы одобряете запись, с которой это выходит, мы оставляем в issue комментарий со ссылкой на то, что было доставлено, и отправитель может видеть статус в виджете. Мы не отправляем ему email, эта часть ещё не реализована.
Что бесплатно, а что платно?
План Free охватывает один репозиторий с 20 генерациями AI в месяц и включает фид changelog, фид roadmap, виджет и размещённую страницу. План Team — единая фиксированная цена за неограниченное количество репозиториев.
ИЗ БЛОГА
Заметки из приложения
Релиз-ноты на практике
Как писать release notes, которые реально читают
Изменения API
Что такое breaking change, и как его выпустить
Обратная связь
Замыкание петли обратной связи со стороны changelog
Разместите свой changelog внутри своего продукта.
Создайте бесплатный аккаунт, подключите репозиторий и направьте свой собственный интерфейс на фид.


