Проверки DevOps и безопасности
Что ищет каждая из 50 проверок, почему это важно и как исправить. Проверить публичный репозиторий бесплатно →
Безопасность
- Как найти и убрать секреты, закоммиченные в Git-репозиторий
- Почему .env должен быть в .gitignore (и как проверить, что он уже не закоммичен)
- Файл .env закоммичен в репозиторий: что делать
- Автообновление зависимостей: Dependabot или Renovate
- Как закрепить GitHub Actions на commit SHA
- Минимальные права GITHUB_TOKEN в workflow
- Ловушка pull_request_target в GitHub Actions
- Инъекции в скриптах GitHub Actions и как их избежать
- Self-hosted раннеры в публичных репозиториях
- Деплой из GitHub Actions через OIDC вместо хранимых облачных ключей
- Закрепление образов в GitLab CI
- Закрепление include из других проектов в GitLab CI
- Деплой из GitLab CI через OIDC (id_tokens) вместо хранимых ключей
Hygiene
- Как добавить политику безопасности SECURITY.md в репозиторий
- Как настроить CODEOWNERS для обязательного ревью
- Что должно быть в хорошем README
- Как написать README, по которому проект можно запустить
- Как вести CHANGELOG: форматы и инструменты
- Как написать CONTRIBUTING
- Шаблоны pull request и issue
- Зачем репозиторию .gitignore
- Как описать переменные окружения в .env.example
- Как выбрать и добавить LICENSE
- Поддерживается ли ещё репозиторий?
CI/CD
Docker
- Как написать Dockerfile для продакшена
- Что добавить в .dockerignore
- Как добавить healthcheck в Docker
- Как запустить Docker-контейнер не от root
- Зачем закреплять базовый образ Docker (а не :latest или python:slim)
- Multi-stage сборка в Docker: меньше и безопаснее образ
- Как задать лимиты памяти и CPU в docker-compose