stash-api 1.1.33.0 → 1.1.35.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +8 -8
  2. data/lib/stash-api/explorer.rb +44 -0
  3. metadata +3 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZmFjZGVmYTJlNzA3MmVjNzllYmJkYmM0MjIzYzlmODVhZDNjNDFjNA==
4
+ MzkzOGYyNjM1NDlkYTM3YzgyOThlMDViMzExZjkzMmQ0NWU1MTlmNA==
5
5
  data.tar.gz: !binary |-
6
- OWQ5NGY0ZTZiYWJiYzAzNjY4MGU2MzZhYTFkNzI0MDY3ZGVmYTc4MA==
6
+ MjdlZDgzOWNlMDRkOWY3Njk1MThkMTBlMDc2MzEwOTM2MWNlN2M0NQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MTQ3OTVlMWI3Y2Q4ZWE1OGE5MDVjNjk0Zjg3MGE3NmIxNWQyODk0ZDYwMTky
10
- OTQxMDg1NzgwZjczNDEzOWJhZDkzOTEyODYzODc0NGQ2MmFiYmU4ZWIyMDA0
11
- Mjg1MTA3ZDRmMzM2YzBmOTdhZDMzY2E2MmM3ZTdlNjkwMDA1Mzc=
9
+ OWYxMTJlMWExZjRjZjE3YTllYWUwZmY5YWVkOTlkMTA2ZTJlNjVkMDhkMTcz
10
+ MjFiOGE2OGVhNWYxYzViYzA2NmRlMjYyNWZkOWU2ZjA1ZGE1MDY0YTAzZmZm
11
+ ZjVhNzY4YzdiNTY2Zjg4MDczYWRkZjgyOTNhNmU3MDdkNzhhOWM=
12
12
  data.tar.gz: !binary |-
13
- YjYyZmIwYjcwNjNiMDhmMjJiODRmYzBkZDhmMTIxNDEwZjllZGE5ZDliMzMx
14
- MWU0ZWQyOTcwZWE5NjZiNDVhMGYxNzY1M2U0OGQ3MTY2MWY1ZmQ5NjlkMThi
15
- OWU3YWU4YWM3MjU0ZjAwYzg5OWNhNmU5MTU1MWRjZTRlYjU1ZmU=
13
+ ZjJkMWJkNDljYWYwOTc5ZDNiYWZkNDJjODRiYTc3MmNjMTdhMTJlYTFiMTg2
14
+ Zjk0OTQ0MjhjYWVhYmVjZmNmZTY5ZmQ3Yzc1Y2EyZDcwNzU5Y2ZkYTJkYjJl
15
+ MTU0YjNjOTAxMmVlNjZhMDg5ZGFlYjRmMGFjNzQ2ZGNhNTUzYTc=
@@ -0,0 +1,44 @@
1
+ require 'open-uri'
2
+ require 'rest-client'
3
+
4
+ module Stash
5
+ class Explorer
6
+ attr_accessor :server
7
+
8
+ def initialize(username, password, server)
9
+ raise 'API username must be specified' if !username
10
+ raise 'API password must be specified' if !password
11
+ raise 'Stash server must be specified' if !server
12
+ @username = username
13
+ @password = password
14
+ @server = server
15
+
16
+ @get_repos_url = File.join("https://#{@server}", 'rest', 'api', '1.0', 'projects')
17
+ end
18
+
19
+ def get_repositories(project_key)
20
+ repos = []
21
+ RestClient::Request.new(
22
+ :method => :get,
23
+ :url => URI::encode("#{File.join(@get_repos_url, project_key, 'repos')}?limit=1000"),
24
+ :user => @username,
25
+ :password => @password,
26
+ :headers => { :accept => :json, :content_type => :json }).execute do |response, request, result|
27
+ raise "Could not get repositories - #{JSON::pretty_generate(JSON::parse(response.body))}" if !response.code.to_s.match(/^2\d{2}$/)
28
+ JSON::parse(response)['values'].each{ |h| repos << h['slug'] }
29
+ end
30
+ repos
31
+ end
32
+
33
+ def get_file(project_key, repo, path)
34
+ RestClient::Request.new(
35
+ :method => :get,
36
+ :url => URI::encode("#{File.join(@get_repos_url, project_key, 'repos', repo, 'browse', path)}?limit=1000"),
37
+ :user => @username,
38
+ :password => @password,
39
+ :headers => { :accept => :json, :content_type => :json }).execute do |response, request, result|
40
+ return response.code.to_s.match(/^2\d{2}$/) ? JSON::parse(response)['lines'].map{|t| t['text']}.join("\n") : nil
41
+ end
42
+ end
43
+ end
44
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stash-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.33.0
4
+ version: 1.1.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Warren Parad
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-04 00:00:00.000000000 Z
11
+ date: 2015-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -62,6 +62,7 @@ files:
62
62
  - lib/stash-api.rb
63
63
  - lib/stash-api/client.rb
64
64
  - lib/stash-api/dsl.rb
65
+ - lib/stash-api/explorer.rb
65
66
  homepage: https://github.com/wparad/Stash-API
66
67
  licenses:
67
68
  - BSD-3-Clause