summaryrefslogtreecommitdiff
path: root/lib/gitlab_net.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab_net.rb')
-rw-r--r--lib/gitlab_net.rb32
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