Commit f3000481 authored by Douwe Maan's avatar Douwe Maan Committed by Rémy Coutable

Merge branch 'fix/project-forks-page' into 'master'

workaround for forks with an invalid repo

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/13465

The error occurs when a project returns a `nil` commit for a variety of reasons, I assume the repository is corrupt - perhaps as a result of a failed fork. 

With this MR, we do not show forks with corrupted repos in the list of forks, as this does not seem to work anyway. A better solution is to fix the cause of the issue and/or any data integrity problem...

Also fixing Sentry issue: 1180
`undefined method 'already_forked?' for nil:NilClass `


See merge request !2836
parent 554d9bf6
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
- ci = false unless local_assigns[:ci] == true - ci = false unless local_assigns[:ci] == true
- skip_namespace = false unless local_assigns[:skip_namespace] == true - skip_namespace = false unless local_assigns[:skip_namespace] == true
- css_class = '' unless local_assigns[:css_class] - css_class = '' unless local_assigns[:css_class]
- show_last_commit_as_description = false unless local_assigns[:show_last_commit_as_description] == true - show_last_commit_as_description = false unless local_assigns[:show_last_commit_as_description] == true && project.commit
- css_class += " no-description" if project.description.blank? && !show_last_commit_as_description - css_class += " no-description" if project.description.blank? && !show_last_commit_as_description
- ci_commit = project.ci_commit(project.commit.sha) if ci && !project.empty_repo? && project.commit - ci_commit = project.ci_commit(project.commit.sha) if ci && !project.empty_repo? && project.commit
- cache_key = [project.namespace, project, controller.controller_name, controller.action_name, current_application_settings, 'v2.2'] - cache_key = [project.namespace, project, controller.controller_name, controller.action_name, current_application_settings, 'v2.2']
......
...@@ -32,6 +32,13 @@ Feature: Project Fork ...@@ -32,6 +32,13 @@ Feature: Project Fork
And I visit the forks page of the "Shop" project And I visit the forks page of the "Shop" project
Then I should see my fork on the list Then I should see my fork on the list
Scenario: Viewing forks of a Project that has no repo
Given I click link "Fork"
When I fork to my namespace
And I make forked repo invalid
And I visit the forks page of the "Shop" project
Then I should see my fork on the list
Scenario: Viewing private forks of a Project Scenario: Viewing private forks of a Project
Given There is an existent fork of the "Shop" project Given There is an existent fork of the "Shop" project
And I click link "Fork" And I click link "Fork"
......
...@@ -62,6 +62,12 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps ...@@ -62,6 +62,12 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps
end end
end end
step 'I make forked repo invalid' do
project = @user.fork_of(@project)
project.path = 'test-crappy-path'
project.save!
end
step 'There is an existent fork of the "Shop" project' do step 'There is an existent fork of the "Shop" project' do
user = create(:user, name: 'Mike') user = create(:user, name: 'Mike')
@forked_project = Projects::ForkService.new(@project, user).execute @forked_project = Projects::ForkService.new(@project, user).execute
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment