0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-07 13:19:19 +08:00
discourse/app/jobs/scheduled/call_discourse_hub.rb
David Taylor b6dfa40d1e
FEATURE: Improve display of installed/available version on dashboard (#41165)
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>
2026-06-24 13:07:05 +01:00

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