git-bug: баг-трекер прямо внутри Git-репозитория

git-bug — это баг-трекер, который:

  • полностью встроен в git: для работы с задачами достаточно одного git-репозитория

  • распределённый: используйте обычные git-remote для совместной работы — пушьте и тяните баги как обычный код!

  • работает офлайн: в самолёте или в подводной лодке — читайте и пишите задачи без интернета!

  • исключает привязку к платформе: ваш привычный сервис лёг или испортился? У вас уже есть полная резервная копия.

  • быстрый: список задач или их открытие занимают миллисекунды

  • не засоряет проект: в репозиторий не добавляется ни одного файла

  • интегрируется с вашими инструментами: используйте любой удобный интерфейс (CLI, терминал, веб) или подключайте существующие инструменты через CLI или GraphQL API

  • синхронизируется с другими баг-трекерами: используйте мосты (bridges) для импорта и экспорта данных в сторонние трекеры.

Установка

Полное руководство по установке, включая сборку из исходного кода и проверку результата, приведено в INSTALLATION.md.

Рабочие процессы

git-bug поддерживает несколько режимов работы. Подробности описаны в документации по рабочим процессам.

Нативный рабочий процесс

Нативный рабочий процесс — схема взаимодействия через git push/pull

Это чистый опыт работы с git-bug. По аналогии с кодом используйте git bug push и git bug pull, чтобы обмениваться задачами через git-remote и совместно работать с коллегами.

Рабочий процесс через мост

Рабочий процесс с мостом к стороннему баг-трекеру

Поскольку git-bug поддерживает мосты к другим баг-трекерам, его можно использовать как персональный локальный интерфейс к удалённому трекеру. Синхронизируйтесь с помощью git bug bridge pull и git bug bridge push, работайте в терминале, встраивайте в редактор — выбор за вами. И всё это работает офлайн!

Рабочий процесс через веб-интерфейс (в разработке)

Рабочий процесс через веб-интерфейс

Проекты нередко нуждаются в публично доступном баг-трекере, куда может сообщить об ошибке любой желающий. Чтобы поддержать такой сценарий, в git-bug планируется реализовать внешнюю OAuth-аутентификацию в веб-интерфейсе и возможность работы в режиме публичного портала. Пока веб-интерфейс до этого ещё не дорос, но любой вклад в разработку приветствуется!

Работа через CLI

Создать новую личность (identity):

git bug user create

Создать новую задачу:

git bug add

Откроется любимый редактор, где можно ввести заголовок и описание.

Отправить новую запись на удалённый сервер:

git bug push [<remote>]

Получить обновления:

git bug pull [<remote>]

Показать список задач:

git bug ls

Фильтровать и сортировать задачи с помощью запросов (query):

git bug ls "status:open sort:edit"

Искать задачи по тексту:

git bug ls "foo bar" baz

Для просмотра и редактирования задач используйте команды show, comment, open и close. Подробное описание каждой команды доступно через git bug <command> --help или в документации по командам.

Интерактивный терминальный интерфейс

Запустите интерактивный терминальный интерфейс командой git bug termui, чтобы просматривать и редактировать задачи прямо в консоли.

Запись экрана терминального интерфейса git-bug

Веб-интерфейс

Запустите полноценный веб-интерфейс командой git bug webui. В нём можно просматривать, искать и фильтровать задачи, создавать новые, оставлять комментарии, изменять заголовки, метки и статусы. Помимо работы с задачами, веб-интерфейс позволяет просматривать код репозитория: дерево файлов, файлы с подсветкой синтаксиса, историю коммитов и diff-ы.

Задача с комментариями и лентой событий
Просмотр кода репозитория в веб-интерфейсе

Веб-интерфейс встроен в тот же бинарный файл Go и раздаётся локальным HTTP-сервером. Взаимодействие с бэкендом происходит через GraphQL API, схема которого доступна здесь.

Мосты (Bridges)

git-bug поддерживает импорт и экспорт данных для Github, Gitlab, Jira и Launchpad. Информацию о возможностях каждого моста можно найти в матрице функций, а полное руководство по настройке — в документации по мостам.

Интерактивная настройка нового моста:

git bug bridge new

Или вручную:

git bug bridge new \
    --name=<bridge> \
    --target=github \
    --url=https://github.com/git-bug/git-bug \
    --login=<login> \
    --token=<token>

Импорт задач:

git bug bridge pull [<name>]

Экспорт изменений:

git bug bridge push [<name>]

Удаление моста:

git bug bridge rm [<name>]

Устройство системы

Интересует, как это работает внутри? Ознакомьтесь с моделью данных и общей архитектурой.

Формат хранения данных на диске формально описан в спецификации git-bug: там задокументированы формат сущностей на основе DAG, идентичности и сущность задачи. Это полезно читать, если вы хотите создать альтернативную реализацию или инструмент, который напрямую читает данные git-bug.

Смотрите также всю документацию.

Планируемые возможности

Матрица функций даёт хороший, хотя и неполный обзор того, что планируется реализовать.

Дополнительные запланированные возможности:

  • веб-интерфейс в режиме публичного портала для приёма обращений от пользователей

  • inflatable raptor

Участие в разработке

Принимаем Pull Request-ы. Заходите в Matrix-комнату пообщаться, изучайте матрицу функций или просматривайте задачи и обсуждения, чтобы быть в курсе активных работ.

Чтобы развернуть окружение разработчика, собрать проект и запустить тесты, обратитесь к CONTRIBUTING.md. Для работы над веб-интерфейсом загляните в его отдельный README.

Авторы :heart:

Проект существует благодаря всем, кто в него вносит свой вклад.

Бэкеры и спонсоры

Спасибо всем нашим бэкерам и спонсорам! 🙏 Стать бэкером или спонсором

Лицензия

Если не указано иное, проект распространяется на условиях лицензии GPLv3 или более поздней версии © Michael Muré.

Логотип git-bug, созданный Viktor Teplov, распространяется на условиях лицензии Creative Commons Attribution 4.0 International (CC BY 4.0) © Viktor Teplov.

© 2026 meganuke