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 کامل کامیت پین کنید.

مسیرهای بعدی