متابعة النقاش من التحديثات الأخيرة توقفت عن مهمة rake لتحديث الثيمات لاستخدام خادم وكيل:
لم أتمكن من جلب أو تحديث أي مكون ثيم بسبب خطأ المهلة هذا، وأخيراً اكتشفت الحل. إزالة الأسطر التالية التي تبدأ بـ - في الملف \u003cDiscourse\u003e/lib/theme_store/git_importer.rb:
def clone_http!
uri = redirected_uri
raise_import_error! if %w[http https].exclude?(@uri.scheme)
- addresses = FinalDestination::SSRFDetector.lookup_and_filter_ips(uri.host)
- raise_import_error! if addresses.empty?
env = { "GIT_TERMINAL_PROMPT" => "0" }
args =
clone_args(
uri.to_s,
- "http.followRedirects" => "false",
- "http.curloptResolve" => "#{uri.host}:#{uri.port}:#{addresses.join(\",\")}",
)
begin
Discourse::Utils.execute_command(env, *args, timeout: COMMAND_TIMEOUT_SECONDS)
rescue RuntimeError
raise_import_error!
end
end
تقوم هذه الشيفرة بمعالجة حل DNS مسبق ثم تجبر git على استخدام عناوين IP التي تم الحصول عليها من الحل المسبق، لا أعرف لماذا فشلت دائماً على الخادم الخاص بي، لذلك قمت بإزالة المنطق.
في الواقع، لدي سؤال حول وجوده، git نفسه سيقوم بحل DNS، لماذا نحتاج إلى هذا المنطق؟ هذا ليس واضحاً.