Skip to content
SEO Optimizer is live, Audit on page SEO and AI-search readiness. Try it free
Scanverra
CLI

الأدلة

واجهة سطر الأوامر Scanverra CLI

افحص أي مستودع كود من الطرفية أو من خط أنابيب CI باستخدام @scanverra/cli. يعمل الفحص على جهازك الخاص، ولا يُرسَل إلى Scanverra سوى النتائج.

يتطلب Node.js 18 أو أحدث، وخطة Pro أو Team أو Enterprise.

بداية سريعة

لا حاجة لتثبيت أي شيء بشكل عام، أو شغّل npm i -g @scanverra/cli للحصول على أمر scanverra دائم.

npx @scanverra/cli login        # paste an API key from Dashboard > API keys
npx @scanverra/cli scan .

كيف تعمل

دائمًا محدَّث

تُشغّل دائمًا أحدث الفحوصات، دون إصدار منفصل لواجهة سطر الأوامر يجب تتبعه أو تحديثه يدويًا.

نفس محرك لوحة التحكم

تتطابق النتائج مع نتائج فحص بدأ من Scanverra، أينما شغّلته.

الفحص محليًا

تُقرأ ملفاتك المصدرية على جهازك الخاص. بشكل افتراضي، تُرسَل النتائج فقط إلى Scanverra، وليس محتوى الملفات أو أسطر الكود المطابقة.

يظهر في لوحة التحكم الخاصة بك

يحصل كل فحص على ملخص مكتوب بالذكاء الاصطناعي ورابط، وهي نفس صفحة النتائج الخاصة بفحص بدأ من لوحة التحكم.

الأوامر

الأمرالوصف
scanverra loginالتحقق من مفتاح API الخاص بك وحفظه
scanverra logoutإزالة المفتاح المحفوظ
scanverra whoamiعرض الحساب والخطة المرتبطين بالمفتاح
scanverra scan [path]فحص مجلد (الافتراضي: المجلد الحالي)، وعرض النتائج ورفعها

الخيارات الشائعة

الخيارالوصف
--json / --sarifمخرجات قابلة لقراءة الآلة. تعمل SARIF مع GitHub code scanning واستيراد Sonar
--fail-on <severity>ينتهي بفشل إذا وُجدت نتيجة بهذه الخطورة أو أعلى (الافتراضي: high)
--category <list>تضمين نتائج security أو dependency أو iac أو quality فقط
--exclude <glob>تخطي المسارات المطابقة. يعمل ملف .scanverraignore بالطريقة نفسها
--no-uploadالفحص فقط، دون إرسال النتائج إلى Scanverra
--include-codeرفع سطر الكود المطابق لكل نتيجة أيضًا (معطّل افتراضيًا)
--offlineاستخدام القواعد المخزَّنة مؤقتًا دون أي اتصال بالشبكة
--api-key, --api-urlتجاوز بيانات الاعتماد أو الخادم، مفيد في CI

ما الذي يُرفع

يُرفع

مسارات الملفات، أرقام الأسطر، معرّفات القواعد، العناوين، الأوصاف، اقتراحات الإصلاح، درجات الخطورة، أسماء التبعيات وإصداراتها، واسم المشروع والفرع والـ commit ورقم طلب السحب.

لا يُرفع افتراضيًا

محتوى الملفات، وسطر الكود المطابق لكل نتيجة. لا تحمل نتائج الأسرار قيمة السر نفسها أبدًا. مرّر --include-code إذا أردت عرض الأسطر المطابقة في لوحة التحكم.

كيف تُختار الملفات

  • داخل مستودع git تُستخدم الملفات المتتبَّعة وغير المتتبَّعة، ويُحترم ملف .gitignore. خارج git تُتخطى مجلدات البناء والتبعيات الشائعة.
  • يضيف ملف .scanverraignore (نمط glob واحد في كل سطر) وخيارات --exclude القابلة للتكرار استثناءات إضافية.
  • لإخفاء نتيجة واحدة، أضف تعليق scanverra-ignore أو nosec في السطر الذي يسبقها.

رموز الخروج

0نجاح، ولم تصل أي نتيجة إلى حد --fail-on
1وصلت نتيجة إلى الحد، أو فشلت quality gate باستخدام --fail-on-gate
2خطأ استخدام، أو رفض الخادم المفتاح أو الخطة

الاستخدام في CI

خزّن مفتاح API كسر مثلما تفعل مع أي تكامل CI آخر مع Scanverra، وخزّن مجلد القواعد مؤقتًا حتى لا يعيد العامل الجديد تنزيلها مع كل تشغيل.

- uses: actions/checkout@v4
- uses: actions/setup-node@v4
  with: { node-version: 20 }
- run: npx @scanverra/cli scan . --fail-on high
  env:
    SCANVERRA_API_KEY: ${{ secrets.SCANVERRA_API_KEY }}

تخزين القواعد مؤقتًا بين عمليات التشغيل

- uses: actions/cache@v4
  with:
    path: ~/.cache/scanverra
    key: scanverra-rules-${{ github.run_id }}
    restore-keys: scanverra-rules-

استكشاف الأخطاء وإصلاحها

الرسالةماذا تفعل
Not logged inشغّل scanverra login، أو عيّن SCANVERRA_API_KEY
API key was rejectedالمفتاح غير صحيح أو تم إلغاؤه. أنشئ مفتاحًا جديدًا من API Keys
Requires a Pro, Team or Enterprise planقم بترقية خطتك ثم أعد المحاولة
Daily limit for downloading the scanner rules reachedخزّن مجلد القواعد مؤقتًا في CI، انظر أعلاه
No scannable files foundتحقق من المسار ومن .gitignore أو .scanverraignore

جاهز للفحص من الطرفية؟

أنشئ مفتاح API، ثم شغّل أول فحص لك في أقل من دقيقة.