summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2018-11-05 18:53:22 +0000
committerStan Hu <stanhu@gmail.com>2018-11-05 18:53:22 +0000
commitd33dad88a143e7f0dc495cb5bff45a558d5d81d9 (patch)
treea6c0dbb33237963e35f119363cfd3ff4694af892 /app
parentc6d4449f33b57a90d78b3f739ccecc5ab8588e96 (diff)
parentb47e666026c30dbfaa0012655bb01eb18d1c3a63 (diff)
downloadgitlab-ce-d33dad88a143e7f0dc495cb5bff45a558d5d81d9.tar.gz
Merge branch '48239-performance-info-ref' into 'master'
Performance tuning on Projects::GitHttpController#info_refs Closes #48239 See merge request gitlab-org/gitlab-ce!22013
Diffstat (limited to 'app')
-rw-r--r--app/models/deploy_token.rb5
-rw-r--r--app/models/project.rb12
2 files changed, 7 insertions, 10 deletions
diff --git a/app/models/deploy_token.rb b/app/models/deploy_token.rb
index 0b2eedf3631..e3524305346 100644
--- a/app/models/deploy_token.rb
+++ b/app/models/deploy_token.rb
@@ -4,6 +4,7 @@ class DeployToken < ActiveRecord::Base
include Expirable
include TokenAuthenticatable
include PolicyActor
+ include Gitlab::Utils::StrongMemoize
add_authentication_token_field :token
AVAILABLE_SCOPES = %i(read_repository read_registry).freeze
@@ -49,7 +50,9 @@ class DeployToken < ActiveRecord::Base
# to a single project, later we're going to extend
# that to be for multiple projects and namespaces.
def project
- projects.first
+ strong_memoize(:project) do
+ projects.first
+ end
end
def expires_at
diff --git a/app/models/project.rb b/app/models/project.rb
index 872bea46e7c..d3b148d0ac0 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -95,8 +95,7 @@ class Project < ActiveRecord::Base
unless: :ci_cd_settings,
if: proc { ProjectCiCdSetting.available? }
- after_create :set_last_activity_at
- after_create :set_last_repository_updated_at
+ after_create :set_timestamps_for_create
after_update :update_forks_visibility_level
before_destroy :remove_private_deploy_keys
@@ -2103,13 +2102,8 @@ class Project < ActiveRecord::Base
gitlab_shell.exists?(repository_storage, "#{disk_path}.git")
end
- # set last_activity_at to the same as created_at
- def set_last_activity_at
- update_column(:last_activity_at, self.created_at)
- end
-
- def set_last_repository_updated_at
- update_column(:last_repository_updated_at, self.created_at)
+ def set_timestamps_for_create
+ update_columns(last_activity_at: self.created_at, last_repository_updated_at: self.created_at)
end
def cross_namespace_reference?(from)