Ниже представлена полная инструкция по организации автономного баг-трекинга с использованием системы git-bug, обеспечению доступа через веб-интерфейс и синхронизации с внешним сервисом GitHub для публикации изменений. Вся инфраструктура разворачивается на собственной локальной сети с применением двух устройств: сервера и основного компьютера разработчика.
Цели:
- Локальное хранение багов и отслеживание изменений с помощью системы git-bug.
- Предоставление доступа к изменениям через веб-интерфейс для мобильных устройств (Android).
- Возможность синхронизации изменений с GitHub для публичной демонстрации или привлечения сообщества.
Программное обеспечение:
- Git (apt install git)
- git-bug (git clone https://github.com/MichaelMure/git-bug.git)
- Apache Web Server (apt install apache2)
- Cgit (apt install cgit)
Базовая архитектура:
- Сервер (OrangePI):
- Хранение центрального репозитория.
- Веб-интерфейс для отображения изменений.
- Рабочая станция (Ubuntu):
- Работа с проектом, внесение изменений.
- Взаимодействие с сервером через SSH.
- Внешняя публикация (GitHub):
- Опциональный компонент для публикации изменений публично.
Практическое применение:
1. Настройка сервера (OrangePI):
- Установка программного обеспечения:
bash
Копировать
sudo apt update
sudo apt install git apache2 cgit
- Создание центрального репозитория:
bash
Копировать
mkdir /srv/git/savproject.git
cd /srv/git/savproject.git
git init --bare
- Настройка cgit:Откройте файл /etc/cgitrc и добавьте или отредактируйте следующие строки:
ini
Копировать
repo.url=/savproject.git
repo.path=/srv/git/savproject.git
scan-path=/srv/git
- Настройка Apache:Откройте файл /etc/apache2/sites-available/000-default.conf и добавьте следующие строки:
apacheconf
Копировать
ScriptAlias /cgit /usr/lib/cgit/cgit.cgi
- Перезагрузка Apache:
bash
Копировать
sudo systemctl restart apache2
- SSH-конфигурация:На сервере создайте SSH-ключ:
bash
Копировать
ssh-keygen -t rsa
Скопируйте публичный ключ на рабочую станцию (Ubuntu):
bash
Копировать
cat ~/.ssh/id_rsa.pub | ssh user@ubuntu_machine 'cat >> ~/.ssh/authorized_keys'
2. Настройка рабочей станции (Ubuntu):
- Клонирование репозитория:Клонируйте репозиторий с сервера:
bash
Копировать
git clone ssh://orangepi@192.168.1.75:/srv/git/savproject.git
- Инициализация git-bug:Установите git-bug:
bash
Копировать
git clone https://github.com/MichaelMure/git-bug.git
cd git-bug
make install
Инициализируйте git-bug в проекте:
bash
Копировать
cd savproject
git-bug init
- Внесение изменений и фиксация:Внесите изменения в проект, создайте новый баг:
- Как создать новый баг:
- Запустите интерактивный интерфейс git-bug:
- Для создания нового бага войдите в проект и запустите git-bug в режиме интерфейса:
bash
Копировать
git-bug termui
- Создайте новый баг:
- Интерфейс предложит выбрать действие. Выберите "Create New Bug" и заполните форму, следуя подсказкам.
- Зафиксируйте изменения:После создания бага не забудьте зафиксировать изменения в репозитории:
bash
Копировать
git commit -am "Добавлен новый баг"
git push origin master
#
bash
Копировать
git-bug new "Новый баг"
git commit -am "Добавлена поддержка баг-трекинга"
git push origin master
#
- Синхронизация с GitHub (необязательно):Создайте репозиторий на GitHub и свяжите его с локальным репозиторием:
bash
Копировать
git remote add github https://github.com/<username>/<reponame>.git
git push github master
3. Использование с Android-смартфона:
Для доступа к изменениям с Android-смартфона откройте браузер и перейдите по адресу:
Копировать
http://192.168.1.75/cgit
Теперь вы можете просматривать изменения и историю багов через мобильный браузер.
Заключение:
Данная инструкция охватывает весь цикл разработки от локального трекинга багов до предоставления доступа через веб-интерфейс и возможного размещения изменений на GitHub. Такой подход обеспечивает независимость от внешних сервисов и гибкость в управлении проектом.