diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2016-10-27 12:34:23 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2016-10-27 16:57:57 +0300 |
commit | 00bf30ba9f5831e74b6990d4179bd6e4c0ce072a (patch) | |
tree | e55c08dafc6d0a6100aa1a3bbb49433e77699339 /lib | |
parent | eae98b679b775454c630440b93f41dfdc8b1f72d (diff) | |
download | gitlab-shell-dz-support-nested-namespaces.tar.gz |
Use full repository path for API calls instead of extracting namedz-support-nested-namespaces
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab_access.rb | 5 | ||||
-rw-r--r-- | lib/gitlab_net.rb | 14 | ||||
-rw-r--r-- | lib/gitlab_post_receive.rb | 3 | ||||
-rw-r--r-- | lib/names_helper.rb | 7 |
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 |