48 lines
1.8 KiB
Markdown
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`.
|