Offing
Offing یک ابزار محلی برای شناسایی ریسکهای چرخهٔ عمر نرمافزار است. رانتایمها، بستهها و اکشنهای گیتهابی را که منسوخ شدهاند یا به پایان پشتیبانی رسیدهاند پیدا میکند، فایل و خط دقیق استفاده را نشان میدهد و برای هر یافته منبع معتبر، جایگزین و مسیر مهاجرت میآورد. همهچیز روی ماشین خودتان یا runner CI اجرا میشود و کد مخزن جایی آپلود نمیشود.
اسکنها قطعی و آفلایناند: Offing محتوای مخزن را فقط تجزیه میکند، هرگز آن را اجرا نمیکند و برای هر یافته مدرک و مکان دقیق میآورد.
با یک دستور شروع کنید
به Node.js نسخهٔ ۲۲ یا جدیدتر نیاز دارید:
npx @velella/offing scan .
هر یافته شدت، فایل و خط دقیق، جایگزین پیشنهادی و منبع را نشان میدهد. برای خروجی ماشینخوان --json و برای یک خط خلاصه بهازای هر یافته --format compact را اضافه کنید.
چه چیزی را پیدا میکند
- رانتایمهای پایانیافته: Node.js، Python، Java، .NET، Go، Ruby، PHP، Swift، Dart و Terraform.
- بستههای منسوخ: وابستگیهای مستقیم npm، NuGet، Maven، pub و Composer، همراه با جایگزین و محل استفاده.
- اکشنهای گیتهاب: اکشنهایی که روی رانتایمهای بازنشسته اجرا میشوند، در همان خط
uses:. - APIها و ایمیجهای بازنشسته: نسخههای حذفشدهٔ Kubernetes و ایمیجهای کانتینر و دیتابیس بدون وصلهٔ امنیتی.
هر یافته به یک قاعدهٔ بازبینیشده، تاریخ بازبینی و منبع معتبر وصل است. اگر Offing برای بستهای قاعدهای نداشته باشد، no-data گزارش میکند که ادعای سالم بودن نیست.
شواهد و مسیر مهاجرت
شناسهٔ یک یافته را از خروجی اسکن بردارید و جزئیاتش را ببینید:
npx @velella/offing explain '<finding-id>' .
برای دادن زمینهٔ ساختاریافته به یک ایجنت کدنویس:
npx @velella/offing context '<finding-id>' . --json
Offing دستورهای تأیید را پیشنهاد میدهد و هرگز خودش اجرا نمیکند.
بررسی در CI
اکشن را در یک workflow قرار دهید تا هر pull request بررسی شود:
permissions:
contents: read
steps:
- uses: actions/checkout@v7
- uses: velella-sh/offing@v0.7.1
with:
fail-on-severity: high
برای مدل تهدید سختگیرانهتر، بهجای تگ نسخه یک SHA کامل کامیت پین کنید.