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

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، فإن مشروعك آمن.
وإلا، إذا حصلت على تقرير خطأ، فإن مشروعك يحتوي على بيانات اعتماد كبيانات خام.

إذا كنت ترغب في الحصول على أمان مستمر، يرجى الاطلاع على دليل التثبيت التالي وإعداد خطاف ما قبل الإيداع و CI.
التثبيت
استخدام Docker
المتطلبات الأساسية: يتطلب Docker
استخدم حاوية Docker الخاصة بنا للحصول على بيئة بها Node.js و secretlint تعمل بأسرع ما يمكنك تنزيلها.
يمكنك فحص جميع الملفات تحت الدليل الحالي باستخدام secretlint بالأمر التالي:
docker run -v `pwd`:`pwd` -w `pwd` --rm -it secretlint/secretlint secretlint "**/*"
حاوية Docker secretlint/secretlint تعمل بدون تكوين حسب التصميم.
تحتوي صورة Docker هذه على حزم مدمجة:
- @secretlint/secretlint-rule-preset-recommend
- @secretlint/secretlint-rule-pattern
- @secretlint/secretlint-formatter-sarif
لمزيد من التفاصيل، يرجى الاطلاع على 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هي مصفوفة من معرّفات الرسائل التي تريد كتم تقرير الخطأ الخاص بها- يتم تعريف معرّف الرسالة في كل قاعدة، يرجى الرجوع إلى توثيق القاعدة