در صورت عدم دسترسی به سابدامین release-assets.githubusercontent.com برای دریافت فایل از بخش ریلیزهای هر مخزن گیتهاب، این پروژه آخرین نسخه منتشر شده (latest release) مخازن مختلف مدنظر کاربر را بر اساس فیلتر تعریف شده از گیتهاب آن مخازن دریافت کرده و در یک ساختار پوشهای مرتب در ریپوی کاربر ذخیره میکند. به این ترتیب امکان دسترسی به آنها از طریق سابدامین raw.githubusercontent.com فراهم میشود. این روش تا زمان در دسترس بودن این سابدامین، قابل استفاده خواهد بود. البته محدودیتهایی در استفاده وجود دارد که در ادامه توضیح داده خواهد شد.
- ۰. پیشنیاز
- ۱. فورک (Fork) کردن مخزن
- ۲. ویرایش فایل
repos.txt - ۳. اجرای workflow
- ۴. نحوهی مشاهده و دانلود فایلها
- ۵. حذف یک مخزن یا تغییر فیلترها
- ۶. نکات مهم و محدودیتها
- دسترسی به گیتهاب
- داشتن حساب کاربری در گیتهاب و لاگین کردن به آن
- روی دکمهی Fork در بالای این صفحه کلیک کنید. (یا مستقیما میتوانید روی این لینک کلیک کنید)
- در صفحه بعد روی گزینه Create Fork کلیک کنید.
- مخزن فورک شده در اکانت گیتهاب شما با موفقیت ساخته میشود.
در مخزن فورک شده در حساب کاربری خودتان، فایل repos.txt را باز کنید و ریپوهای مدنظر خود را مطابق فایل نمونه (repos.txt.example) که در زیر توضیح داده شده است، ویرایش و ذخیره کنید:
# repos.txt.example – copy to repos.txt and edit
# Format: owner/repo|filter1|filter2|...
# Filters are case‑insensitive regular expressions (grep -E).
# 1. No filter – keep all assets from the release
therealaleph/MasterHttpRelayVPN-RUST
# 2. Match keywords (e.g., linux-amd64, darwin-amd64)
NullLatency/FlowDriver|linux-amd64|darwin-amd64
# 3. Mix of keywords and file extensions (note escaping of dots)
SagerNet/sing-box|windows-amd64|darwin-amd64.tar.gz|darwin-arm64|arm64-v8a.apk
# 4. Only specific file extensions (use .dmg and .exe – backslashes for literal dot)
KaringX/karing|\.dmg|\.exe
# 5. Disable a line by commenting it with #
# masterking32/MasterDnsVPN|Client_MacOS_AMD64.zip|Client_Windows_AMD64.zip
- هر خط به صورت
...|فیلتر 2|فیلتر 1|owner/repoنوشته میشود. - فیلترها حساس به حروف بزرگ و کوچک نیستند (case‑insensitive).
- اگر فیلتری ننویسید (فقط
owner/repo) همهٔ فایلهای آن ریلیز دانلود میشوند. - فیلترها را میتوانید اضافه، ویرایش یا حذف کنید.
- در صورتی که بخواهید یک ریپو را از لیست حذف کنید میتوانید خط مربوط به آن را حذف کرده و یا با قرار دادن کاراکتر
#در ابتدای خط، آن را کامنت کنید.
پس از تکمیل فایل repos.txt و ذخیره کردن و commit کردن آن، میتوانید workflow را اجرا نمایید.
** جهت اجرا بصورت دستی:
- به برگه (تب) Actions در مخزن فورک شده در پروفایل خودتان بروید.
- در سمت چپ، روی Sync latest releases & update README کلیک کنید.
- دکمهی Run workflow (سمت راست) را بزنید، سپس Run workflow را تأیید کنید.
- پس از تکمیل فرآیند و موفق بودن آن، لینکهای دانلود در README قابل مشاهده است.
** اجرا بصورت خودکار بر اساس زمانبندی تعریفشده توسط کاربر:
- در صورتی که میخواهید فرآیند بررسی ریپوهای ذخیره شده در فایل repos.txt بر اساس یک برنامهی زمانی بصورت خودکار و متناوب انجام شود، میتوانید خطوط ۴و۵ فایل
.github/workflows/sync-multiple-repos.ymlرا از حالت کامنت خارج کنید و مطابق زمانبندی مدنظر خود ویرایش کنید. - پیشنهاد میشود فاصلهی زمانی بین بررسیها خیلی کوتاه نباشد. روزی یک یا دو بار اجرا بصورت خودکار (برای مثال هر ۱۲ یا ۱۸ یا ۲۴ ساعت یکبار) مناسب است و تعداد اجرای خودکار بیشتر از آن توصیه نمیشود.
- برای تغییر زمانبندی، خط
cronرا ویرایش کنید و در صورتی که پس از فعالسازی اجرای خودکار بخواهید آن را لغو کنید، میتوانید این دو خط را مجددا کامنت کرده و یا از فایل حذف کنید.
schedule:
- cron: '0 */12 * * *'
پس از اتمام workflow، فایلهای دانلود شده در پوشهی releases/owner/repo/ در ریپو خودتان ذخیره میشوند.
همچنین میتوانید لینکهای دانلود را از طریق جدول ایجاد شده در انتهای فایل README.md نیز مشاهده کنید و با کلیک روی ⬇️ Download آنها را دانلود کنید.
اگر یک خط را از repos.txt حذف یا کامنت (#) کنید، در اجرای بعدی workflow، کل پوشهی آن مخزن از releases/ حذف میشود و فایل README.md نیز بصورت خودکار اصلاح میشود.
اگر فیلترها را تغییر دهید (مثلاً فیلتر جدید اضافه یا فیلترهای قدیمی را حذف کنید)، فایلهایی که دیگر با فیلتر جدید همخوانی ندارند نیز حذف خواهند شد و در ریلیز بعدی، فقط فایلهای جدید منطبق با فیلتر اعمال شده دانلود میشوند.
- به علت محدودیت گیتهاب این روش مناسب دانلود فایلهای بزرگتر از ۱۰۰ مگابایت نمیباشد.
- تمام لینکهای دانلود به صورت خودکار به مخزن فورک شده شما اشاره میکنند (نیازی به ویرایش دستی نیست).
- استفاده از GitHub Actions محدودیتهایی در تعداد ریکوئست، مدت زمان اجرا دارد که میتوانید آنها را از طریق مستندات گیتهاب بررسی فرمایید. همچنین محدودیتهایی در دانلود و آپلود و پهنای باند مورد استفاده از طریق گیتهاب وجود دارد که بهتر است قبل از استفاده، آنها را بررسی نمایید.
- برای روبرو نشدن با محدودیتها بهتر است تعداد ریپوهای کمی را در فایل repos.txt قرار دهید و با قرار دادن فیلتر مناسب، فقط فایلهای مد نظر خود را با استفاده از این روش دریافت نمایید.
- پس از چند بار اجرای workflow و دانلود و آپلود نسخههای مختلف ریلیزها، حجم ریپوی شما ممکن است تا چند گیگ نیز افزایش یابد و clone کردن آن سخت باشد یا محدودیتهایی از سمت گیتهاب اعمال شود. از طریق اجرای Clear releases history (در تب اکشن) میتوانید تاریخچه commitهای پوشه releases خود را حذف نمایید تا حجم ریپوی شما بصورت چشمگیری کاهش یابد. اجرای این action تاریخچه گیت را برای پوشه releases بازنویسی میکند و در مخازن عمومی که دیگران فورک کردهاند ممکن است باعث ایجاد مشکل شود. فقط زمانی از آن استفاده کنید که به تنهایی روی مخزن کار میکنید.
- برای جلوگیری از مشکلات و رفع محدودیتها هر نفر میتواند برای استفادهی شخصی خود پروژه را فورک کرده و بر حسب نیاز خود فایل repos.txt را با تعداد کمی از ریپوهای مدنظرش تکمیل کرده و استفاده کند. مسئولیت استفاده بر عهده کاربران است.
sha256:abcdef01234567890ab... قابل مشاهدهاست) مقایسه کنید. برای حاصل شدن اطمینان از اینکه فایلها دستکاری نشدهاند و دقیقا همان نسخه منتشر شده در سورس اصلی میباشند، باید مقدار هش sha256 یک نسخه از یک فایل خاص با مقدار هشی که برای همان نسخه و فایل در سورس اصلی قابل مشاهدهاست، کاملا یکسان باشد. در صورت مغایرت، از نصب آن خودداری کنید.
در اینجا یک راهنمای کوتاه برای بررسی فایلهای دانلود شده از منبعی به جز سورس اصلی، با استفاده از SHA256 در سیستمعاملهای مختلف آورده شده است.
sha256sum FILE_NAME(در macOS قدیمیتر ممکن است به جای آن از shasum -a 256 FILE_NAME استفاده کنید)
Get-FileHash -Algorithm SHA256 FILE_NAMEsha256sum FILE_NAME(اگر دستور در دسترس نبود، ابتدا pkg install coreutils را در Termux اجرا کنید)
استفاده از این ابزار و سرویسهای گیتهاب (GitHub Actions، GitHub API، فضای ذخیرهسازی مخزن، پهنای باند و …) تحت مسئولیت کامل کاربر نهایی است. کاربر موظف است هنگام استفاده از این ریپوزیتوری، همهی محدودیتهای اعلام شده توسط گیتهاب از جمله محدودیت نرخ درخواست API، حداکثر حجم فایل در هر commit (۱۰۰ مگابایت)، مدت زمان اجرای workflow، تعداد دفعات اجرا، حجم مخزن و پهنای باند را رعایت کند. تخلف از محدودیتهای گیتهاب ممکن است منجر به مسدود شدن حساب کاربری یا مسدود شدن مخزن شما شود. بنابراین توصیه میشود:
- تعداد مخازن تحت نظر را محدود نگه دارید.
- فاصله زمانی اجرای خودکار workflow را خیلی کوتاه انتخاب نکنید (مثلاً کمتر از هر ۱۲ ساعت نباشد).
- از فیلترهای مناسب برای کاهش تعداد فایلهای دانلودی استفاده کنید.
- در صورت افزایش حجم فایلها و تاریخچهی گیت، از قابلیت Clear releases history با آگاهی از عواقب آن (بازنویسی تاریخچه گیت) استفاده کنید.
ایجاد این ریپوزیتوری هیچ تعهدی مبنی بر در دسترس بودن مستمر سرویسهای گیتهاب یا صحت عملکرد آنها ایجاد نمیکند. هرگونه مشکل احتمالی ناشی از تغییر قوانین یا محدودیتهای گیتهاب بر عهده کاربر خواهد بود.
این ابزار برای دانلود فایلهای غیرقانونی، دارای مالکیت معنوی یا مغایر با قوانین گیتهاب طراحی نشده است. مسئولیت محتوای دانلود شده و انطباق آن با قوانین محلی بر عهده کاربر است.
پس از اجرای موفق workflow، جداول مربوط به ریپوهای درخواستی کاربر در این بخش قابل مشاهده است:
🔗 source – v1.2.18.2102
| File | Size | Download |
|---|---|---|
karing_1.2.18.2102_windows_x64.zip |
62.0 MB | ⬇️ Download |
🔗 source – 202605040122
| File | Size | Download |
|---|---|---|
domains.txt |
1.7 MB | ⬇️ Download |
domains.txt.sha256 |
0 KB | ⬇️ Download |
| File | Size | Download |
|---|---|---|
mhrv-rs-windows-amd64.zip |
6.9 MB | ⬇️ Download |