vx-service_connector 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5fc671f16c38849ff4dff07c11ced37c0c6ef64
4
- data.tar.gz: d74297ae8b5ebdeea4049bb06b660125f800873e
3
+ metadata.gz: 038bdbfc4a4a3a9c062f956e9abcd945a3a5794a
4
+ data.tar.gz: 8904ea0285f5d9be686867b85a86ec69eb193ca0
5
5
  SHA512:
6
- metadata.gz: df104c9393213f487f5e5689c1a625827ad4f777b2ee14dac502fc9812ab4d7b31174b361dcb3f45a6a9ccf8301c8f35fe3e3caf4be497c1fc6ce140fe449c9b
7
- data.tar.gz: 65c3cff69aa04dd2487a71506e1bdbec7b93d6b79af782c6352f8bebb03206a5a54b59639c86148594039d55d8731bff8145005322249e4b258d49ba3d2cea53
6
+ metadata.gz: 246df6b11fe38d2077747806361efbf3f83b5012c5796ed183fb88b2438df07770d9d5077646f2bf8877411dc63909ba6fec9812f7a844d2b4b8c7802bab0111
7
+ data.tar.gz: 7c30d3382cfe8b72a5be90e2af05d9c2d18528a776134fa45248e25b67105eb520df3760fcf26007a83c72b9ff86ecf6f70889c3087e211ec38b9898e2da2075
@@ -16,7 +16,7 @@ module Vx
16
16
  author_email: author_email,
17
17
  web_url: web_url,
18
18
  tag: tag_name,
19
- skip: ignore?,
19
+ skip: !valid?,
20
20
  )
21
21
  end
22
22
 
@@ -39,7 +39,8 @@ module Vx
39
39
 
40
40
  def sha
41
41
  if pull_request?
42
- pull_request['source']['commit']['hash']
42
+ pull_request['source'] &&
43
+ pull_request['source']['commit']['hash']
43
44
  else
44
45
  head_commit['raw_node']
45
46
  end
@@ -48,7 +49,8 @@ module Vx
48
49
  def branch
49
50
  @branch ||= begin
50
51
  if pull_request?
51
- pull_request['source']['branch']['name']
52
+ pull_request['source'] &&
53
+ pull_request['source']['branch']['name']
52
54
  else
53
55
  head_commit['branch']
54
56
  end
@@ -69,7 +71,8 @@ module Vx
69
71
 
70
72
  def message
71
73
  if pull_request?
72
- commit_for_pull_request["message"]
74
+ commit = commit_for_pull_request
75
+ commit && commit['message']
73
76
  else
74
77
  head_commit['message']
75
78
  end
@@ -77,7 +80,8 @@ module Vx
77
80
 
78
81
  def author
79
82
  if pull_request?
80
- commit_for_pull_request["author"]["user"]["display_name"]
83
+ commit = commit_for_pull_request
84
+ commit && commit["author"]["user"]["display_name"]
81
85
  else
82
86
  head_commit['author']
83
87
  end
@@ -89,7 +93,8 @@ module Vx
89
93
 
90
94
  def author_email
91
95
  if pull_request?
92
- commit_for_pull_request["author"]["raw"][/.*<([^>]*)/,1]
96
+ commit = commit_for_pull_request
97
+ commit && commit["author"]["raw"][/.*<([^>]*)/,1]
93
98
  else
94
99
  commits? && head_commit['raw_author'][/.*<([^>]*)/,1]
95
100
  end
@@ -104,11 +109,13 @@ module Vx
104
109
  end
105
110
 
106
111
  def pull_request_head_repo_full_name
107
- pull_request['source']['repository']['full_name']
112
+ pull_request['source'] &&
113
+ pull_request['source']['repository']['full_name']
108
114
  end
109
115
 
110
116
  def pull_request_base_repo_full_name
111
- pull_request['destination']['repository']['full_name']
117
+ pull_request['destination'] &&
118
+ pull_request['destination']['repository']['full_name']
112
119
  end
113
120
 
114
121
  def foreign_pull_request?
@@ -117,6 +124,14 @@ module Vx
117
124
  end
118
125
  end
119
126
 
127
+ def valid?
128
+ if ignore?
129
+ false
130
+ else
131
+ message && author && author_email || false
132
+ end
133
+ end
134
+
120
135
  def ignore?
121
136
  if pull_request?
122
137
  closed_pull_request?
@@ -127,7 +142,8 @@ module Vx
127
142
 
128
143
  def commit_for_pull_request
129
144
  @commit_for_pull_request ||= begin
130
- session.get pull_request['source']['commit']['links']['self']['href']
145
+ pull_request['source'] &&
146
+ (session.get pull_request['source']['commit']['links']['self']['href'])
131
147
  end
132
148
  end
133
149
 
@@ -5,18 +5,6 @@ module Vx
5
5
  Payload = Struct.new(:session, :repo, :params) do
6
6
 
7
7
  def build
