个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Платформа для построения процесса работы с баг-репортами
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Инструмент для баг-репортов: тестировщик заводит репорт, разработчик видит шаги, факт и ожидание, переписка и вложения лежат рядом с багом. Self-hosted, MIT. Миссия: создавать процесс работы с багами, делая упор на удобство и эффективность. Собираетесь что-то править? Правила разработки — в AGENTS.md, дисциплина PR и формат коммита — в docs/CONTRIBUTING.md. Хранилища: PostgreSQL (две базы — app_db и users_db) и Redis (ротация refresh-токенов, кэш пользователей).查看完整 README ↗
Инструмент для баг-репортов: тестировщик заводит репорт, разработчик видит шаги, факт и ожидание, переписка и вложения лежат рядом с багом. Self-hosted, MIT.
Миссия: создавать процесс работы с багами, делая упор на удобство и эффективность.
Собираетесь что-то править? Правила разработки — в AGENTS.md, дисциплина PR и формат коммита — в docs/CONTRIBUTING.md.
| Компонент | Образ | Описание |
|---|---|---|
backend/ | ghcr.io/gently-whitesnow/bugget-api | API: репорты, пользователи и авторизация в одном процессе |
frontend/ | ghcr.io/gently-whitesnow/bugget-ui | SPA на React |
deploy/nginx/ | ghcr.io/gently-whitesnow/bugget-nginx-self-hosted | Точка входа: маршрутизация и проверка авторизации |
Хранилища: PostgreSQL (две базы — app_db и users_db) и Redis (ротация refresh-токенов, кэш
пользователей).
Из зависимостей нужен только Docker с compose v2: весь контур собирается из исходников
в контейнерах. Node 24 и .NET SDK 9 (версия зафиксирована в global.json) понадобятся
дальше, для локальной разработки фронта и бэкенда.
cd deploy
docker compose -f docker-compose.yml -f docker-compose.dev.yml \
--env-file env/dev.env --profile full up --build
Приложение поднимется на http://localhost. В dev-режиме доступен fake-логин без внешнего провайдера:
http://localhost/api/authorization/v1/fake/login?externalId=user-1&name=Tester
Остановить и удалить данные:
cd deploy
docker compose -f docker-compose.yml -f docker-compose.dev.yml \
--env-file env/dev.env --profile full down -v
Флаги, профили compose, порты и конфигурация — deploy/README.md.
Фронтенд локально с hot reload, бекенд в docker — frontend/README.md. Структура и команды бекенда — backend/README.md.
Два входа — оба запускают человек, агент и CI:
harness check # рамка репозитория (.harness.json)
./scripts/verify.sh # сборка, тесты, контракты, линтеры
./scripts/verify.sh backend # только бекенд
./scripts/verify.sh frontend # только фронтенд
harness — CLI, который проверяет сам
репозиторий: связность и циклы зависимостей, дубли, долю комментариев, подавленные
диагностики, настройки сборки .NET, документацию и формат коммитов. Тесты и сборку он не
запускает — за них отвечает verify.sh. Версия запинена полем version в .harness.json:
бинарь другой версии отвечает кодом 2, поэтому ставится ровно она. Установка и подготовка клона:
curl -fsSL https://raw.githubusercontent.com/gently-whitesnow/harness-cli/master/install.sh \
| HARNESS_VERSION="$(jq -r .version .harness.json)" sh
export PATH="$HOME/.local/bin:$PATH"
harness setup # хук commit-msg и шаблон сообщения коммита, один раз на клон
harness guide # как работать с рамкой: цикл check → explain, exit-коды, коммиты
scripts/verify.sh — обычный bash-скрипт: шаги идут подряд, первый упавший останавливает
прогон. Новый шаг добавляется прямо в него. Нужен python3; интеграционные тесты бекенда
поднимают Postgres и Keycloak в Docker (Testcontainers).
Контракты API — specs/contracts/<module>/openapi.yaml, общие схемы —
specs/contracts/shared.yaml. Это источник правды: *.g.cs и фронтовые *.d.ts только
генерируются (scripts/contracts/openapi-generate.sh, frontend-openapi-generate.sh).
Контроллеры наследуют сгенерированные базы, поэтому маршрут или форма ответа мимо контракта
не компилируются. Realtime-события SignalR описаны в specs/contracts/events.yaml (ADR-0007).
Архитектурные решения и причины — adrs/REGISTRY.md.