summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2017-10-22 20:16:41 +0300
committerBob Van Landuyt <bob@vanlanduyt.co>2017-10-22 20:24:47 +0300
commit6f5ebc4bae8524585b5377d3056664730e0e1381 (patch)
treefc3ec67edee1fc6b885f86887e71486338c6969a
parent490cce630f5984d063283537ac42a6f9fbad86e6 (diff)
downloadgitlab-ce-bvl-fix-push-event-service-for-forks.tar.gz
Only cache the event for the fork-source when it existsbvl-fix-push-event-service-for-forks
It is possible for a fork not to have a source anymore, in this case we don't need to keep track of the push event.
-rw-r--r--app/services/users/last_push_event_service.rb4
-rw-r--r--changelogs/unreleased/bvl-fix-push-event-service-for-forks.yml5
-rw-r--r--spec/services/users/last_push_event_service_spec.rb1
3 files changed, 7 insertions, 3 deletions
diff --git a/app/services/users/last_push_event_service.rb b/app/services/users/last_push_event_service.rb
index f2bfb60604f..57e446d7f30 100644
--- a/app/services/users/last_push_event_service.rb
+++ b/app/services/users/last_push_event_service.rb
@@ -16,8 +16,8 @@ module Users
user_cache_key
]
- if event.project.forked?
- keys << project_cache_key(event.project.forked_from_project)
+ if forked_from = event.project.forked_from_project
+ keys << project_cache_key(forked_from)
end
keys.each { |key| set_key(key, event.id) }
diff --git a/changelogs/unreleased/bvl-fix-push-event-service-for-forks.yml b/changelogs/unreleased/bvl-fix-push-event-service-for-forks.yml
new file mode 100644
index 00000000000..2a7d80270ac
--- /dev/null
+++ b/changelogs/unreleased/bvl-fix-push-event-service-for-forks.yml
@@ -0,0 +1,5 @@
+---
+title: Only cache last push event for existing projects when pushing to a fork
+merge_request: 14989
+author:
+type: fixed
diff --git a/spec/services/users/last_push_event_service_spec.rb b/spec/services/users/last_push_event_service_spec.rb
index 956358738fe..2b6c0267a0f 100644
--- a/spec/services/users/last_push_event_service_spec.rb
+++ b/spec/services/users/last_push_event_service_spec.rb
@@ -22,7 +22,6 @@ describe Users::LastPushEventService do
it 'caches the event for the origin project when pushing to a fork' do
source = build(:project, id: 5)
- allow(project).to receive(:forked?).and_return(true)
allow(project).to receive(:forked_from_project).and_return(source)
expect(service).to receive(:set_key)