Рубрики
Без рубрики

Настройка статического анализа кода для Python

Настройка статического анализа кода с автоматическим форматированием кода для репозиториев Python на GitHub с DeepSource. Теги с статиканализом, CodeReview, Python.

Анализ статического кода это методика аппроксимации времени выполнения программы. Другими словами, это процесс прогнозирования вывода программы без его выполнения. Это то, что делает DeepSource, статически анализируя ваш проект и сообщает вам о потенциальных вопросах качества кода, которые могут быть решены в течение не времени.

Это то, что мы будем делать здесь в этом блоге. Мы постараемся интегрировать DeepSource через разветвленный репо, в частности, на проекте Python, а также провести анализ. Мы дополнительно исправим некоторые проблемы с помощью инструмента AUTO-FIX и пусть трансформаторы фиксируют некоторые проблемы укладки для нашего проекта.

Давайте начнем!

Примечание: В этом руководстве мы будем анализировать только проект Python на Github. Однако шаги для других языков и платформ аналогичны.

Шаги для интеграции DeepSource с GitHub

DeepSource требует всего несколько шагов для интеграции непрерывного анализа на любом хранилище. Процесс выглядит так:

  • Создать учетную запись в Depsource
  • Выберите репозиторий Python, чтобы проанализировать.
  • Посетите на панель инструментов DeepSource.
  • Выберите свой проект из списка репозитория.
  • Добавить файл конфигурации DeepSource.
  • Запустить анализ.

Довольно просто, не так ли! Давайте теперь подробно посмотрим на шаги: мы сначала посмотрим проект Python на Github.

SIH-2019 – это проект визуализации данных статистики национальной учетной записи, который был построен в течение 36 часов. Короткий промежуток времени, как это может быть очевидным фактором введения проблем качества кода.

Давайте теперь видели эту репо и откройте нашу приборную панель Deepsource и активируйте репо.

Из этого списка вы можете выбрать проект, на котором вы хотите запустить анализ. Вот, я выбираю pnijhara/sih-2019 которые я развесил. После нажатия на репозиторий вы будете руководствоваться добавлять файл конфигурации DeepSource. Файл конфигурации содержит исключение шаблонов файлов, которые рассказывают DeepSource, чтобы не анализировать эти набор файлов, они могут быть миграцией, пример кода, данные, шаблоны и т. Д.

Сопровождается тестовыми шаблонами файлов для указания тестовых файлов. Эти все шаблоны написаны как шаблоны для шаров. Вы можете прочитать больше о том, как написать эти шаблоны правильно здесь Отказ После чего вы должны указать язык (ы), которые вы хотите, чтобы глубоко искать в вашем проекте. И, наконец, сопровождается трансформатором для улучшения стиля кода.

  • Из списка проектов выберите проект.
  • Генерировать конфигурация

    • (Необязательно, но важно) Написать исключение шаблонов файлов и тестовые шаблоны файла
    • Выберите анализатор как Python
    • (По желанию) Если ваш проект содержит DockerFile, включить докер
    • Выберите трансформатор

Вы можете напрямую передать файл конфигурации в GitHub одним щелчком мыши. Это добавит коммит к главной отрасли вашего репо. Или вы можете вручную добавить файл. DeepSource автоматически посмотрит на .deepsource.toml Конфигурация файла и начните выполнять анализ.

Обзор панели инструментов

Как только вы совершаете файл конфигурации в GitHub, DeepSource начинает анализировать репо. Первый прогон может занимать когда-нибудь, но в основном в течение 5 минут пролета и генерирует отчет, содержащий проблемы, которые могут быть исправлены.

Категоризация выпуска

DeepSource делит проблемы в Категории Такие как антиблокировки, ошибка, риск, стиль, производительность, безопасность и документация. Из чего глубоко на основе собранных данных рекомендует вам некоторые проблемы, которые можно рассматривать как высокий приоритет.

Автоматизированный форматирование кода

Как только анализ завершит DeepSource, автоматически отправляет PR, связанный с проблемами фиксации стиля из-за добавления трансформатора (черный).

Выдавать сортировку

Хотя DeepSource гарантирует меньше, чем 5% ложных срабатываний , вы все еще можете игнорировать проблемы, которые вы обнаружите, не имеете отношение к проекту или сделаны намеренно. Подробнее о игнорировании вопросов здесь Отказ

Открыть вопрос на github

DeepSource позволяет вам создавать проблемы GitHub непосредственно с помощью приборной панели на вашем репо, чтобы позволить другим участникам обсудить и исправить его. Опять же, это простое задание. Вам просто нужно открыть любую проблему, найденную Be Depsource и нажмите на кнопку «Создать проблему на github». Эта кнопка позволяет создать проблему на странице вашего репозитория напрямую страницу VCS. Вы можете редактировать описание проблемы и это заголовок до создания проблемы, и вы также сможете добавлять теги или назначить его кому-то в вашей команде.

Это перенаправляет вас на ваше репо с проблемой, которую вы можете открыть.

Примечание. Вы можете создавать проблемы GitHub через этот метод, только если настройки репозитория позволяют вам сделать. Иначе вы получите ошибку 404.

Автофиксируемые проблемы

Многие вопросы, которые нашли Degsource, могут быть автоматически закреплены в клике. DeepSource отправляет запрос на потяжку для вас с помощью исправления, который может быть объединен сразу при одобрении. В вышеупомянутом проекте, когда Deepsource обнаружил, что 278 выпусков из них 64 могут быть автофиксированными. Ищите кнопку «Autofix» против проблемы.

И с одним щелчком щелчков сгенерирован PR для REPO с дополнительным фиксированным кодом с черным (трансформаторным).

использованная литература

Оригинал: “https://dev.to/deepsource/setup-static-code-analysis-for-python-47c8”