العودة إلى التحديثات
New releaseJul 21, 2026

secretlint v13.0.3

أداة فحص قابلة للتوصيل لمنع ارتكاب بيانات الاعتماد.

مشاركة

Secretlint Actions Status

Secretlint is that Pluggable linting tool to prevent committing credentials.

Secretlint هي أداة فحص قابلة للتوصيل لمنع إيداع بيانات الاعتماد.

الميزات

  • الماسح الضوئي: العثور على بيانات الاعتماد في مشروع والإبلاغ عنها
  • صديق للمشاريع: سهولة إعداد مشروعك ودمج خدمات CI
  • خطاف ما قبل الإيداع: منع إيداع ملفات بيانات الاعتماد
  • قابل للتوصيل: يسمح بإنشاء قواعد مخصصة وتكوين مرن
  • التوثيق: وصف السبب الذي يجعل القاعدة تكتشفه كسر

عرض توضيحي سريع

يمكنك عرض نتيجة فحص secretlint على https://secretlint.github.io/.

البدء السريع

يمكنك تجربة استخدام Secretlint على مشروعك بأمر واحد.

إذا كنت قد قمت بتثبيت Docker بالفعل:

docker run -v `pwd`:`pwd` -w `pwd` --rm -it secretlint/secretlint secretlint "**/*"

إذا كنت قد قمت بتثبيت Node.js بالفعل:

npx @secretlint/quick-start "**/*"

بعد التشغيل، إذا حصلت على نتيجة فارغة وكانت حالة الخروج 0، فإن مشروعك آمن. وإلا، إذا حصلت على تقرير خطأ، فإن مشروعك يحتوي على بيانات اعتماد كبيانات خام.

مثال على نتائج secretlint

إذا كنت ترغب في الحصول على أمان مستمر، يرجى الاطلاع على دليل التثبيت التالي وإعداد خطاف ما قبل الإيداع و CI.

التثبيت

استخدام Docker

المتطلبات الأساسية: يتطلب Docker

استخدم حاوية Docker الخاصة بنا للحصول على بيئة بها Node.js و secretlint تعمل بأسرع ما يمكنك تنزيلها.

يمكنك فحص جميع الملفات تحت الدليل الحالي باستخدام secretlint بالأمر التالي:

docker run -v `pwd`:`pwd` -w `pwd` --rm -it secretlint/secretlint secretlint "**/*"

حاوية Docker secretlint/secretlint تعمل بدون تكوين حسب التصميم.

تحتوي صورة Docker هذه على حزم مدمجة:

لمزيد من التفاصيل، يرجى الاطلاع على Dockerfile الخاص بـ secretlint.

استخدام Node.js

المتطلبات الأساسية: يتطلب Node.js 22+.

Secretlint مكتوب بلغة JavaScript. يمكنك تثبيت Secretlint باستخدام npm:``` npm install secretlint @secretlint/secretlint-rule-preset-recommend --save-dev

يجب عليك بعد ذلك إعداد ملف التكوين:```
npx secretlint --init

