Skip to content
Snippets Groups Projects
Commit 709b20eb authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets Committed by Wes Gurney
Browse files

Update code to work with gitlab_git 3

parent 2432015b
No related branches found
No related tags found
1 merge request!4954Add support to configure webhook_timeout in gitlab.yaml
This commit is part of merge request !4954. Comments created here will be created in the context of that merge request.
Showing with 54 additions and 34 deletions
Loading
Loading
@@ -23,7 +23,7 @@ gem 'omniauth-github'
 
# Extracting information from a git repository
# Provide access to Gitlab::Git library
gem "gitlab_git", '2.3.1'
gem "gitlab_git", "~> 3.0.0.beta1"
 
# Ruby/Rack Git Smart-HTTP Server Handler
gem 'gitlab-grack', '~> 1.0.1', require: 'grack'
Loading
Loading
Loading
Loading
@@ -177,7 +177,7 @@ GEM
gitlab-pygments.rb (0.3.2)
posix-spawn (~> 0.3.6)
yajl-ruby (~> 1.1.0)
gitlab_git (2.3.1)
gitlab_git (3.0.0.beta1)
activesupport (~> 3.2.13)
github-linguist (~> 2.3.4)
gitlab-grit (~> 2.6.0)
Loading
Loading
@@ -582,7 +582,7 @@ DEPENDENCIES
gitlab-gollum-lib (~> 1.0.1)
gitlab-grack (~> 1.0.1)
gitlab-pygments.rb (~> 0.3.2)
gitlab_git (= 2.3.1)
gitlab_git (~> 3.0.0.beta1)
gitlab_meta (= 6.0)
gitlab_omniauth-ldap (= 1.0.3)
gon
Loading
Loading
Loading
Loading
@@ -8,7 +8,7 @@ class Projects::BlameController < Projects::ApplicationController
before_filter :require_non_empty_project
 
def show
@blob = Gitlab::Git::Blob.new(@repository, @commit.id, @ref, @path)
@blob = Gitlab::Git::Blob.find(@repository, @commit.id, @path)
@blame = Gitlab::Git::Blame.new(project.repository, @commit.id, @path)
end
end
Loading
Loading
@@ -8,6 +8,6 @@ class Projects::BlobController < Projects::ApplicationController
before_filter :require_non_empty_project
 
def show
@blob = Gitlab::Git::Blob.new(@repository, @commit.id, @ref, @path)
@blob = Gitlab::Git::Blob.find(@repository, @commit.id, @path)
end
end
Loading
Loading
@@ -8,9 +8,9 @@ class Projects::RawController < Projects::ApplicationController
before_filter :require_non_empty_project
 
def show
@blob = Gitlab::Git::Blob.new(@repository, @commit.id, @ref, @path)
@blob = Gitlab::Git::Blob.find(@repository, @commit.id, @path)
 
if @blob.exists?
if @blob
type = if @blob.mime_type =~ /html|javascript/
'text/plain; charset=utf-8'
else
Loading
Loading
Loading
Loading
@@ -24,13 +24,14 @@ class Projects::RefsController < Projects::ApplicationController
format.js do
@ref = params[:ref]
define_tree_vars
tree
render "tree"
end
end
end
 
def logs_tree
contents = @tree.entries
contents = tree.entries
@logs = contents.map do |content|
file = params[:path] ? File.join(params[:path], content.name) : content.name
last_commit = @repo.commits(@commit.id, file, 1).last
Loading
Loading
Loading
Loading
@@ -8,6 +8,8 @@ class Projects::TreeController < Projects::ApplicationController
before_filter :require_non_empty_project
 
def show
return not_found! if tree.entries.empty?
respond_to do |format|
format.html
# Disable cache so browser history works
Loading
Loading
module BlobsHelper
def find_blob(repository, sha, path)
Gitlab::Git::Blob.find(repository, sha, path)
end
end
Loading
Loading
@@ -67,9 +67,9 @@ module TreeHelper
end
 
def tree_breadcrumbs(tree, max_links = 2)
if tree.path
if @path.present?
part_path = ""
parts = tree.path.split("\/")
parts = @path.split("\/")
 
yield('..', nil) if parts.count > max_links
 
Loading
Loading
@@ -78,14 +78,14 @@ module TreeHelper
part_path = part if part_path.empty?
 
next unless parts.last(2).include?(part) if parts.count > max_links
yield(part, tree_join(tree.ref, part_path))
yield(part, tree_join(@ref, part_path))
end
end
end
 
def up_dir_path tree
file = File.join(tree.path, "..")
tree_join(tree.ref, file)
file = File.join(@path, "..")
tree_join(@ref, file)
end
 
