822ba95f by Douwe Maan

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
2 parents 8140c682 ef0055b5
......@@ -19,6 +19,8 @@ v 7.11.0 (unreleased)
- Include commit comments in MR from a forked project.
- Fix adding new group members from admin area
- Add default project and snippet visibility settings to the admin web UI.
-
- 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
......
......@@ -435,7 +435,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
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!