{"meta":{"title":"Повышение качества кода репозитория","intro":"Оценивайте и устраняйте проблемы с качеством кода, обнаруженные в ветви по умолчанию, чтобы улучшить качество базы кода. По мере продвижения вы увидите, как рейтинг качества кода вашего репозитория будет повышаться.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/enterprise-cloud@latest/code-security","title":"Безопасность и качество кода"},{"href":"/ru/enterprise-cloud@latest/code-security/tutorials","title":"Tutorials"},{"href":"/ru/enterprise-cloud@latest/code-security/tutorials/improve-code-quality","title":"Улучшение качества кода"},{"href":"/ru/enterprise-cloud@latest/code-security/tutorials/improve-code-quality/improve-your-codebase","title":"Улучшите свою кодовую базу"}],"documentType":"article"},"body":"# Повышение качества кода репозитория\n\nОценивайте и устраняйте проблемы с качеством кода, обнаруженные в ветви по умолчанию, чтобы улучшить качество базы кода. По мере продвижения вы увидите, как рейтинг качества кода вашего репозитория будет повышаться.\n\n> \\[!NOTE]\n> GitHub Code Quality в настоящее время находится в public preview и может быть изменен.\n> Во время public preview, Code Quality не будут оплачиваться, хотя Code Quality сканирование займет GitHub Actions минут.\n\n## Введение\n\nЭто руководство проведёт вас через GitHub Code Quality обзор, приоритетизацию и устранение проблем со здоровьем кода в вашем репозитории — помогая систематически сократить технический долг, повысить надёжность и поддерживаемость, а также донести свой вклад до заинтересованных сторон.\n\n### Предпосылки\n\n* ```\n          Code Quality включена для вашего репозитория. См [. раздел AUTOTITLE](/code-security/code-quality/how-tos/enable-code-quality).\n  ```\n* Если вы включаете GitHub Code Quality его впервые, убедитесь, что вы подождали несколько минут после включения, чтобы полностью CodeQL сканировать стандартную ветку.\n\n## 1. Оцените общую работоспособность кода репозитория\n\n1. Перейдите на **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality** вкладку вашего репозитория, затем под «<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code-review\" aria-label=\"code review\" role=\"img\"><path d=\"M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z\"></path></svg> Качество кода», нажмите **Стандартные выводы**.\n2. Обзор на панели «Стандартные выводы» даёт вам мгновенную оценку состояния вашей ветки по умолчанию на сегодняшний день:\n\n   * ```\n          **Рейтинг поддерживаемости** отражает наличие и серьезность обнаруженных данных о мертвом коде, дублировании, сложности, отсутствующей документации и несоблюдении рекомендаций.\n     ```\n   * ```\n          **Рейтинг надежности** отражает наличие и серьезность результатов проверки правильности, производительности, обработки ошибок, параллелизма и специальных возможностей кода.\n     ```\n\n   ![Скриншот оценок качества кода в виде \"Стандартные выводы\" для Code Quality.](/assets/images/help/code-quality/all-findings-overview-repo.png)\n\n## 2. Определите и приоритизируйте наиболее значимые результаты\n\nВ виде \"Стандартные выводы\" вы увидите список результатов из Code Qualityпоследнего сканирования ветки по умолчанию репозитория. Эти выводы заключаются в следующем:\n\n* Сгруппированы по **правилам**, чтобы вы могли видеть, какие типы проблем больше всего влияют на вашу кодовую базу.\n* Присваивается уровень **важности** («Ошибка», «Предупреждение», «Примечание»).\n\n### Сосредоточьтесь на результатах с высокой степенью серьезности\n\nИспользуйте **фильтры** панели мониторинга, чтобы в первую очередь сосредоточиться на результатах с самым высоким уровнем серьезности («Ошибки») и проверить, какие правила вызывают больше всего проблем.\n\n![Скриншот, показывающий фильтры панели мониторинга для представления \"Стандартные выводы\".](/assets/images/help/code-quality/standard-findings-filters.png)\n\nЧтобы повысить удобство обслуживания или надежность репозитория, необходимо устранить (исправить или отклонить) все результаты с самым высоким уровнем серьезности для этой метрики.\n\nНапример, чтобы улучшить метрику \"Надежность\" репозитория с **\"Требуется улучшение** \" до **\"Удовлетворительно**\", необходимо рассмотреть и устранить все **обнаруженные ошибки на уровне ошибок, влияющие** на надежность. Если у вас есть одна или несколько обнаруженных ошибок на уровне ошибки, ваш рейтинг не может быть выше «Требует улучшения». См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/code-quality/reference/metrics-and-ratings).\n\n## 3. Изучите группу выводов и поймите контекст\n\nПосле того как вы определили правило с несколькими результатами, которые вы хотите устранить, вы можете продолжить исследование, чтобы понять основные проблемы.\n\n1. Щелкните имя правила, чтобы перейти к подробному просмотру всех результатов для этого правила.\n\n   ![Скриншот, показывающий правило в виде \"Стандартные выводы\". Название правила выделено темно-оранжевым цветом.](/assets/images/help/code-quality/click-rule-name.png)\n\n2. ```\n          **Нажмите Показать больше**, затем ознакомьтесь с объяснением правила, рекомендуемым исправлением, примерами вспомогательного кода и ссылками.\n   ```\n\n   ![Скриншот, показывающий результаты для правила качества кода. Текст «Показать еще» выделен темно-оранжевым цветом.](/assets/images/help/code-quality/click-show-more.png)\n\n## 4. Выберите варианты исправления\n\nОцените все выделенные выводы на предмет достоверности, влияния и риска. Чтобы повысить свой рейтинг качества, вам необходимо устранить каждую находку, либо исправить ее, либо отклонить.\n\n### Создание автоисправления\n\nЕсли результат выглядит обоснованным и релевантным для вашей кодовой базы, вы можете сгенерировать предлагаемое исправление.\n\n1. Справа от отдельного находки нажмите **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copilot\" aria-label=\"copilot\" role=\"img\"><path d=\"M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z\"></path><path d=\"M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z\"></path></svg> Generate fix**.\n\n2. Внимательно просмотрите различия предложенного изменения и, если вы согласны с ним, нажмите **кнопку Открыть запрос на вытягивание**.\n\n3. В диалоговом окне \"Зафиксировать автоисправление в ветвь\" выберите \"Открыть запрос на вытягивание\", затем нажмите **Зафиксировать изменение**.\n\n   > \\[!TIP]\n   > В настоящее время невозможно создать автоматические исправления для группы находок в массовом порядке.\n   >\n   > Если вы хотите устранить несколько находок с помощью одного запроса на вытягивание, повторите шаги 1 и 2 выше, затем в диалоговом окне \"Зафиксировать автоисправление в ветвь\" используйте имя ветви, которое вы уже создали для первого автоисправления, затем выберите \"Открыть запрос на вытягивание\" и **зафиксируйте изменение**.\n   >\n   > Исправление будет добавлено в существующий черновик запроса на вытягивание для вашей ветви.\n\n4. Когда вы будете готовы, измените статус запроса на вытягивание с «Черновик» на «Готов к проверке» и внимательно изучите предложенные изменения. Дождитесь завершения и прохождения всех проверок CI и автоматических тестов, прежде чем объединять запрос на вытягивание.\n\n### Отклонение результата\n\nВы можете отклонить вывод, если он не имеет отношения к вашей кодовой базе или не требует действий. Распространенные причины для отклонения заключения включают:\n\n* Находка содержится в устаревшем коде, который больше не поддерживается.\n* Это известное исключение из стандартов программирования вашей команды.\n* Это ложное срабатывание, которое не представляет реального риска для качества.\n\nОтклонение неактуальных оповещений позволяет вашим проверкам качества сосредоточиться на значимых проблемах.\n\n1. Чтобы отклонить вывод, нажмите **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield-slash\" aria-label=\"Dismiss\" role=\"img\"><path d=\"M8.533.133a1.75 1.75 0 0 0-1.066 0l-2.091.67a.75.75 0 0 0 .457 1.428l2.09-.67a.25.25 0 0 1 .153 0l5.25 1.68a.25.25 0 0 1 .174.239V7c0 .233-.008.464-.025.694a.75.75 0 1 0 1.495.112c.02-.27.03-.538.03-.806V3.48a1.75 1.75 0 0 0-1.217-1.667L8.533.133ZM1 2.857l-.69-.5a.75.75 0 1 1 .88-1.214l14.5 10.5a.75.75 0 1 1-.88 1.214l-1.282-.928c-.995 1.397-2.553 2.624-4.864 3.608-.425.181-.905.18-1.329 0-2.447-1.042-4.049-2.356-5.032-3.855C1.32 10.182 1 8.566 1 7Zm1.5 1.086V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297.05.02.106.02.153 0 2.127-.905 3.439-1.982 4.237-3.108Z\"></path></svg>**.\n2. Находка исчезнет из списка открытых находок. Вы по-прежнему можете просмотреть и повторно открыть отклоненные результаты на вкладке «Отклоненные» в верхней части страницы.\n\n## 5. Измеряйте улучшения и сообщайте о влиянии\n\nПосле завершения работ по устранению вернитесь на панель управления «Стандартные выводы» для просмотра обновлённых показателей надёжности и поддерживаемости.\n\nСообщая заинтересованным сторонам о своем влиянии, подчеркните:\n\n* Любое **уменьшение** количества результатов для «Надежности» или «Ремонтопригодности».\n* Любые **изменения в рейтинге** надежности или ремонтопригодности.\n* Требования, которые были выполнены для достижения изменения рейтинга. Например, исправление всех обнаруженных результатов на уровне \"Предупреждение\" привело к изменению рейтинга с \"Удовлетворительно\" на \"Хорошо\".\n\nИспользуйте улучшения в рейтингах качества и сокращение количества результатов для демонстрации прогресса.\n\n## 6. Применение стандартов качества кода для запросов на вытягивание\n\nЕсли вы еще этого не сделали, настройте пороговые значения качества для запросов на вытягивание, чтобы заблокировать любые изменения в базе кода, которые могут снизить работоспособность базы кода. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/code-quality/how-tos/set-pr-thresholds).\n\n## Дальнейшие шаги\n\n* Еще больше сократите технический долг, исправив результаты в недавно измененных файлах. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/code-quality/tutorials/improve-recent-merges).\n* Оставляйте обратную GitHub Code Quality связь в [обсуждении сообщества](https://github.com/orgs/community/discussions/177488)."}