Небольшое REST-Api приложение для управления задачами.
Позволяет создавать, редактировать, просматривать и удалять задачи, а также отслеживать их статусы и получать статистику.
# Клонировать репозиторий и установить зависимости
go mod download
# Собрать приложение
go build -o todo
# Или запустить напрямую
go run main.goЗапуск всех тестов
go test ./...добавьте аргумент
-vесли нужен детальный вывод
Для просмотра покрытия тестами пакетов
go test -cover ./...Более детальный отчет в html
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.outПри разработке нужно включить git-hooks для автоматизации запуска тестов, проверки кода и других подобных задач
brew install lefthookУстановить необходимые зависимости
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
go install golang.org/x/tools/cmd/goimports@latestОбновить хуки после изменения конфига
lefthook install -fПроверка конфигурационного файла lefthook.yml
lefthook dumpЗапуск хуков
lefthook run pre-commit
lefthook run pre-pushЗапуск конкретной команды
lefthook run pre-commit --commands="lint"Пропустить все хуки
LEFTHOOK=0 git commit -m "message"Workflow pr-review.yml автоматически запускается при создании или обновлении Pull Request в ветку master или main и выполняет интеллектуальное код-ревью с помощью Perplexity AI.
- Потенциальные баги и ошибки
- Безопасность (SQL injection, XSS, обработка ошибок)
- Производительность и оптимизации
- Качество кода и Go best practices
- Наличие и качество тестов
- Документация и комментарии
- Архитектура и паттерны проектирования
- Дублирование кода и рефакторинг
При форке перейдите в настройки репозитория:
Settings->Secrets and variables->Actions->New repository secretи добавьтеPERPLEXITY_API_KEY
Вы можете запустить скрипт локально:
Установка окружения и зависимостей:
python -m venv venv
source venv/bin/activate
pip install requestsЭкспорт необходимых переменных:
export PERPLEXITY_API_KEY="your-api-key"
export PERPLEXITY_AI_MODEL_NAME="sonar-pro"
export GITHUB_TOKEN="your-github-token"
export PR_NUMBER="123"
export REPO_NAME="username/repo"
export PR_DIFF="$(git diff master)"Запуск:
python .github/scripts/perplexity_review.py