summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab_access.rb5
-rw-r--r--lib/gitlab_net.rb14
-rw-r--r--lib/gitlab_post_receive.rb3
-rw-r--r--lib/names_helper.rb7
4 files changed, 9 insertions, 20 deletions
diff --git a/lib/gitlab_access.rb b/lib/gitlab_access.rb
index 04806b2..ab431bf 100644
--- a/lib/gitlab_access.rb
+++ b/lib/gitlab_access.rb
@@ -9,19 +9,18 @@ class GitlabAccess
include NamesHelper
- attr_reader :config, :repo_path, :repo_name, :changes, :protocol
+ attr_reader :config, :repo_path, :changes, :protocol
def initialize(repo_path, actor, changes, protocol)
@config = GitlabConfig.new
@repo_path = repo_path.strip
@actor = actor
- @repo_name = extract_repo_name(@repo_path.dup)
@changes = changes.lines
@protocol = protocol
end
def exec
- status = api.check_access('git-receive-pack', @repo_name, @actor, @changes, @protocol)
+ status = api.check_access('git-receive-pack', @repo_path, @actor, @changes, @protocol)
raise AccessDeniedError, status.message unless status.allowed?
diff --git a/lib/gitlab_net.rb b/lib/gitlab_net.rb
index 994f8d5..ed0b705 100644
--- a/lib/gitlab_net.rb
+++ b/lib/gitlab_net.rb
@@ -21,7 +21,7 @@ class GitlabNet
params = {
action: cmd,
changes: changes,
- project: project_name(repo),
+ project: sanitize_path(repo),
protocol: protocol
}
@@ -49,7 +49,7 @@ class GitlabNet
def lfs_authenticate(key, repo)
params = {
- project: project_name(repo),
+ project: sanitize_path(repo),
key_id: key.gsub('key-', '')
}
@@ -65,10 +65,10 @@ class GitlabNet
JSON.parse(resp.body) rescue {}
end
- def merge_request_urls(repo_name, changes)
+ def merge_request_urls(repo_path, changes)
changes = changes.join("\n") unless changes.kind_of?(String)
changes = changes.encode('UTF-8', 'ASCII', invalid: :replace, replace: '')
- resp = get("#{host}/merge_request_urls?project=#{URI.escape(repo_name)}&changes=#{URI.escape(changes)}")
+ resp = get("#{host}/merge_request_urls?project=#{URI.escape(repo_path)}&changes=#{URI.escape(changes)}")
JSON.parse(resp.body) rescue []
end
@@ -118,10 +118,8 @@ class GitlabNet
protected
- def project_name(repo)
- project_name = repo.gsub("'", "")
- project_name = project_name.gsub(/\.git\Z/, "")
- project_name.gsub(/\A\//, "")
+ def sanitize_path(repo)
+ repo.gsub("'", "")
end
def config
diff --git a/lib/gitlab_post_receive.rb b/lib/gitlab_post_receive.rb
index 9ad74f5..3af2b38 100644
--- a/lib/gitlab_post_receive.rb
+++ b/lib/gitlab_post_receive.rb
@@ -13,7 +13,6 @@ class GitlabPostReceive
def initialize(repo_path, actor, changes)
@config = GitlabConfig.new
@repo_path, @actor = repo_path.strip, actor
- @repo_name = extract_repo_name(@repo_path.dup)
@changes = changes
@jid = SecureRandom.hex(12)
end
@@ -29,7 +28,7 @@ class GitlabPostReceive
print_broadcast_message(broadcast_message["message"])
end
- merge_request_urls = api.merge_request_urls(@repo_name, @changes)
+ merge_request_urls = api.merge_request_urls(@repo_path, @changes)
print_merge_request_links(merge_request_urls)
rescue GitlabNet::ApiUnreachableError
nil
diff --git a/lib/names_helper.rb b/lib/names_helper.rb
index ec41b79..1f9c56e 100644
--- a/lib/names_helper.rb
+++ b/lib/names_helper.rb
@@ -1,11 +1,4 @@
module NamesHelper
- def extract_repo_name(path)
- repo_name = path.strip
- repo_name.gsub!(/\.git$/, "")
- repo_name.gsub!(/^\//, "")
- repo_name.split(File::SEPARATOR).last(2).join(File::SEPARATOR)
- end
-
def extract_ref_name(ref)
ref.gsub(/\Arefs\/(tags|heads)\//, '')
end