Files
omnichannel-configserver-mcp/CONTRIBUTING.md
T
2026-10-07 20:13:23 +07:00

48 lines
1.8 KiB
Markdown

# Разработка
Внутренний проект. Ниже — короткие правила, чтобы изменения проходили ревью
быстро.
## Окружение
```bash
export GOPRIVATE=git.totmin.ru
make build # собрать бинарник
make ci # build + test(race) + lint + tidy-check (то же, что CI)
```
Требуется Go 1.27+ и доступ к приватному модулю `forge-toolkit` на
`git.totmin.ru` (для него задаётся `GOPRIVATE`).
## Локальный стенд
```bash
make demo # поднять config_server v1.1.0 и прогнать сквозной сценарий
make demo-down # остановить и очистить
```
## Принципы кода
- Домен (`internal/configserver`) не зависит от MCP; MCP-слой
(`internal/tools`) — только трансляция запрос/ответ.
- Простота и читаемость важнее «умности»; код документируется по существу.
- Новый инструмент: схема с описанием, обработчик, тест, запись в
`docs/tools.md`.
- Секреты только из переменных окружения или `config.local.json`
(в `.gitignore`), никогда — в `config.json` и коде.
## Перед коммитом
```bash
make ci
```
Проверки: `gofmt`, `go vet`, `go test -race`, `golangci-lint`, `go mod tidy`.
CI (`.gitea/workflows/ci.yml`) запускается на PR и push в `main`.
## Коммиты и PR
- Осмысленные сообщения; в PR — что, зачем, как проверяли, влияние на
безопасность.
- Пользовательские изменения отмечайте в `CHANGELOG.md`.