Commit c99f4e93 by Douwe Maan Committed by Dmitriy Zaporozhets

Merge branch 'fix-commit-data-url-generation' into 'master'

Fix bug where commit data would not appear in some subdirectories

Fix issue where commit data would not show up in some subdirectories due to escaped slashes. For example:

https://gitlab.common-lisp.net/ecl/ecl/tree/develop/src/gc (now patched with fix)

The upgrade from Rails v4.1.2 to v4.1.9 (76aad9b7) caused slashes in a tree to be escaped automatically. Using a wildcard glob in the route prevents this behavior.

* Closes #1478, #1459
* Closes https://github.com/gitlabhq/gitlabhq/issues/9037

See merge request !581
parent fe38be8b
......@@ -34,6 +34,8 @@ v 7.10.0 (unreleased)
- Fix bug where commit data would not appear in some subdirectories (Stan Hu)
- Unescape branch names in compare commit (Stan Hu)
-
-
- Fix bug where commit data would not appear in some subdirectories (Stan Hu)
- Fix bug where Slack service channel was not saved in admin template settings. (Stan Hu)
- Move snippets UI to fluid layout
- Improve UI for sidebar. Increase separation between navigation and content
......
......@@ -433,7 +433,7 @@ Gitlab::Application.routes.draw do
member do
# tree viewer logs
get 'logs_tree', constraints: { id: Gitlab::Regex.git_reference_regex }
get 'logs_tree/:path' => 'refs#logs_tree', as: :logs_file, constraints: {
get 'logs_tree/*path' => 'refs#logs_tree', as: :logs_file, constraints: {
id: Gitlab::Regex.git_reference_regex,
path: /.*/
}
......
......@@ -2,6 +2,8 @@ require 'spec_helper'
describe ExtractsPath do
include ExtractsPath
include RepoHelpers
include Rails.application.routes.url_helpers
let(:project) { double('project') }
......@@ -11,6 +13,20 @@ describe ExtractsPath do
project.stub(path_with_namespace: 'gitlab/gitlab-ci')
end
describe '#assign_ref' do
let(:ref) { sample_commit[:id] }
let(:params) { {path: sample_commit[:line_code_path], ref: ref} }
before do
@project = create(:project)
end
it "log tree path should have no escape sequences" do
assign_ref_vars
expect(@logs_path).to eq("/#{@project.path_with_namespace}/refs/#{ref}/logs_tree/files/ruby/popen.rb")
end
end
describe '#extract_ref' do
it "returns an empty pair when no @project is set" do
@project = nil
......
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