3ef4f74b1a
This adds counters for build artifacts and LFS objects, and moves the preexisting repository_size and commit_count from the projects table into a new project_statistics table. The counters are displayed in the administration area for projects and groups, and also available through the API for admins (on */all) and normal users (on */owned) The statistics are updated through ProjectCacheWorker, which can now do more granular updates with the new :statistics argument.
17 lines
493 B
Ruby
17 lines
493 B
Ruby
class LfsObjectsProject < ActiveRecord::Base
|
|
belongs_to :project
|
|
belongs_to :lfs_object
|
|
|
|
validates :lfs_object_id, presence: true
|
|
validates :lfs_object_id, uniqueness: { scope: [:project_id], message: "already exists in project" }
|
|
validates :project_id, presence: true
|
|
|
|
after_create :update_project_statistics
|
|
after_destroy :update_project_statistics
|
|
|
|
private
|
|
|
|
def update_project_statistics
|
|
ProjectCacheWorker.perform_async(project_id, [], [:lfs_objects_size])
|
|
end
|
|
end
|