
منصة لتحليل جودة الكود والتحليل الثابت (Static Analysis) مع بوابات جودة، وفحص متعدد اللغات، وقواعد تركّز على الأمان لاكتشاف الثغرات ومشاكل قابلية الصيانة في سير عمل CI/CD.
توفر SonarQube القدرة ليس فقط على إظهار صحة التطبيق، بل أيضًا على إبراز المشكلات المُدخلة حديثًا. مع وجود Quality Gate، يمكنك تحقيق Clean Code وبالتالي تحسين جودة الكود بشكل منهجي.
لأسئلة الدعم ("كيف أفعل؟"، "حصلت على هذا الخطأ، لماذا؟"، ...)، يرجى أولاً قراءة التوثيق ثم التوجه إلى مجتمع SonarSource. من المحتمل أن سؤالك قد تلقى إجابة بالفعل! 🤓
انتبه إلى أن هذا المنتدى مجتمع، لذا يُتوقع الالتزام بالمجاملة المعتادة ("مرحبًا"، "شكرًا"، ...). وإذا لم تحصل على إجابة لموضوعك، فعليك الانتظار لمدة ثلاثة أيام على الأقل قبل رفعه مرة أخرى. لا يوجد مشغلون في انتظارك. 😄
إذا كنت ترغب في رؤية ميزة جديدة أو الإبلاغ عن خطأ، فيرجى إنشاء موضوع جديد في منتدانا.
يرجى العلم أننا لا نبحث بنشاط عن مساهمات في الميزات. الحقيقة أنّه من الصعب للغاية على أي شخص خارج SonarSource الالتزام بخارطة الطريق وتوقعاتنا. لذلك، عادةً ما نقبل فقط التغييرات التجميلية البسيطة وتصحيحات الأخطاء الإملائية.
مع أخذ ذلك في الاعتبار، إذا كنت ترغب في تقديم مساهمة برمجية، فيرجى إنشاء طلب سحب (pull request) لهذا المستودع. يرجى شرح دوافعك للمساهمة بهذا التغيير: ما المشكلة التي تحاول إصلاحها، وما التحسين الذي تحاول تحقيقه.
تأكد من اتباع أسلوب الكود الخاص بنا ومن أن جميع الاختبارات ناجحة (يتم تنفيذ بناء Travis لكل طلب سحب).
هل ترغب في المساهمة في منتجات SonarSource؟ نحن نبحث عن أشخاص أذكياء وشغوفين وماهرين لمساعدتنا في بناء حلول عالمية المستوى لجودة الكود. ألقِ نظرة على عروض العمل الحالية هنا!
للبناء من المصدر محليًا، اتبع هذه التعليمات.
-x test إلى أمر Gradle (مفيد إذا كنت تريد البناء فقط دون تشغيل الاختبارات)نفّذ من الدليل الأساسي للمشروع:
./gradlew build
يتم إنشاء ملف التوزيع المضغوط في sonar-application/build/distributions/. قم بفك ضغطه وابدأ الخادم بتنفيذ:
# on Linux
bin/linux-x86-64/sonar.sh start
# or on MacOS
bin/macosx-universal-64/sonar.sh start
# or on Windows
bin\windows-x86-64\StartSonar.bat
إذا لم يُبنَ المشروع من قبل، فقم ببنائه كالمعتاد (انظر القسم السابق) أو استخدم الأمر الأسرع:
./gradlew ide
ثم افتح الملف الجذري build.gradle كمشروع في IntelliJ أو Eclipse.
| ./gradlew command | الوصف |
|---|---|
dependencies | سرد التبعيات |
spotlessApply | إصلاح ترويسات المصدر بتطبيق HEADER |
wrapper --gradle-version 5.2.1 | ترقية الـ wrapper |
تقع واجهة SonarQube (أو تطبيق الويب كما نسميه) في مستودع آخر: sonarqube-webapp.
عند بناء مستودع sonarqube، يتم تنزيل تطبيق الويب تلقائيًا من Maven Central كتبعية، مما يسهل عليك المساهمة بتغييرات الواجهة الخلفية دون الحاجة إلى الاهتمام بتطبيق الويب.
ولكن إذا كانت مساهمتك تحتوي أيضًا على تغييرات في الواجهة، فيجب عليك استنساخ مستودع sonarqube-webapp، وإجراء تغييراتك هناك، وبناؤه محليًا، ثم بناء مستودع sonarqube باستخدام متغير البيئة WEBAPP_BUILD_PATH لتوجيهه إلى بنائك المخصص للواجهة.
إليك مثال على كيفية القيام بذلك:
cd /path/to/sonarqube-webapp/server/sonar-web
# do your changes
# install dependencies, only needed the first time
yarn
# build the webapp
yarn build
cd /path/to/sonarqube
# build the sonarqube repository using the custom build of the webapp
WEBAPP_BUILD_PATH=/path/to/sonarqube-webapp/server/sonar-web/build/webapp ./gradlew build
يمكنك أيضًا استهداف إصدار معين من تطبيق الويب عن طريق تحديث خاصية webappVersion في ملف ./gradle.properties ثم بناء مستودع sonarqube بشكل عادي.
تاريخيًا، كانت ترجماتنا مخزنة في sonar-core/src/main/resources/org/sonar/l10n/core.properties، لكن هذا الملف أصبح الآن مهملًا ولم يعد يُحدَّث.
تُعرَّف الترجمات الافتراضية (باللغة الإنجليزية) الآن في مستودع تطبيق الويب، هنا: https://github.com/SonarSource/sonarqube-webapp/blob/master/libs/sq-server-shared/src/l10n/default.ts
لقد تغير التنسيق، ولكن لا يزال بإمكانك الحصول عليه كملف بصيغة .properties عن طريق تشغيل الأمر التالي:
cd /path/to/sonarqube-webapp/server/sonar-web
# install dependencies, only needed the first time
yarn
# generate a backward compatible .properties file with all the translation keys
yarn generate-translation-keys
لاحظ أن المساهمة بامتدادات الترجمة إلى لغات أخرى لا تزال تعمل بنفس الطريقة السابقة. فقط المصدر المرجعي للترجمات الافتراضية هو الذي تغير.
حقوق النشر (C) SonarSource Sàrl.
مرخص بموجب رخصة جنو العمومية الصغرى، الإصدار 3.0.