bitbucket_rest_api 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,7 +40,6 @@ module BitBucket
40
40
  super()
41
41
  setup options
42
42
  set_api_client
43
- client if client_id? && client_secret?
44
43
 
45
44
  self.instance_eval(&block) if block_given?
46
45
  end
@@ -3,21 +3,6 @@
3
3
  module BitBucket
4
4
  module Authorization
5
5
 
6
- # Setup OAuth instance
7
- def client
8
- @client ||= ::OAuth::Consumer.new(client_id, client_secret,
9
- {:signature_method=>"HMAC-SHA1",
10
- :request_token_path=>"/1.0/oauth/request_token",
11
- :authorize_path=>"/1.0/oauth/authenticate",
12
- :access_token_path=>"/1.0/oauth/access_token",
13
- :proxy=>nil,
14
- :scheme=>:header,
15
- :http_method=>:post,
16
- :oauth_version=>"1.0",
17
- :site=>"https://api.bitbucket.org"}
18
- )
19
- end
20
-
21
6
  # Check whether authentication credentials are present
22
7
  def authenticated?
23
8
  basic_authed? || oauth_token?
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'faraday'
4
+ require 'faraday_middleware'
4
5
  require 'bitbucket_rest_api/response'
5
6
  require 'bitbucket_rest_api/response/mashify'
6
7
  require 'bitbucket_rest_api/response/jsonize'
@@ -26,10 +27,7 @@ module BitBucket
26
27
  def default_options(options={})
