واجهة سطر الأوامر لتنفيذ تحليل رمز الرموز محليا.
مع أمر واحد يمكنك:
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli- * && sudo make installبمجرد الوفاء بالمتطلبات المسبقة ، حان الوقت لتمكين الاتصال بين Bash و Docker.
من الضروري أن يتم كشف الخفي بدون TLS. من أجل القيام بذلك ، انتقل إلى إعدادات Docker -> عام. ما عليك سوى النقر على مربع الاختيار مع التسمية "كشف الخفي على TCP: // LocalHost: 2375 بدون TLS" وسيتم إعادة تحميل Docker.
حان الوقت الآن للذهاب إلى باش وتثبيت وتكوين عميل Docker.
إذا كنت تستخدم نظام التشغيل Windows 10 (بناء أعلاه 1803) ، فإن الأمر التالي سيجعل عميل Docker متاحًا من Bash sudo ln -s "/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe" /usr/local/bin/docker
إذا كنت تستخدم إصدارًا سابقًا من Windows 10 ، فيمكنك العثور على برنامج تعليمي سهل للغاية لمتابعة.
نظرًا لأنك ستستخدم WSL ، يجب تكوين Docker_host المتغير إلى tcp://0.0.0.0:2375 ، من أجل القيام بذلك فقط اكتب الأمر التالي على الباش
export DOCKER_HOST=tcp://0.0.0.0:2375
من الممكن أيضًا إضافة هذا المتغير إلى ملفات .bashrc أو .bash_profile بحيث يكون المتغير جاهزًا دائمًا عند بدء bash
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bash_profile
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bashrc
إذا كنت تستخدم Silicon Apple ، يرجى التأكد من:
Use Rosetta for x86/amd64 emulation on Apple Silicon في هذه المرحلة ، يكون التحليل الكوداني جاهزًا للتثبيت.
في Bash ، انتقل إلى المجلد الذي تريد تنزيل الأداة في أوامر ما التالية:
sudo apt-get install make
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli-*
مرة أخرى ، نظرًا لاستخدام WSL ، من الضروري إضافة الخطين المميزين إلى Makefile في هذا الدليل.
قبل قسم الاختبار :
export DOCKER_HOST=tcp://0.0.0.0:2375
وفي القسم في التثبيت :
docker login
أخيرًا ، فقط اكتب الأمر التالي وسيبدأ التثبيت
sudo make install
عندما يكون اسم مستخدم Docker مطلوبًا ، تأكد من كتابة اسم المستخدم وليس البريد الإلكتروني لأنه بناءً على كيفية إنشاء حساب Docker الخاص بك ، قد يكون مختلفًا.
codacy-analysis-cli analyze
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > java -jar codacy-analysis-cli-assembly-{VERSION}.jar analyze
--tool <TOOL-SHORT-NAME>
--directory <SOURCE-CODE-PATH>
# other options
sbt " codacyAnalysisCli/runMain com.codacy.analysis.cli.Main analyze --tool <TOOL-SHORT-NAME> --directory <SOURCE-CODE-PATH> "docker run
--rm=true
--env CODACY_CODE= " $CODACY_CODE "
--volume /var/run/docker.sock:/var/run/docker.sock
--volume " $CODACY_CODE " : " $CODACY_CODE "
--volume /tmp:/tmp
codacy/codacy-analysis-cli
analyze --tool < TOOL-SHORT-NAME >التنسيق الافتراضي لإخراج CLI هو نص ويتم تقسيمه إلى 3 فئات:
القضايا التي أبلغت عنها الأدوات التي تختلف بين 3 مستويات مختلفة ( Error Warning Info ). مثال:
Found [Error] `Expected "#E1675A" to be "#e1675a" (color-hex-case)` in styles/variables.less:4 (Stylelint_color-hex-case)
Found [Warning] `'object short notation' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).` in scripts/main.js:28 (iterator)
Found [Info] `Missing semicolon.` in views/components/Progress.jsx:18 (asi)
تتم طباعة بيانات المقاييس لكل ملف وتحتوي على 5 أنواع من البيانات:
LOC - خطوط الكودCLOC - تعلق خطوط التعليمات البرمجيةCC - التعقيد السيكلومي#methods - عدد الأساليب#classes - عدد الفصولمثال:
Found [Metrics] in generic/Test.java:
CC - 33
LOC - 778
CLOC - 864
#methods - 3
#classes - 1
تتم طباعة كل نسخ تم العثور عليه بمعلومات حول إجمالي عدد الخطوط وعدد الرموز وجميع الأحداث (الخطوط التي تبدأ فيها وحيث ينتهي). مثال:
Found [Clone] 7 duplicated lines with 10 tokens:
generic/test.rb
l. 681 - 687
l. 693 - 699
generic/another_test.rb
l. 601 - 607
l. 193 - 199
analyze - قم بتشغيل تحليل الترميز عبر دليل/ملفات--help -يعرض جميع خيارات التكوين ومعناها وقيمها المحتملة.--verbose -قم بتشغيل الأداة مع الإخراج المطول--tool -اختر الأداة لتحليل الكود (على سبيل المثال Brakeman) أو "المقاييس" أو "الازدواجية" أو "القضايا" لتشغيل فئة أداة محددة فقط--directory -اختر الدليل المراد تحليله--codacy-api-base-url أو env. CODACY_API_BASE_URL - قم بتغيير عنوان URL لتثبيت CODACY API لاسترداد التكوين (مثل تثبيت المؤسسة)--output -أرسل نتائج الإخراج إلى ملف--format [افتراضي: نص] -تغيير تنسيق الإخراج (مثل JSON)--commit-uuid [الافتراضي: أحدث التزام من فرع GIT الحالي]-قم بتعيين الالتزام Uuid الذي سيحصل على النتائج على الترميز--skip-commit-uuid-validation [الافتراضي: خطأ]-القوة باستخدام الالتزام uuid حتى لو كان لا ينتمي إلى فرع GIT الحالي.--skip-uncommitted-files-check [افتراضي: خطأ]-تخطي التحقق من الملفات غير الملتزمات في دليل التحليل--upload [افتراضي: خطأ] -طلب لدفع النتائج إلى الترميز--upload-batch-size [الافتراضي: 50000]-الحد الأقصى لعدد النتائج في كل دفعة للتحميل إلى الترميز--skip-ssl-verification [افتراضي: خطأ]-تخطي التحقق من شهادة SSL عند التواصل مع واجهة برمجة التطبيقات--parallel [افتراضي: 2] -عدد الأدوات التي يجب تشغيلها بالتوازي--max-allowed-issues [افتراضي: 0]-الحد الأقصى لعدد المشكلات المسموح بها لتحليل النجاح--registry-address [افتراضي: فارغ]-عنوان السجل البديل (eg artprod.mycompany/)--fail-if-incomplete [افتراضي: خطأ]-فشل في التحليل إذا فشلت أي أداة في التشغيل--allow-network [افتراضي: خطأ]-السماح للوصول إلى الشبكة ، لذلك يمكن للأدوات التي تحتاج إلى تنفيذها (على سبيل المثال FindBugs)--force-file-permissions [الافتراضي: خطأ]-ملفات القوة التي يمكن قراءتها عن طريق تغيير الأذونات قبل تشغيل التحليل--tool-timeout [افتراضي: 15 دقيقة]-الحد الأقصى للوقت الذي يجب أن تنفذ كل أداة (على سبيل المثال 15 دقيقة ، 1 ساعة)--max-tool-memory [افتراضي: 3G]-الحد الأقصى للذاكرة المسموح بها لكل تنفيذ أداة (بالبايت أو استخدام تدوين أعلام ذاكرة Docker)--tmp-directory [اختياري]-دليل مؤقت لأغراض التحليل--gh-code-scanning-compat [افتراضي: خطأ]-تقليل شدة القضية بمستوى واحد ، لقضايا عدم الأمن ، من أجل التوافق مع ميزة مسح رمز Github. لن يكون لهذا الخيار تأثير إلا عند استخدامه بالاقتران مع --format sarif . لاحظ أنه في هذه الحالة ، سيكون للمشكلات نفسها على جانب الرموز أولوية أعلى.validate-configuration - التحقق من صحة ملف تكوين الترميز--directory -اختر الدليل حيث يبحث عن ملف تكوين الترميزCODACY_ANALYSIS_CLI_VERSION [افتراضي: مستقر] - قم بتعيين نسخة بديلة من CLI لتشغيلها. (مثل الأحدث ، 0.1.0-alpha3.1350 ، ...)SKIP_CONTAINER_ENGINE_CHECK [افتراضي: خطأ] - تخطي الاختبار الأولي لوجود مقبس Docker (مفيد عند التشغيل في أنظمة لا تتوفر مقبس Docker)لتنفيذ بعض التكوينات المتقدمة ، يسمح Codacy بإنشاء ملف تكوين. تحقق من وثائقنا لمزيد من التفاصيل.
لتشغيل نفس التحليل المحلي الذي يقوم به Codacy في الكود الخاص بك ، يمكنك طلب التكوين عن بُعد.
تعرف على كيفية إنشاء رمز مشروع.
️ تحذير: لأسباب أمنية ، نوصي بتخزين رمز API لمشروعك في البيئة Codacy_Project_Token بدلاً من الإعداد---project-token.
codacy-analysis-cli analyze
--project-token < PROJECT-TOKEN >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > تعرف على كيفية إنشاء رمز API حساب.
️ تحذير: لأسباب أمنية ، نوصي بتخزين رمز API API الخاص بك في البيئة CODACY_API_TOKEN بدلاً من الإعداد---api-token.
يمكن استرداد المزود واسم المستخدم واسم المشروع من عنوان URL في الترميز.
codacy-analysis-cli analyze
--api-token < API-TOKEN >
--provider < PROVIDER >
--username < USERNAME >
--project < PROJECT-NAME >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > شفرة
ملاحظة: - يعمل كبش فداء أثناء التجميع في الاختبار ، لتعطيله ، تعيين NO_SCAPEGOAT .
sbt compile
الاختبارات
sbt test:compile
sbt testsbt scalafmtAll scalafmtSbtsbt dependencyUpdatessbt scapegoat
sbt scalafixsbt coverage test
sbt coverageReport
sbt coverageAggregate
export CODACY_PROJECT_TOKEN= " <TOKEN> "
sbt codacyCoverageمحلي
sbt 'codacyAnalysisCli/stage'
docker build -t codacy-analysis-cli .
محلي
sbt 'set version in codacyAnalysisCore := "<VERSION>"' codacyAnalysisCore/publishLocal
يطلق
sbt 'set version in codacyAnalysisCore := "<VERSION>"' 'set pgpPassphrase := Some("<SONATYPE_GPG_PASSPHRASE>".toCharArray)' codacyAnalysisCore/publishSigned
sbt 'set version in codacyAnalysisCore := "<VERSION>"' sonatypeRelease
7.0.0 : إصلاح --parallel ذلك لم يكن يجعل الأدوات تعمل في الواقع بالتوازي. لاستعادة استخدام السلوك السابق --parallel 1
4.0.0 : إعادة تسمية analyse analyze . هذا تغيير كسر إذا كنت تقوم بتشغيل CLI باستخدام جرة أو sbt ، ولكن ليس إذا كنت تستخدم البرنامج النصي المقدم.
CODACY عبارة عن منصة تراقب ديونك الفنية ، وتساعدك على تحسين جودة الكود وأمانك ، ويقوم بتدريس أفضل الممارسات لمطوريك ، ويساعدك على توفير الوقت في مراجعات التعليمات البرمجية. نساعد المطورين على شحن مليارات خطوط التعليمات البرمجية يوميًا عن طريق أتمتة وتوحيد مراجعات التعليمات البرمجية.
دمجًا بسلاسة في سير العمل ، يساعد Codacy الفرق الهندسية على توفير الوقت في مراجعات التعليمات البرمجية وإيجاد وإصلاح ومنع عيوب الترميز التي من شأنها أن تتراكم كدين فني. يستخدم منصتنا الذكاء الاصطناعي لاقتراح إصلاحات جودة الكود. تدعم CODACY أكثر من 40 لغة وأطر عمل ومتاحة في المصادر المفتوحة المجانية.
ابدأ تجربة مجانية لمعرفة المزيد.
يساعد Codacy أيضًا على تتبع تغطية الكود ، وازدواج الرمز ، وتعقيد الكود.
تدعم Codacy PHP ، Python ، Ruby ، Java ، JavaScript ، و Scala ، من بين آخرين.
Codacy مجاني للمشاريع مفتوحة المصدر.