def leave_edit_message
Loading
Loading
class Repository
include Gitlab::ShellAdapter
 
attr_accessor :raw_repository
attr_accessor :raw_repository, :path_with_namespace
 
def initialize(path_with_namespace, default_branch)
@raw_repository = Gitlab::Git::Repository.new(path_with_namespace, default_branch)
@path_with_namespace = path_with_namespace
@raw_repository = Gitlab::Git::Repository.new(path_to_repo)
rescue Gitlab::Git::Repository::NoRepository
nil
end
 
def path_to_repo
@path_to_repo ||= File.join(Gitlab.config.gitlab_shell.repos_path, path_with_namespace + ".git")
end
def exists?
raw_repository
end
Loading
Loading
class Tree
attr_accessor :raw
attr_accessor :entries, :readme
 
def initialize(repository, sha, ref = nil, path = nil)
@raw = Gitlab::Git::Tree.new(repository, sha, ref, path)
def initialize(repository, sha, path = '/')
path = '/' if path.blank?
git_repo = repository.raw_repository
@entries = Gitlab::Git::Tree.where(git_repo, sha, path)
if readme_tree = @entries.find(&:readme?)
@readme = Gitlab::Git::Blob.find(git_repo, sha, readme_tree.name)
end
end
 
def method_missing(m, *args, &block)
@raw.send(m, *args, &block)
def trees
@entries.select(&:dir?)
end
 
def respond_to?(method)
return true if @raw.respond_to?(method)
def blobs
@entries.select(&:file?)
end
 
super
def submodules
@entries.select(&:submodule?)
end
end
Loading
Loading
@@ -37,9 +37,9 @@
- unless @suppress_diff
- diffs.each_with_index do |diff, i|
- next if diff.diff.empty?
- file = Gitlab::Git::Blob.new(project.repository, @commit.id, @ref, diff.new_path)
- file = Gitlab::Git::Blob.new(project.repository, @commit.parent_id, @ref, diff.old_path) unless file.exists?
- next unless file.exists?
- file = find_blob(project.repository, @commit.id, diff.new_path)
- file = find_blob(project.repository, @commit.parent_id, diff.old_path) unless file
- next unless file
.file{id: "diff-#{i}"}
.header
- if diff.deleted_file
Loading
Loading
@@ -64,7 +64,7 @@
- if file.text?
= render "projects/commits/text_file", diff: diff, index: i
- elsif file.image?
- old_file = Gitlab::Git::Blob.new(project.repository, @commit.parent_id, @ref, diff.old_path) if @commit.parent_id
- old_file = find_blob(project.repository, @commit.parent_id, diff.old_path) if @commit.parent_id
= render "projects/commits/image", diff: diff, old_file: old_file, file: file, index: i
- else
%p.nothing_here_message No preview for this file type
Loading
Loading
@@ -28,7 +28,7 @@
= truncate(@commit.title, length: 50)
%th= link_to "history", project_commits_path(@project, @id), class: "pull-right"
 
- if tree.up_dir?
- if @path.present?
%tr.tree-item
%td.tree-item-file-name
= image_tag "file_empty.png", size: '16x16'
Loading
Loading
Loading
Loading
@@ -6,6 +6,3 @@ require Rails.root.join("lib", "gitlab", "backend", "shell")
 
# GitLab shell adapter
require Rails.root.join("lib", "gitlab", "backend", "shell_adapter")
# Gitlab Git repos path
Gitlab::Git::Repository.repos_path = Gitlab.config.gitlab_shell.repos_path
Loading
Loading
@@ -86,7 +86,6 @@ module ExtractsPath
# - @ref - A string representing the ref (e.g., the branch, tag, or commit SHA)
# - @path - A string representing the filesystem path
# - @commit - A Commit representing the commit from the given ref
# - @tree - A Tree representing the tree at the given ref/path
#
# If the :id parameter appears to be requesting a specific response format,
# that will be handled as well.
Loading
Loading
@@ -107,15 +106,18 @@ module ExtractsPath
else
@commit = @repo.commit(@options[:extended_sha1])
end
@tree = Tree.new(@repo, @commit.id, @ref, @path)
@hex_path = Digest::SHA1.hexdigest(@path)
@logs_path = logs_file_project_ref_path(@project, @ref, @path)
 
raise InvalidPathError unless @tree.exists?
rescue RuntimeError, NoMethodError, InvalidPathError
not_found!
end
 
def tree
@tree ||= Tree.new(@repo, @commit.id, @path)
end
private
 
def get_id
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment