Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/ci/catalog')
-rw-r--r--app/models/ci/catalog/resource.rb5
-rw-r--r--app/models/ci/catalog/resources/version.rb9
2 files changed, 14 insertions, 0 deletions
diff --git a/app/models/ci/catalog/resource.rb b/app/models/ci/catalog/resource.rb
index 3ead852e834..8bfef225e05 100644
--- a/app/models/ci/catalog/resource.rb
+++ b/app/models/ci/catalog/resource.rb
@@ -50,6 +50,11 @@ module Ci
save!
end
+ # Triggered in Ci::Catalog::Resources::Version and Release model callbacks.
+ def update_latest_released_at!
+ update!(latest_released_at: versions.latest&.released_at)
+ end
+
private
# These columns are denormalized from the `projects` table. We first sync these
diff --git a/app/models/ci/catalog/resources/version.rb b/app/models/ci/catalog/resources/version.rb
index bd0ebc77a6d..ab4d5c52526 100644
--- a/app/models/ci/catalog/resources/version.rb
+++ b/app/models/ci/catalog/resources/version.rb
@@ -28,6 +28,9 @@ module Ci
delegate :name, :description, :tag, :sha, :released_at, :author_id, to: :release
+ after_destroy :update_catalog_resource
+ after_save :update_catalog_resource
+
class << self
# In the future, we should support semantic versioning.
# See https://gitlab.com/gitlab-org/gitlab/-/issues/427286
@@ -110,6 +113,12 @@ module Ci
end
end
end
+
+ private
+
+ def update_catalog_resource
+ catalog_resource.update_latest_released_at!
+ end
end
end
end