Commit 79b9249ff44c5ccbef44a8d9420a3fff369d932a
1 parent
65737bd5
Exists in
master
and in
4 other branches
Remove relative_url_root from path. Fixes #2602
Files and Commits render a 404 when running with relative_url_root.
Showing
2 changed files
with
25 additions
and
0 deletions
Show diff stats
lib/extracts_path.rb
@@ -50,6 +50,8 @@ module ExtractsPath | @@ -50,6 +50,8 @@ module ExtractsPath | ||
50 | 50 | ||
51 | return pair unless @project | 51 | return pair unless @project |
52 | 52 | ||
53 | + # Remove relative_url_root from path | ||
54 | + input.gsub!(/^#{Gitlab.config.gitlab.relative_url_root}/, "") | ||
53 | # Remove project, actions and all other staff from path | 55 | # Remove project, actions and all other staff from path |
54 | input.gsub!(/^\/#{Regexp.escape(@project.path_with_namespace)}/, "") | 56 | input.gsub!(/^\/#{Regexp.escape(@project.path_with_namespace)}/, "") |
55 | input.gsub!(/^\/(tree|commits|blame|blob|refs)\//, "") # remove actions | 57 | input.gsub!(/^\/(tree|commits|blame|blob|refs)\//, "") # remove actions |
spec/lib/extracts_path_spec.rb
@@ -73,5 +73,28 @@ describe ExtractsPath do | @@ -73,5 +73,28 @@ describe ExtractsPath do | ||
73 | extract_ref('/gitlab/gitlab-ci/tree/v2.0.0/CHANGELOG?_=12354435').should == ['v2.0.0', 'CHANGELOG'] | 73 | extract_ref('/gitlab/gitlab-ci/tree/v2.0.0/CHANGELOG?_=12354435').should == ['v2.0.0', 'CHANGELOG'] |
74 | end | 74 | end |
75 | end | 75 | end |
76 | + | ||
77 | + context "with a fullpath and a relative_url_root" do | ||
78 | + before do | ||
79 | + Gitlab.config.gitlab.stub(relative_url_root: '/relative') | ||
80 | + end | ||
81 | + | ||
82 | + it "extracts a valid branch with relative_url_root" do | ||
83 | + extract_ref('/relative/gitlab/gitlab-ci/tree/foo/bar/baz/CHANGELOG').should == ['foo/bar/baz', 'CHANGELOG'] | ||
84 | + end | ||
85 | + | ||
86 | + it "extracts a valid tag" do | ||
87 | + extract_ref('/relative/gitlab/gitlab-ci/tree/v2.0.0/CHANGELOG').should == ['v2.0.0', 'CHANGELOG'] | ||
88 | + end | ||
89 | + | ||
90 | + it "extracts a valid commit SHA" do | ||
91 | + extract_ref('/relative/gitlab/gitlab-ci/tree/f4b14494ef6abf3d144c28e4af0c20143383e062/CHANGELOG').should == | ||
92 | + ['f4b14494ef6abf3d144c28e4af0c20143383e062', 'CHANGELOG'] | ||
93 | + end | ||
94 | + | ||
95 | + it "extracts a timestamp" do | ||
96 | + extract_ref('/relative/gitlab/gitlab-ci/tree/v2.0.0/CHANGELOG?_=12354435').should == ['v2.0.0', 'CHANGELOG'] | ||
97 | + end | ||
98 | + end | ||
76 | end | 99 | end |
77 | end | 100 | end |