27
28
  {
28
29
  :headers => {
29
- ACCEPT => "application/json;q=0.1",
30
- ACCEPT_CHARSET => "utf-8",
31
- USER_AGENT => user_agent,
32
- CONTENT_TYPE => 'application/json'
30
+ USER_AGENT => user_agent
33
31
  },
34
32
  :ssl => { :verify => false },
35
33
  :url => options.fetch(:endpoint) { BitBucket.endpoint }
@@ -41,11 +39,12 @@ module BitBucket
41
39
  #
42
40
  def default_middleware(options={})
43
41
  Proc.new do |builder|
44
- builder.use BitBucket::Request::Jsonize
42
+ #builder.use BitBucket::Request::Jsonize
45
43
  builder.use Faraday::Request::Multipart
46
44
  builder.use Faraday::Request::UrlEncoded
47
- builder.use BitBucket::Request::OAuth, client, oauth_token, oauth_secret if oauth_token? and oauth_secret?
45
+ builder.use FaradayMiddleware::OAuth, {:consumer_key => client_id, :consumer_secret => client_secret, :token => oauth_token, :token_secret => oauth_secret} if oauth_token? and oauth_secret?
48
46
  builder.use BitBucket::Request::BasicAuth, authentication if basic_authed?
47
+ builder.use FaradayMiddleware::EncodeJson
49
48
 
50
49
  builder.use Faraday::Response::Logger if ENV['DEBUG']
51
50
  builder.use BitBucket::Response::Helpers
@@ -10,27 +10,21 @@ module BitBucket
10
10
  :Milestones => 'milestones'
11
11
 
12
12
  VALID_ISSUE_PARAM_NAMES = %w[
13
- filter
14
- state
15
- labels
16
- sort
17
- direction
18
- since
19
- milestone
20
- assignee
21
- mentioned
22
13
  title
23
- body
24
- resource
25
- mime_type
14
+ content
15
+ component
16
+ milestone
17
+ version
18
+ responsible
19
+ priority
20
+ status
21
+ kind
26
22
  ].freeze
27
23
 
28
24
  VALID_ISSUE_PARAM_VALUES = {
29
- 'filter' => %w[ assigned created mentioned subscribed ],
30
- 'state' => %w[ open closed ],
31
- 'sort' => %w[ created updated comments ],
32
- 'direction' => %w[ desc asc ],
33
- 'since' => %r{\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z}
25
+ 'priority' => %w[ trivial minor major critical blocker ],
26
+ 'status' => ['new', 'open', 'resolved', 'on hold', 'invalid', 'duplicate', 'wontfix'],
27
+ 'kind' => %w[ bug enhancement proposal task ]
34
28
  }
35
29
 
36
30
  # Creates new Issues API
@@ -72,8 +66,8 @@ module BitBucket
72
66
  assert_valid_values(VALID_ISSUE_PARAM_VALUES, params)
73
67
 
74
68
  response = get_request("/repositories/#{user}/#{repo}/issues", params)
75
- return response unless block_given?
76
- response.each { |el| yield el }
69
+ return response.issues unless block_given?
70
+ response.issues.each { |el| yield el }
77
71
  end
78
72
 
79
73
  alias :list_repository :list_repo
@@ -140,11 +134,12 @@ module BitBucket
140
134
  _validate_user_repo_params(user, repo) unless user? && repo?
141
135
 
142
136
  normalize! params
137
+ _merge_user_into_params!(params) unless params.has_key?('user')
143
138
  # _merge_mime_type(:issue, params)
144
139
  filter! VALID_ISSUE_PARAM_NAMES, params
145
140
  assert_required_keys(%w[ title ], params)
146
141
 
147
- post_request("/repositories/#{user}/#{repo}/issues", params)
142
+ post_request("/repositories/#{user}/#{repo}/issues/", params)
148
143
  end
149
144
 
150
145
  # Edit an issue
@@ -176,12 +176,12 @@ module BitBucket
176
176
  _merge_user_into_params!(params) unless params.has_key?('user')
177
177
  filter! %w[ user type ], params
178
178
 
179
- response = if (user_name = params.delete("user"))
180
- get_request("/users/#{user_name}", params)
181
- else
179
+ response = #if (user_name = params.delete("user"))
180
+ # get_request("/users/#{user_name}", params)
181
+ #else
182
182
  # For authenticated user
183
183
  get_request("/user/repositories", params)
184
- end
184
+ #end
185
185
  return response unless block_given?
186
186
  response.each { |el| yield el }
187
187
  end
@@ -7,24 +7,26 @@ module BitBucket
7
7
  class OAuth < Faraday::Middleware
8
8
  include BitBucket::Utils::Url
9
9
 
10
- ACCESS_TOKEN = 'access_token'.freeze
11
10
  AUTH_HEADER = 'Authorization'.freeze
12
11
 
13
- dependency 'oauth'
12
+ dependency 'simple_oauth'
14
13
 
15
14
  def call(env)
16
15
  # Extract parameters from the query
17
16
  params = { }.update query_params(env[:url])
18
17
 
19
18
  if (@token and @secret) and (!@token.empty? and !@secret.empty?)
20
- env[:url].query = build_query params
21
-
22
19
  access_token = ::OAuth::AccessToken.new(@consumer, @token, @secret)
23
- oauth_params = {:consumer => @consumer, :token => access_token}
24
- req = Net::HTTP::Get.new env[:url].to_s
25
- oauth_helper = ::OAuth::Client::Helper.new(req, oauth_params.merge(:request_uri => env[:url].to_s))
20
+ env[:url].query = build_query params
21
+
22
+ puts oauth_helper.header
23
+ puts oauth_helper.header.class
26
24
  env[:request_headers].merge!(AUTH_HEADER => oauth_helper.header)
27
25
  end
26
+
27
+ env[:url].query = build_query params
28
+
29
+
28
30
 
29
31
  @app.call env
30
32
  end
@@ -4,7 +4,7 @@ module BitBucket
4
4
  module VERSION
5
5
  MAJOR = 0
6
6
  MINOR = 1
7
- PATCH = 0
7
+ PATCH = 1
8
8
 
9
9
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitbucket_rest_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-31 00:00:00.000000000Z
12
+ date: 2012-08-06 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hashie
16
- requirement: &70165761556820 !ruby/object:Gem::Requirement
16
+ requirement: &70111273293220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70165761556820
24
+ version_requirements: *70111273293220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: faraday
27
- requirement: &70165761555840 !ruby/object:Gem::Requirement
27
+ requirement: &70111273292600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.8.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70165761555840
35
+ version_requirements: *70111273292600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: multi_json
38
- requirement: &70165761554920 !ruby/object:Gem::Requirement
38
+ requirement: &70111273292020 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,21 +43,21 @@ dependencies:
43
43
  version: '1.3'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70165761554920
46
+ version_requirements: *70111273292020
47
47
  - !ruby/object:Gem::Dependency
48
- name: oauth
49
- requirement: &70165761554180 !ruby/object:Gem::Requirement
48
+ name: faraday_middleware
49
+ requirement: &70111273291360 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
- - - ! '>='
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 0.8.1
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70165761554180
57
+ version_requirements: *70111273291360
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: nokogiri
60
- requirement: &70165761552500 !ruby/object:Gem::Requirement
60
+ requirement: &70111273290740 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,21 @@ dependencies:
65
65
  version: 1.5.2
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70165761552500
68
+ version_requirements: *70111273290740
69
+ - !ruby/object:Gem::Dependency
70
+ name: simple_oauth
71
+ requirement: &70111273290120 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *70111273290120
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: rspec
71
- requirement: &70165761551240 !ruby/object:Gem::Requirement
82
+ requirement: &70111273288880 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ! '>='
@@ -76,10 +87,10 @@ dependencies:
76
87
  version: '0'
77
88
  type: :development
78
89
  prerelease: false
79
- version_requirements: *70165761551240
90
+ version_requirements: *70111273288880
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: cucumber
82
- requirement: &70165761550100 !ruby/object:Gem::Requirement
93
+ requirement: &70111273288020 !ruby/object:Gem::Requirement
83
94
  none: false
84
95
  requirements:
85
96
  - - ! '>='
@@ -87,10 +98,10 @@ dependencies:
87
98
  version: '0'
88
99
  type: :development
89
100
  prerelease: false
90
- version_requirements: *70165761550100
101
+ version_requirements: *70111273288020
91
102
  - !ruby/object:Gem::Dependency
92
103
  name: webmock
93
- requirement: &70165761548520 !ruby/object:Gem::Requirement
104
+ requirement: &70111273269300 !ruby/object:Gem::Requirement
94
105
  none: false
95
106
  requirements:
96
107
  - - ~>
@@ -98,10 +109,10 @@ dependencies:
98
109
  version: 1.8.0
99
110
  type: :development
100
111
  prerelease: false
101
- version_requirements: *70165761548520
112
+ version_requirements: *70111273269300
102
113
  - !ruby/object:Gem::Dependency
103
114
  name: vcr
104
- requirement: &70165761546980 !ruby/object:Gem::Requirement
115
+ requirement: &70111273268560 !ruby/object:Gem::Requirement
105
116
  none: false
106
117
  requirements:
107
118
  - - ~>
@@ -109,10 +120,10 @@ dependencies:
109
120
  version: 2.2.0
110
121
  type: :development
111
122
  prerelease: false
112
- version_requirements: *70165761546980
123
+ version_requirements: *70111273268560
113
124
  - !ruby/object:Gem::Dependency
114
125
  name: simplecov
115
- requirement: &70165761545860 !ruby/object:Gem::Requirement
126
+ requirement: &70111273267400 !ruby/object:Gem::Requirement
116
127
  none: false
117
128
  requirements:
118
129
  - - ~>
@@ -120,10 +131,10 @@ dependencies:
120
131
  version: 0.6.1
121
132
  type: :development
122
133
  prerelease: false
123
- version_requirements: *70165761545860
134
+ version_requirements: *70111273267400
124
135
  - !ruby/object:Gem::Dependency
125
136
  name: guard
126
- requirement: &70165761545080 !ruby/object:Gem::Requirement
137
+ requirement: &70111273266280 !ruby/object:Gem::Requirement
127
138
  none: false
128
139
  requirements:
129
140
  - - ! '>='
@@ -131,10 +142,10 @@ dependencies:
131
142
  version: '0'
132
143
  type: :development
133
144
  prerelease: false
134
- version_requirements: *70165761545080
145
+ version_requirements: *70111273266280
135
146
  - !ruby/object:Gem::Dependency
136
147
  name: guard-rspec
137
- requirement: &70165761544020 !ruby/object:Gem::Requirement
148
+ requirement: &70111273265240 !ruby/object:Gem::Requirement
138
149
  none: false
139
150
  requirements:
140
151
  - - ! '>='
@@ -142,10 +153,10 @@ dependencies:
142
153
  version: '0'
143
154
  type: :development
144
155
  prerelease: false
145
- version_requirements: *70165761544020
156
+ version_requirements: *70111273265240
146
157
  - !ruby/object:Gem::Dependency
147
158
  name: guard-cucumber
148
- requirement: &70165761543080 !ruby/object:Gem::Requirement
159
+ requirement: &70111273264600 !ruby/object:Gem::Requirement
149
160
  none: false
150
161
  requirements:
151
162
  - - ! '>='
@@ -153,10 +164,10 @@ dependencies:
153
164
  version: '0'
154
165
  type: :development
155
166
  prerelease: false
156
- version_requirements: *70165761543080
167
+ version_requirements: *70111273264600
157
168
  - !ruby/object:Gem::Dependency
158
169
  name: rake
159
- requirement: &70165761542340 !ruby/object:Gem::Requirement
170
+ requirement: &70111273263720 !ruby/object:Gem::Requirement
160
171
  none: false
161
172
  requirements:
162
173
  - - ! '>='
@@ -164,10 +175,10 @@ dependencies:
164
175
  version: '0'
165
176
  type: :development
166
177
  prerelease: false
167
- version_requirements: *70165761542340
178
+ version_requirements: *70111273263720
168
179
  - !ruby/object:Gem::Dependency
169
180
  name: bundler
170
- requirement: &70165761541400 !ruby/object:Gem::Requirement
181
+ requirement: &70111273262820 !ruby/object:Gem::Requirement
171
182
  none: false
172
183
  requirements:
173
184
  - - ! '>='
@@ -175,8 +186,8 @@ dependencies:
175
186
  version: '0'
176
187
  type: :development
177
188
  prerelease: false
178
- version_requirements: *70165761541400
179
- description: ! ' Ruby wrapper for the BitBucket API '
189
+ version_requirements: *70111273262820
190
+ description: ! ' Ruby wrapper for the BitBucket API supporting OAuth and Basic Authentication '
180
191
  email: mcochran@linux.com
181
192
  executables: []
182
193
  extensions: []
@@ -262,5 +273,5 @@ rubyforge_project:
262
273
  rubygems_version: 1.8.10
263
274
  signing_key:
264
275
  specification_version: 3
265
- summary: Ruby wrapper for the BitBucket API
276
+ summary: Ruby wrapper for the BitBucket API supporting OAuth and Basic Authentication
266
277
  test_files: []