أخيرًا، يمكنك تشغيل Secretlint على أي ملف أو دليل بهذه الطريقة:``` npx secretlint "**/*"

:memo: يدعم Secretlint [نمط glob](https://github.com/mrmlnc/fast-glob#basic-syntax) ويجب أن يكون نمط glob محاطًا بعلامة اقتباس مزدوجة.

من الممكن أيضًا تثبيت Secretlint عالميًا باستخدام `npm install --global`. لكننا لا نوصي بذلك، فقد تتعطل بعض القواعد عالميًا.

### استخدام ملف تنفيذي واحد

**المتطلبات الأساسية:** لا شيء

يمكنك استخدام أمر `secretlint` بدون Node.js باستخدام ملف تنفيذي واحد.

1. نزّل أحدث ملف تنفيذي من [صفحة الإصدارات](https://github.com/secretlint/secretlint/releases) 
2. غيّر صلاحيات الملف ليكون قابلًا للتنفيذ: `chmod +x ./secretlint`
3. شغّل `./secretlint --init` لإنشاء ملف الإعدادات
4. شغّل `./secretlint "**/*"` لفحص مشروعك

لمزيد من التفاصيل، يرجى الاطلاع على README الخاص بـ [publish/binary-compiler](https://github.com/secretlint/secretlint/blob/master/publish/binary-compiler).

## الاستخدام

يعرض `secretlint --help` طريقة الاستخدام.

    Secretlint CLI that scan secret/credential data.
    
    Usage
    $ secretlint [file|glob*]
    
    Note
    supported glob syntax is based on picomatch (the engine used by micromatch)
    https://github.com/micromatch/picomatch#globbing-features
    https://github.com/micromatch/micromatch#matching-features
    
    Options
    --init             setup config file. Create .secretlintrc.json file from your package.json
    --format           [String] formatter name. Default: "stylish". Available Formatter: checkstyle, compact, github, jslint-xml, junit, pretty-error, stylish, tap, unix, json, mask-result, table
    --output           [path:String] output file path that is written of reported result.
    --secretlintrc     [path:String] path to .secretlintrc config file. Default: .secretlintrc.*
    --secretlintignore [path:String] path to .secretlintignore file. Default: .secretlintignore
    --stdinFileName    [String] filename to process STDIN content. Some rules depend on filename to check content.
    --no-color         disable ANSI-color of output.
    --no-terminalLink  disable terminalLink of output.
    --no-maskSecrets   disable masking of secret values; secrets are masked by default.
    --no-glob          disable glob pattern interpretation; treat all inputs as literal file paths.
    --no-gitignore     disable .gitignore cascade respect; .gitignore files are
                       respected by default (since v13).
    
    Options for Developer
    --profile          Enable performance profile.
    --secretlintrcJSON [String] a JSON string of .secretlintrc. use JSON string instead of rc file.
    
    Experimental Options
    --locale            [String] locale tag for translating message. Default: en
    
    Examples
    # Scan a single file
    $ secretlint ./README.md

    # Scan all files (wrap glob in double quotes to avoid shell expansion)
    $ secretlint "**/*"
    $ secretlint "source/**/*.ini"

    # Treat inputs as literal paths (for SvelteKit (group) / Next.js [param] etc.)
    $ secretlint --no-glob "src/(auth)/login.ts"

    # Lint STDIN content (filename hint affects which rules apply)
    $ echo "SECRET" | secretlint --stdinFileName=secret.txt

    # Use a custom config file
    $ secretlint "**/*" --secretlintrc=.secretlintrc.custom.json

    # Scan files ignored by .gitignore (e.g. to verify build artifacts)
    $ secretlint --no-gitignore "dist/**/*"

    # Mask secrets in a file in-place
    $ secretlint .zsh_history --format=mask-result --output=.zsh_history

    # Output JSON for programmatic parsing
    $ secretlint "**/*" --format=json --output=secretlint-report.json

    # Output GitHub Actions annotations in CI
    $ secretlint "**/*" --format=github
    
    Exit Status
    Secretlint exits with the following values:
    
        - 0:
          - Linting succeeded, no errors found.
          - Found lint error but --output is specified.
        - 1:
          - Linting failed, errors found.
        - 2:
          - Unexpected error occurred, fatal error.


## الإعدادات

يمتلك Secretlint ملف إعدادات `.secretlintrc.{json,yml,js}`.

- الوثائق: [إعداد Secretlint](https://github.com/secretlint/secretlint/blob/master/docs/configuration.md)

بعد تشغيل `secretlint --init`، سيكون لديك ملف `.secretlintrc.json` في مجلدك.

سترى فيه بعض القواعد مُهيأة على النحو التالي:```json
{
  "rules": [
    {
      "id": "@secretlint/secretlint-rule-preset-recommend"
    }
  ]
}

خاصية id هي اسم حزمة قاعدة secretlint.

لا يحتوي Secretlint على قاعدة مدمجة. تحتاج إلى إضافة بعض القواعد وعليك تثبيت الحزمة وإضافة القاعدة إلى ملف .secretlintrc.

كل قاعدة لها نفس نمط التكوين:

  • options: تعريف الخيارات للقاعدة. لمزيد من التفاصيل، راجع توثيق كل قاعدة
  • disabled: إذا كانت disabled تساوي true، يتم تعطيل القاعدة
  • allowMessageIds: allowMessageIds هي مصفوفة من معرّفات الرسائل التي تريد كتم تقرير الخطأ الخاص بها
    • يتم تعريف معرّف الرسالة في كل قاعدة، يرجى الرجوع إلى توثيق القاعدة

مثال: options

الفئات