Skip to content

Conversation

@nixel2007
Copy link
Member

@nixel2007 nixel2007 commented Jan 2, 2026

Summary by CodeRabbit

Примечания к выпуску

  • Chores
    • Добавлена автоматизированная проверка качества (новый CI-воркфлоу «Контроль качества»), запускающаяся при пуше, запросе на слияние и вручную для постоянного мониторинга качества.
    • Обновлён путь к отчёту покрытия кода, чтобы CI корректно собирал и отображал показатели покрытия.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings January 2, 2026 18:10
@coderabbitai
Copy link

coderabbitai bot commented Jan 2, 2026

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Добавлен новый GitHub Actions workflow "Контроль качества" и обновлён путь отчёта покрытия для SonarQube; workflow переиспользует внешний workflow sonar и передаёт входные параметры и секрет SONAR_TOKEN.

Changes

Cohort / File(s) Изменения
Рабочий процесс контроля качества
\.github/workflows/qa.yaml
Новый файл. Определяет workflow с именем "Контроль качества", триггеры: push, pull_request, workflow_dispatch. Содержит задачу sonar, которая переиспользует workflow autumn-library/workflows/.github/workflows/sonar.yml@main и передаёт входы: coveralls=true, github_repository=oscript-library/ovm, oscript_version='dev', test_engine='oneunit'; перенаправляет секрет SONAR_TOKEN.
Конфигурация SonarQube
sonar-project.properties
Обновлён путь к файлу покрытия: sonar.coverageReportPaths изменён с coverage/genericCoverage.xml на out/genericCoverage.xml.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 В репо прыгаю я, важен миг —

Контроль качества — новый друг мой велик.
Sonar мурлычет, отчёт сменил путь,
Тесты готовятся — кролик на взлёт! 🥕✨

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes: adding a QA workflow specifically for OneUnit testing, which matches the new workflow file and configuration updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new GitHub Actions workflow for quality assurance (QA) that integrates OneUnit testing with Sonar analysis for the ovm project.

  • Adds a new QA workflow file that triggers on push, pull requests, and manual dispatch
  • Configures the workflow to use a reusable Sonar workflow from autumn-library with OneUnit as the test engine
  • Sets up Coveralls integration and specifies the dev version of oscript for testing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

oscript_version: 'dev'
test_engine: 'oneunit'
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Copy link

Copilot AI Jan 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is trailing whitespace at the end of this line. Trailing whitespace should be removed to maintain clean code formatting.

Suggested change
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

Copilot uses AI. Check for mistakes.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (3)
.github/workflows/qa.yaml (3)

11-11: Рекомендуется закрепить версию внешнего рабочего процесса.

Использование @main может привести к непредсказуемым изменениям поведения при обновлении внешнего рабочего процесса. Рекомендуется закрепить конкретную версию или тег для обеспечения воспроизводимости сборок.

🔎 Предлагаемое исправление
-    uses: autumn-library/workflows/.github/workflows/sonar.yml@main
+    uses: autumn-library/workflows/.github/workflows/[email protected]  # или конкретный commit SHA

14-14: Рекомендуется использовать контекстную переменную для имени репозитория.

Жёстко заданное имя репозитория снижает переносимость рабочего процесса. Рекомендуется использовать ${{ github.repository }} для автоматического получения имени репозитория.

🔎 Предлагаемое исправление
-      github_repository: oscript-library/ovm
+      github_repository: ${{ github.repository }}

17-18: Настройка секретов корректна, но есть незначительная проблема форматирования.

Передача SONAR_TOKEN настроена правильно. Однако в конце строки 18 присутствует пробел.

🔎 Предлагаемое исправление
-      SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 
+      SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 278a1d0 and 8142431.

📒 Files selected for processing (1)
  • .github/workflows/qa.yaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (20)
  • GitHub Check: sonar / test
  • GitHub Check: test (dev, 1testrunner) / build (ubuntu-latest, dev, 1testrunner)
  • GitHub Check: test (dev, 1testrunner) / build (windows-latest, dev, 1testrunner)
  • GitHub Check: test (default, 1testrunner) / build (windows-latest, default, 1testrunner)
  • GitHub Check: test (stable, 1testrunner) / build (macos-latest, stable, 1testrunner)
  • GitHub Check: test (dev, oneunit) / build (ubuntu-latest, dev, oneunit)
  • GitHub Check: test (default, 1testrunner) / build (macos-latest, default, 1testrunner)
  • GitHub Check: test (stable, 1testrunner) / build (ubuntu-latest, stable, 1testrunner)
  • GitHub Check: test (stable, 1testrunner) / build (windows-latest, stable, 1testrunner)
  • GitHub Check: sonar / test
  • GitHub Check: test (default, 1testrunner) / build (ubuntu-latest, default, 1testrunner)
  • GitHub Check: test (dev, oneunit) / build (windows-latest, dev, oneunit)
  • GitHub Check: test (stable, 1testrunner) / build (windows-latest, stable, 1testrunner)
  • GitHub Check: test (default, 1testrunner) / build (windows-latest, default, 1testrunner)
  • GitHub Check: test (dev, 1testrunner) / build (macos-latest, dev, 1testrunner)
  • GitHub Check: test (stable, 1testrunner) / build (macos-latest, stable, 1testrunner)
  • GitHub Check: test (dev, 1testrunner) / build (ubuntu-latest, dev, 1testrunner)
  • GitHub Check: test (stable, 1testrunner) / build (ubuntu-latest, stable, 1testrunner)
  • GitHub Check: test (dev, 1testrunner) / build (windows-latest, dev, 1testrunner)
  • GitHub Check: test (default, 1testrunner) / build (macos-latest, default, 1testrunner)
