مرجع القواعد
كل قاعدة مرفقة بالإجراء، وما الذي تلتقطه، وهل تحجب. قاعدتان لا تعملان إلا عند ضبط نموذج.
مجموعة القواعد المرفقة
تعمل الصفوف الحتمية بالطريقة نفسها على كل طلب دمج تحدده، كفحص بتعبير نمطي عادي على التغيير. أمّا الصفوف المقتصرة على النموذج فلا تعمل إلا عند ضبط نموذج.
| القاعدة | الخطورة | المستوى | الأثر | المسارات | ما الذي تلتقطه |
|---|---|---|---|---|---|
| no-verify-bypass | حرجة | حتمية | حاجبة | **/*.sh.githooks/**.github/workflows/** | تلتقط أمر git يتجاوز خطافات الالتزام باستخدام --no-verify. |
| todo-without-issue-ref | منخفضة | مقتصرة على النموذج | مستوى النموذج فقط | **/* | تلتقط تعليق TODO دون إشارة إلى تذكرة مرتبطة به. |
| eval-of-input | عالية | حتمية | حاجبة | **/*.sh**/*.py | تلتقط استخدام eval على قيمة بدلًا من بديل آمن. |
| curl-pipe-to-shell | حرجة | حتمية | حاجبة | **/*.sh.github/workflows/** | تلتقط تمرير تنزيل curl مباشرة إلى صَدَفة (shell). |
| hardcoded-aws-access-key | حرجة | حتمية | حاجبة | **/* | تلتقط مفتاح وصول AWS مكتوبًا حرفيًا في الشيفرة. |
| hardcoded-localhost-url | متوسطة | حتمية | حاجبة | **/*.ts**/*.tsx**/*.js**/*.py | تلتقط رابط localhost أو رابط استرجاع ذاتي مكتوبًا حرفيًا. |
| dom-innerhtml-assignment | عالية | حتمية | حاجبة | **/*.ts**/*.tsx**/*.js**/*.jsx | تلتقط إسناد محتوى غير موثوق إلى innerHTML. |
| python-bare-except | عالية | حتمية | حاجبة | **/*.py | تلتقط جملة except: عارية تبتلع كل خطأ. |
| empty-js-catch-block | متوسطة | حتمية | استشارية | **/*.ts**/*.tsx**/*.js**/*.jsx | تلتقط كتلة catch فارغة تتجاهل الخطأ بصمت. |
| console-log-debug | متوسطة | حتمية | استشارية | **/*.ts**/*.tsx**/*.js**/*.jsx | تلتقط عبارة console.log تصحيحية متروكة في الشيفرة. |
| python-debugger-left-in | عالية | حتمية | حاجبة | **/*.py | تلتقط استدعاء pdb.set_trace() أو breakpoint() متروكًا في الشيفرة. |
| type-ignore-without-code | منخفضة | مقتصرة على النموذج | مستوى النموذج فقط | **/*.py | تلتقط # type: ignore عارية دون رمز خطأ محدد. |
- no-verify-bypassحرجة
تلتقط أمر git يتجاوز خطافات الالتزام باستخدام --no-verify.
حاجبةحتميةالمسارات: **/*.sh.githooks/**.github/workflows/**
- todo-without-issue-refمنخفضة
تلتقط تعليق TODO دون إشارة إلى تذكرة مرتبطة به.
مستوى النموذج فقطمقتصرة على النموذجالمسارات: **/*
- eval-of-inputعالية
تلتقط استخدام eval على قيمة بدلًا من بديل آمن.
حاجبةحتميةالمسارات: **/*.sh**/*.py
- curl-pipe-to-shellحرجة
تلتقط تمرير تنزيل curl مباشرة إلى صَدَفة (shell).
حاجبةحتميةالمسارات: **/*.sh.github/workflows/**
- hardcoded-aws-access-keyحرجة
تلتقط مفتاح وصول AWS مكتوبًا حرفيًا في الشيفرة.
حاجبةحتميةالمسارات: **/*
- hardcoded-localhost-urlمتوسطة
تلتقط رابط localhost أو رابط استرجاع ذاتي مكتوبًا حرفيًا.
حاجبةحتميةالمسارات: **/*.ts**/*.tsx**/*.js**/*.py
- dom-innerhtml-assignmentعالية
تلتقط إسناد محتوى غير موثوق إلى innerHTML.
حاجبةحتميةالمسارات: **/*.ts**/*.tsx**/*.js**/*.jsx
- python-bare-exceptعالية
تلتقط جملة except: عارية تبتلع كل خطأ.
حاجبةحتميةالمسارات: **/*.py
- empty-js-catch-blockمتوسطة
تلتقط كتلة catch فارغة تتجاهل الخطأ بصمت.
استشاريةحتميةالمسارات: **/*.ts**/*.tsx**/*.js**/*.jsx
- console-log-debugمتوسطة
تلتقط عبارة console.log تصحيحية متروكة في الشيفرة.
استشاريةحتميةالمسارات: **/*.ts**/*.tsx**/*.js**/*.jsx
- python-debugger-left-inعالية
تلتقط استدعاء pdb.set_trace() أو breakpoint() متروكًا في الشيفرة.
حاجبةحتميةالمسارات: **/*.py
- type-ignore-without-codeمنخفضة
تلتقط # type: ignore عارية دون رمز خطأ محدد.
مستوى النموذج فقطمقتصرة على النموذجالمسارات: **/*.py
حتمية مقابل مقتصرة على النموذج
لا تُصنَّف القاعدة بأنها «حتمية» في الجدول أعلاه إلا إذا تُرجمت كتعبير نمطي عادي، والتقطت مثالها الخاطئ الخاص بها، وتجنبت مثالها الصحيح الخاص بها. قاعدتان تفشلان في هذا الاختبار، فيسمهما الجدول بـ«مقتصرة على النموذج»، ولا تعملان إلا عند ضبط نموذج، ولا تعملان أبدًا في المحرك الحتمي.
استخدام قواعدك الخاصة
يمكنك توجيه الإجراء إلى ملف قواعد مخصص. يُقرأ من تغيير الأساس الخاص بطلب الدمج، لا من نسخة الرأس أبدًا — بحيث لا يستطيع طلب الدمج تعديل القواعد التي تراجعه أبدًا. اتركه دون ضبط لاستخدام مجموعة القواعد المرفقة بدلًا من ذلك.
بما أن مجموعة القواعد المخصصة تأتي من مستودعك الخاص، فإن سلامتها تعتمد على إصدار الإجراء الذي تُثبّته وسير العمل الذي تكتبه حوله.