## Прожарка: 1C2GIT  
**Оценка: 4/10**

### Критично
- [⚠ МНЕНИЕ] **conf.go:126, 241, 540, 559** – `exec.Command` получает параметры из переменных, а не из констант. Если эти строки формируются из пользовательского ввода (например, путь к репозиторию), открывается возможность **командной инъекции**.  
- [⚠ МНЕНИЕ] **main.go:204** – сервер стартует через `http.ListenAndServe`, без TLS. В продакшн‑окружении это значит, что любой трафик передаётся в открытом виде.  
- [⚠ МНЕНИЕ] **main.go:410** – используется SHA‑1 для хеширования (внутри `gitHash`), что уже считается небезопасным и может привести к коллизиям.  
- [⚠ МНЕНИЕ] **index.html:339** – WebSocket открывается по `ws://`, а не `wss://`. При работе через публичный интернет соединение легко перехватить.  
- [✓ ФАКТ: CVE-Ищейка] **trivy** – зависимости `github.com/sirupsen/logrus` (CVE‑2025‑65637) и `golang.org/x/net` (три CVE) содержат уязвимости DoS и возможный обход прокси. В текущем виде приложение может стать вектором отказа в обслуживании.  

### Надо переделать
- [✓ ФАКТ: YAML-Граммарнаци] **YAML‑конфиги** (`.github/workflows/go.yml`, `.golangci.yaml`) – добавить `---` в начало и гарантировать перевод строки в конце файла; заменить «truthy» (`true`/`false`) на явные булевы литералы, иначе CI ругается.  
- [⚠ МНЕНИЕ] **Конфигурационный парсер** – в `conf.go` присутствуют функции, которые читают файлы, но их результаты нигде не используются; удалить или подключить к основной логике.  
- [⚠ МНЕНИЕ] **Импорт‑мусор** – в нескольких файлах (`utils.go`, `api.go`) импортированы пакеты (`fmt`, `log`) без последующего обращения – приводит к лишнему бинарному весу.  
- [⚠ МНЕНИЕ] **Логика UI** – в `static/` лежат HTML‑шаблоны, но в `main.go` нет роутов, которые их обслуживают; либо добавить обслуживающий обработчик, либо убрать неиспользуемые шаблоны.  

### Мелочи
- [⚠ МНЕНИЕ] Имена функций (`DoStuff`, `Handle`) слишком общие, затрудняют поиск по коду.  
- [⚠ МНЕНИЕ] Комментарии почти отсутствуют, а где есть – написаны на русском без пояснения алгоритма.  
- [⚠ МНЕНИЕ] Форматирование кода в нескольких файлах нарушает `gofmt` (отсутствие табуляций, лишние пробелы).  
- [⚠ МНЕНИЕ] В `go.mod` указана версия Go 1.22, но CI использует Go 1.21 – потенциальный рассинхрон сборки.  

### Что хорошо
- [⚠ МНЕНИЕ] **Структура репозитория**: отдельные директории для конфигурации (`conf.go`), веб‑интерфейса (`index.html`, `static/`), CI (`.github/workflows/`).  
- [✓ ФАКТ: Код-Рентген] **CI‑pipeline**: GitHub Actions собирает проект, запускает `golangci-lint` и `semgrep` – автоматическое обнаружение проблем уже внедрено.  
- [⚠ МНЕНИЕ] **Логирование**: используется `logrus`, что даёт гибкую настройку уровней и форматирование.  
- [⚠ МНЕНИЕ] **Docker‑файл** отсутствует, но в CI явно прописаны шаги сборки образа, что упрощает деплой в контейнере.  
- [⚠ МНЕНИЕ] **Тестов** пока нет, но структура кода позволяет добавить `*_test.go` без глобальных изменений.  

### Вердикт
Проект выглядит как **законченное, но недоделанное** средство синхронизации 1C с Git: идеи присутствуют, однако критические уязвимости и набор мелких недочётов делают его непригодным для продакшна без серьёзного рефакторинга.

---

*Анализ выполнен автоматически методами статического анализа (SAST) публично доступного репозитория. Активное сканирование и тестирование на проникновение не проводились. Значения обнаруженных секретов, персональные данные и пути эксплуатации уязвимостей не раскрываются. Цитирование кода — в соответствии со ст. 1274 ГК РФ. Результат является оценочным суждением и не заменяет профессиональный аудит безопасности. Пункты помечены: ✓ факт (линтер), ⚠ мнение (AI), ✗ неверно (опровергнуто).*
