Only cache the event for the fork-source when it exists

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.
This commit is contained in:
Bob Van Landuyt 2017-10-22 20:16:41 +03:00
parent 490cce630f
commit 6f5ebc4bae
3 changed files with 7 additions and 3 deletions

View File

@ -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) }

View File

@ -0,0 +1,5 @@
---
title: Only cache last push event for existing projects when pushing to a fork
merge_request: 14989
author:
type: fixed

View File

@ -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)