mirror of
https://github.com/discourse/discourse.git
synced 2026-08-07 13:19:19 +08:00
Before: <img width="982" height="179" alt="SCR-20260624-lfcu" src="https://github.com/user-attachments/assets/685ac3b8-e733-4ec8-9be0-72a7ca3bf811" /> After: <img width="971" height="166" alt="SCR-20260624-ldxx" src="https://github.com/user-attachments/assets/444ea98b-bdf0-49d6-8633-73f1494b6806" /> --------- Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com>
37 lines
1.5 KiB
Ruby
Vendored
37 lines
1.5 KiB
Ruby
Vendored
# frozen_string_literal: true
|
|
|
|
module Jobs
|
|
class CallDiscourseHub < ::Jobs::Scheduled
|
|
every 1.day
|
|
|
|
def execute(args)
|
|
if SiteSetting.version_checks? &&
|
|
(DiscourseUpdates.updated_at.nil? || DiscourseUpdates.updated_at < 1.minute.ago)
|
|
begin
|
|
prev_missing_versions_count = DiscourseUpdates.missing_versions_count || 0
|
|
|
|
json = DiscourseHub.discourse_version_check
|
|
DiscourseUpdates.last_installed_version = Discourse::VERSION::STRING
|
|
DiscourseUpdates.latest_version = json["latestVersion"]
|
|
DiscourseUpdates.latest_pretty_version = json["latestPrettyVersion"]
|
|
DiscourseUpdates.latest_sha = json["latestSha"]
|
|
DiscourseUpdates.critical_updates_available = json["criticalUpdates"]
|
|
DiscourseUpdates.missing_versions_count = json["missingVersionsCount"]
|
|
DiscourseUpdates.updated_at = Time.zone.now
|
|
DiscourseUpdates.missing_versions = json["versions"]
|
|
|
|
if SiteSetting.new_version_emails && json["missingVersionsCount"] > 0 &&
|
|
prev_missing_versions_count < json["missingVersionsCount"].to_i
|
|
message = VersionMailer.send_notice
|
|
Email::Sender.new(message, :new_version).send
|
|
end
|
|
rescue => e
|
|
raise e unless Rails.env.development? # Fail version check silently in development mode
|
|
end
|
|
end
|
|
|
|
DiscourseHub.discover_enrollment if SiteSetting.include_in_discourse_discover?
|
|
true
|
|
end
|
|
end
|
|
end
|