8
- ServiceConnector::Model::Payload.new(
9
- !valid?,
10
- !!pull_request?,
11
- pull_request_number,
12
- branch,
13
- branch_label,
14
- sha,
15
- message,
16
- author,
17
- author_email,
18
- web_url
19
- )
20
8
  ServiceConnector::Model::Payload.from_hash(
21
9
  internal_pull_request?: (pull_request? && !foreign_pull_request?),
22
10
  foreign_pull_request?: foreign_pull_request?,
@@ -1,5 +1,5 @@
1
1
  module Vx
2
2
  module ServiceConnector
3
- VERSION = "0.4.0"
3
+ VERSION = "0.4.1"
4
4
  end
5
5
  end
@@ -0,0 +1,21 @@
1
+ {
2
+ "pullrequest_approve": {
3
+ "date": "2014-12-03T14:13:07.062645+00:00",
4
+ "user": {
5
+ "username": "pi_boomstarter",
6
+ "display_name": "Pavel Ivanov",
7
+ "uuid": "{3acc0b44-d08a-4e50-9e8b-3cf223ff4bbd}",
8
+ "links": {
9
+ "self": {
10
+ "href": "https://bitbucket.org/api/2.0/users/pi_boomstarter"
11
+ },
12
+ "html": {
13
+ "href": "https://bitbucket.org/pi_boomstarter"
14
+ },
15
+ "avatar": {
16
+ "href": "https://bitbucket-assetroot.s3.amazonaws.com/c/photos/2014/Oct/15/pi_boomstarter-avatar-2102014747-6_avatar.png"
17
+ }
18
+ }
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "pullrequest_comment_created": {
3
+ "links": {
4
+ "self": {
5
+ "href": "https://bitbucket.org/api/2.0/repositories/boomstarter/boomstarter/pullrequests/349/comments/4135018"
6
+ },
7
+ "html": {
8
+ "href": "https://bitbucket.org/boomstarter/boomstarter/pull-request/349/_/diff#comment-4135018"
9
+ }
10
+ },
11
+ "content": {
12
+ "raw": "\u041f\u043e\u043c\u0435\u043d\u044f\u043b.",
13
+ "markup": "markdown",
14
+ "html": "<p>\u041f\u043e\u043c\u0435\u043d\u044f\u043b.</p>"
15
+ },
16
+ "created_on": "2014-12-03T11:49:47.310260+00:00",
17
+ "user": {
18
+ "username": "bibimij",
19
+ "display_name": "bibimij",
20
+ "uuid": "{7385eb2d-3482-4bda-a311-91418d7373ce}",
21
+ "links": {
22
+ "self": {
23
+ "href": "https://bitbucket.org/api/2.0/users/bibimij"
24
+ },
25
+ "html": {
26
+ "href": "https://bitbucket.org/bibimij"
27
+ },
28
+ "avatar": {
29
+ "href": "https://bitbucket-assetroot.s3.amazonaws.com/c/photos/2014/Nov/10/bibimij-avatar-403312456-2_avatar.png"
30
+ }
31
+ }
32
+ },
33
+ "updated_on": "2014-12-03T11:49:47.313956+00:00",
34
+ "id": 4135018
35
+ }
36
+ }
@@ -96,4 +96,18 @@ describe Vx::ServiceConnector::Bitbucket::Payload do
96
96
  its(:ignore?) { should be_true }
97
97
  end
98
98
 
99
+ context 'push with PR approve' do
100
+
101
+ let(:content) { read_json_fixture 'bitbucket/payload/bug_3_pr_approve' }
102
+
103
+ its(:ignore?) { should be_true }
104
+ end
105
+
106
+ context 'push with PR approve' do
107
+
108
+ let(:content) { read_json_fixture 'bitbucket/payload/bug_4_pr_comment_created' }
109
+
110
+ its(:ignore?) { should be_true }
111
+ end
112
+
99
113
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vx-service_connector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-26 00:00:00.000000000 Z
11
+ date: 2014-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
@@ -177,6 +177,8 @@ files:
177
177
  - spec/fixtures/bitbucket/hooks.json
178
178
  - spec/fixtures/bitbucket/payload/bug_1_empty_commits.json
179
179
  - spec/fixtures/bitbucket/payload/bug_2_empty_commits.json
180
+ - spec/fixtures/bitbucket/payload/bug_3_pr_approve.json
181
+ - spec/fixtures/bitbucket/payload/bug_4_pr_comment_created.json
180
182
  - spec/fixtures/bitbucket/payload/created_pull_request.json
181
183
  - spec/fixtures/bitbucket/payload/declined_pull_request.json
182
184
  - spec/fixtures/bitbucket/payload/foreign_pull_request.json
@@ -269,6 +271,8 @@ test_files:
269
271
  - spec/fixtures/bitbucket/hooks.json
270
272
  - spec/fixtures/bitbucket/payload/bug_1_empty_commits.json
271
273
  - spec/fixtures/bitbucket/payload/bug_2_empty_commits.json
274
+ - spec/fixtures/bitbucket/payload/bug_3_pr_approve.json
275
+ - spec/fixtures/bitbucket/payload/bug_4_pr_comment_created.json
272
276
  - spec/fixtures/bitbucket/payload/created_pull_request.json
273
277
  - spec/fixtures/bitbucket/payload/declined_pull_request.json
274
278
  - spec/fixtures/bitbucket/payload/foreign_pull_request.json