diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-02-05 11:59:53 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-02-05 11:59:53 +0200 |
commit | 02f4cb520458ad336e67c259810359ebcdaedb59 (patch) | |
tree | 4780bb36ed4a500419406af7698bbce7947574d2 /lib/gitlab_net.rb | |
parent | 43bdc5da612af265b3c06eec26c36f7dbd98329e (diff) | |
download | gitlab-shell-02f4cb520458ad336e67c259810359ebcdaedb59.tar.gz |
gitlab net
Diffstat (limited to 'lib/gitlab_net.rb')
-rw-r--r-- | lib/gitlab_net.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/gitlab_net.rb b/lib/gitlab_net.rb new file mode 100644 index 0000000..d92d3ab --- /dev/null +++ b/lib/gitlab_net.rb @@ -0,0 +1,32 @@ +require 'net/http' +require 'json' + +class GitlabNet + def allowed?(cmd, repo, key, ref) + project_name = repo.gsub("'", "") + project_name = project_name.gsub(/\.git$/, "") + key_id = key.gsub("key-", "") + + url = "#{host}/allowed?project=#{project_name}&key_id=#{key_id}&action=#{cmd}&ref=#{ref}" + + resp = get(url) + + !!(resp.code == '200' && resp.body == 'true') + end + + def discover(key) + key_id = key.gsub("key-", "") + resp = get("#{host}/discover?key_id=#{key_id}") + JSON.parse(resp.body) + end + + protected + + def host + "http://127.0.0.1:3000/api/v3/internal" + end + + def get(url) + Net::HTTP.get_response(URI.parse(url)) + end +end |