Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .env.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Тестовые переменные окружения
DATABASE_URL=sqlite+aiosqlite:///./test.db
SECRET_KEY=test-secret-key-for-testing-only
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
ENVIRONMENT=test

# Настройки для тестирования
TESTING=true
LOG_LEVEL=WARNING
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug Report
about: Создать отчет об ошибке
title: '[BUG] '
labels: bug
assignees: ''
---

## Описание ошибки
Краткое и понятное описание ошибки.

## Шаги для воспроизведения
1. Перейти к '...'
2. Нажать на '...'
3. Прокрутить вниз до '...'
4. Увидеть ошибку

## Ожидаемое поведение
Описание того, что должно было произойти.

## Фактическое поведение
Описание того, что произошло на самом деле.

## Скриншоты
Если применимо, добавьте скриншоты для объяснения проблемы.

## Окружение
- ОС: [например, Ubuntu 20.04]
- Python версия: [например, 3.12]
- Версия приложения: [например, 1.0.0]

## Логи
```
Вставьте соответствующие логи здесь
```

## Дополнительный контекст
Добавьте любой другой контекст о проблеме здесь.
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Feature Request
about: Предложить новую функциональность
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Описание функциональности
Краткое описание желаемой функциональности.

## Мотивация
Объясните, зачем нужна эта функциональность. Какую проблему она решает?

## Предлагаемое решение
Описание того, как вы видите реализацию этой функциональности.

## Альтернативы
Описание альтернативных решений или функций, которые вы рассматривали.

## Дополнительный контекст
Добавьте любой другой контекст или скриншоты о запросе функциональности здесь.

## Приоритет
- [ ] Низкий
- [ ] Средний
- [ ] Высокий
- [ ] Критический
38 changes: 38 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Pull Request

## Описание изменений
<!-- Опишите, что изменилось в этом PR -->

## Тип изменений
<!-- Отметьте подходящие варианты -->
- [ ] 🐛 Исправление бага
- [ ] ✨ Новая функциональность
- [ ] 💄 Улучшение UI/UX
- [ ] ♻️ Рефакторинг кода
- [ ] 📝 Обновление документации
- [ ] 🔧 Изменения в конфигурации
- [ ] ⚡ Улучшение производительности
- [ ] 🔒 Исправления безопасности

## Связанные задачи
<!-- Укажите номера issues, если есть -->
Closes #

## Тестирование
<!-- Опишите, как тестировались изменения -->
- [ ] Добавлены новые тесты
- [ ] Все существующие тесты проходят
- [ ] Проведено ручное тестирование

## Чеклист
- [ ] Код соответствует стандартам проекта
- [ ] Добавлена документация для новых функций
- [ ] Обновлены тесты
- [ ] Проверена безопасность изменений
- [ ] Проверена производительность

## Скриншоты (если применимо)
<!-- Добавьте скриншоты для UI изменений -->

## Дополнительные заметки
<!-- Любая дополнительная информация для ревьюеров -->
107 changes: 107 additions & 0 deletions .github/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# CI/CD Configuration

Этот проект использует GitHub Actions для автоматизации процессов разработки.

## Workflows

### 🔄 CI/CD Pipeline (`ci.yml`)
Основной pipeline, который запускается при каждом push и pull request:

- **Тестирование**: Запуск unit и integration тестов
- **Проверка качества кода**: Линтинг, форматирование, типизация
- **Сканирование безопасности**: Bandit и Safety проверки
- **Сборка Docker образа**: Автоматическая сборка и публикация
- **Деплой**: Автоматический деплой в staging/production

### 📊 Code Quality (`code-quality.yml`)
Проверка качества кода:

- Black (форматирование)
- isort (сортировка импортов)
- Flake8 (линтинг)
- MyPy (проверка типов)
- Bandit (безопасность)
- Radon (сложность кода)

### 🔄 Dependency Update (`dependency-update.yml`)
Автоматическое обновление зависимостей каждый понедельник.

### 🚀 Release (`release.yml`)
Автоматическое создание релизов при создании тегов.

## Настройка

### 1. Secrets
Добавьте следующие secrets в настройках репозитория:

- `GITHUB_TOKEN` - автоматически доступен
- Дополнительные secrets для деплоя (если нужны)

### 2. Environments
Создайте environments в настройках репозитория:

- `staging` - для тестового окружения
- `production` - для продакшн окружения

### 3. Branch Protection
Настройте защиту веток:

- Требовать проверку статуса CI
- Требовать актуальные ветки
- Ограничить push в main/develop

## Локальная разработка

### Pre-commit хуки
```bash
make pre-commit-install
```

### Запуск тестов локально
```bash
make ci-test
```

### Проверка качества кода
```bash
make ci-lint
```

### Проверка безопасности
```bash
make ci-security
```

## Деплой

### Staging
Автоматически деплоится при push в `develop` ветку.

### Production
Автоматически деплоится при создании release.

### Ручной деплой
Можно запустить workflow вручную через GitHub Actions UI.

## Мониторинг

- Codecov для покрытия тестами
- GitHub Security для уязвимостей
- Dependabot для обновления зависимостей

## Troubleshooting

### Тесты падают в CI
1. Проверьте логи в GitHub Actions
2. Запустите тесты локально: `make ci-test`
3. Проверьте переменные окружения

### Проблемы с качеством кода
1. Запустите локально: `make ci-lint`
2. Исправьте ошибки автоматически: `make format`
3. Проверьте конфигурацию в `.flake8` и `pyproject.toml`

### Проблемы с Docker
1. Проверьте Dockerfile
2. Убедитесь, что все зависимости указаны
3. Проверьте логи сборки в Actions
40 changes: 40 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
version: 2
updates:
# Обновления Python зависимостей
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
open-pull-requests-limit: 10
reviewers:
- "gooodh" # Замените на ваш username
assignees:
- "gooodh" # Замените на ваш username
commit-message:
prefix: "deps"
include: "scope"

# Обновления GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
open-pull-requests-limit: 5
reviewers:
- "gooodh" # Замените на ваш username
commit-message:
prefix: "ci"
include: "scope"

# Обновления Docker
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
open-pull-requests-limit: 5
Loading
Loading