خودکارسازی بررسی PRهای Renovate با Claude Code
خلاصهٔ کاملتر
اگه حملات زنجیره تامین (supply-chain attacks) نیمه اول ۲۰۲۶ رو دنبال کرده باشی، میدونی که دیگه نمیشه بهروزرسانی وابستگیها رو نادیده گرفت. Renovate این بهروزرسانیها رو خودکار میکنه، اما مشکل اینجاست که هر دوره ممکنه دهها PR باز بشه و بررسی دستی همهشون نه مقیاسپذیره نه حوصلهسر.
نویسنده یه پایپلاین کامل ساخته: Renovate هر ماه از طریق GitHub Actions اجرا میشه و PRهایی با پیشوند [RENOVATE] باز میکنه. باز شدن هر PR یه رویداد PR_open میفرسته که یه Claude Code Routine رو در ابر بیدار میکنه. این Routine یه Skill تخصصی به اسم renovate-review رو فراخوانی میکنه که diff و ریپوزیتوری رو از طریق gh api میخونه، ریسک هر تغییر رو ارزیابی میکنه، و نتیجه رو مستقیماً بهصورت کامنت روی PR پست میکنه.
تنظیمات Renovate هم با دقت چیده شده. یه فیلتر مهم minimumReleaseAge هست که پکیجهای منتشرشده در ۱۴ روز گذشته رو رد میکنه؛ همین یه فیلتر بهتنهایی بیش از ۹۰٪ حملات تایپواسکوات و پکیجهای مسموم رو بلاک میکرد. کادانس ماهانه هم عمدیه: بهجای اعلانهای پراکنده هر چند روز، یه پنجره بررسی متمرکز داری.
Skill طراحیشده چند کار مشخص انجام میده: استک و پروژه رو از عنوان PR شناسایی میکنه، هر bump رو به High، Medium یا Low ریسک طبقهبندی میکنه (نه فقط بر اساس فاصله نسخه، بلکه بر اساس نقش پکیج)، سورسکد رو برای import واقعی پکیجهای پرریسک grep میکنه، و از Context7 برای پیدا کردن breaking changes مستندشده کمک میگیره. دو ویژگی مهم طراحی: فقط خواندنی بودن (هیچ side effect ای نداره) و پروژهآگنوستیک بودن (هم JS/TS هم Python رو پوشش میده).
Claude Code Routines اینجا نقش کلیدی دارن. یه Routine در اصل یه سشن Claude Code هست که در ابر اجرا میشه و به یه رویداد GitHub وصله. کافیه یه بار پیکربندی بشه؛ بعدش بدون دخالت تو فعال میمونه. فیلتر عنوان ([RENOVATE]) مطمئن میشه که Routine فقط روی PRهای درست فعال بشه، نه روی همه PRها.
نکات کلیدی:
- Renovate با کادانس ماهانه PRهای دستهبندیشده باز میکنه
- فیلتر minimumReleaseAge: 14 days از پکیجهای تازهمنتشرشده و مشکوک جلوگیری میکنه
- Claude Code Skill کاملاً read-only طراحی شده تا اجرای خودکار ایمن باشه
- Routine روی رویداد PR_open فعال میشه و بدون دخالت انسان کامنت تحلیل میذاره
- همین Skill رو میشه هم محلی و هم از ابر با تنظیمات یکسان اجرا کرد