🔇 Additional comments (4)
.github/workflows/qa.yaml (4)

1-2: Хорошо оформлено!

Документация и название рабочего процесса понятны и соответствуют целям PR.


4-7: LGTM!

События-триггеры настроены корректно. Поддержка workflow_dispatch позволяет запускать проверку качества вручную при необходимости.


15-15: Проверьте использование версии 'dev' для oscript.

Использование версии 'dev' может привести к нестабильным и невоспроизводимым результатам тестирования. Убедитесь, что это намеренное решение для рабочего процесса контроля качества.


16-16: Отлично! Основное изменение выглядит корректно.

Добавление test_engine: 'oneunit' соответствует целям PR и правильно настроено.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8142431 and 1e34d81.

📒 Files selected for processing (1)
  • sonar-project.properties
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: test (dev, 1testrunner) / build (macos-latest, dev, 1testrunner)
  • GitHub Check: test (dev, 1testrunner) / build (ubuntu-latest, dev, 1testrunner)
  • GitHub Check: test (dev, 1testrunner) / build (windows-latest, dev, 1testrunner)
  • GitHub Check: test (dev, oneunit) / build (windows-latest, dev, oneunit)
  • GitHub Check: test (stable, 1testrunner) / build (ubuntu-latest, stable, 1testrunner)
  • GitHub Check: test (default, 1testrunner) / build (windows-latest, default, 1testrunner)
  • GitHub Check: test (dev, oneunit) / build (ubuntu-latest, dev, oneunit)
  • GitHub Check: sonar / test

sonar.sourceEncoding=UTF-8

sonar.coverageReportPaths=coverage/genericCoverage.xml
sonar.coverageReportPaths=out/genericCoverage.xml
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Search for references to the old coverage path
rg 'coverage/genericCoverage\.xml' --type-list | head -20

Repository: oscript-library/ovm

Length of output: 452


🏁 Script executed:

# Search for any references to coverage/genericCoverage in the entire codebase
rg 'coverage/genericCoverage' -i

Repository: oscript-library/ovm

Length of output: 135


🏁 Script executed:

# Look for workflow files to verify new configuration
find .github -name "*.yaml" -o -name "*.yml" 2>/dev/null | head -20

Repository: oscript-library/ovm

Length of output: 148


🏁 Script executed:

# Check if qa.yaml exists and inspect its configuration
cat .github/workflows/qa.yaml 2>/dev/null || echo "File not found"

Repository: oscript-library/ovm

Length of output: 441


🏁 Script executed:

# Also check for sonar.yml to understand the coverage report configuration
cat .github/workflows/sonar.yml 2>/dev/null || echo "File not found"

Repository: oscript-library/ovm

Length of output: 77


🏁 Script executed:

# Search for any other references to coverage path in config files
rg 'genericCoverage' -t yaml -t yml -t properties

Repository: oscript-library/ovm

Length of output: 90


🏁 Script executed:

# Search for all references to coverage in the codebase
rg 'coverage' --type-add 'config:*.{yaml,yml,properties}' -tconfig -tpython -tjs

Repository: oscript-library/ovm

Length of output: 93


🏁 Script executed:

# Check the tasks/coverage.os file to understand how it generates coverage
cat tasks/coverage.os

Repository: oscript-library/ovm

Length of output: 2093


🏁 Script executed:

# Search for out/ directory references in workflow or config files
rg 'out/genericCoverage' -i

Repository: oscript-library/ovm

Length of output: 137


🏁 Script executed:

# Check if there are other script files that might be handling coverage
find . -name "*.os" -o -name "*.bat" -o -name "*.sh" | grep -i coverage

Repository: oscript-library/ovm

Length of output: 82


🏁 Script executed:

# Look for configuration that might specify output directories
rg 'coverageReportPaths|coverage.*report|out.*coverage' -i

Repository: oscript-library/ovm

Length of output: 137


🏁 Script executed:

# Check for file copy/move operations in workflow files
rg 'cp|mv|copy|move' .github/workflows/ -i

Repository: oscript-library/ovm

Length of output: 45


🏁 Script executed:

# Look for any script that might handle the coverage output directory
rg 'out.*coverage|coverage.*out' -i

Repository: oscript-library/ovm

Length of output: 137


🏁 Script executed:

# Check if there's a build script or setup that creates out directory
find . -name "build*" -o -name "setup*" -o -name "Makefile" 2>/dev/null

Repository: oscript-library/ovm

Length of output: 45


🏁 Script executed:

# Search for any reference to out/ directory in the entire repo
rg 'out/' --type yaml --type properties -B2 -A2

Repository: oscript-library/ovm

Length of output: 97


Исправьте путь генерации отчёта покрытия в соответствии с новой конфигурацией.

Обнаружено несоответствие: файл sonar-project.properties ожидает отчёт по пути out/genericCoverage.xml, но скрипт tasks/coverage.os генерирует отчёт по пути coverage/genericCoverage.xml. SonarQube не найдёт отчёт и не сможет выполнить проверку качества.

Требуется обновить tasks/coverage.os для создания каталога и записи отчёта в out/genericCoverage.xml вместо coverage/genericCoverage.xml.

🤖 Prompt for AI Agents
In sonar-project.properties around line 17 the sonar.coverageReportPaths is set
to out/genericCoverage.xml but the coverage generator writes to
coverage/genericCoverage.xml; update tasks/coverage.os to create the out
directory if missing (mkdir -p out) and change the report output path to
out/genericCoverage.xml (ensure the script writes the report to that path and
preserves exit codes/permissions).

@nixel2007 nixel2007 merged commit 4c8d305 into develop Jan 2, 2026
20 of 32 checks passed
@nixel2007 nixel2007 deleted the nixel2007-patch-2 branch January 2, 2026 18:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants