lita-reviewme 0.3.1 → 0.4.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/README.md +28 -0
- data/lib/lita/handlers/reviewme.rb +12 -3
- data/lita-reviewme.gemspec +1 -1
- data/spec/lita/handlers/reviewme_spec.rb +46 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 314ab18b6586a16c2e317fbfb50ca9e1f3b7c945
|
4
|
+
data.tar.gz: 7fbc8906b146f332eac6e2330999240dccb7948e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1f6090dd447abfbdd171e99e25b65cadadf33c277ecc3ff8f27da70fcf98effd75c2a5474b1de87ed1c6323641d0affdcaa69e4b7f2c43a7579cd532a943b3a
|
7
|
+
data.tar.gz: 74dc37d914c77454f1637dacf758aa3ccd8cd11ffe1235e4b795ff68ca305b4ff290d5e6a2710e8c01bb1de5ee03f0a475c36c05b260c2d1bb6fdbd5783ce829
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
5
5
|
## [Unreleased]
|
6
6
|
|
7
|
+
## [0.4.0] - 2017-02-10
|
8
|
+
|
9
|
+
### Added
|
10
|
+
- [#50] - Allow custom GitHub messages via plugin config
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
- [#51] - Avoid empty GitHub message when there are no reviewers
|
14
|
+
|
7
15
|
## [0.3.1] - 2016-02-10
|
8
16
|
|
9
17
|
### Changed
|
@@ -34,7 +42,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
34
42
|
### Added
|
35
43
|
- Start versioning gem.
|
36
44
|
|
37
|
-
[Unreleased]: https://github.com/iamvery/lita-reviewme/compare/v0.
|
45
|
+
[Unreleased]: https://github.com/iamvery/lita-reviewme/compare/v0.4.0...HEAD
|
46
|
+
[0.4.0]: https://github.com/iamvery/lita-reviewme/compare/v0.3.1...v0.4.0
|
38
47
|
[0.3.1]: https://github.com/iamvery/lita-reviewme/compare/v0.3.0...v0.3.1
|
39
48
|
[0.3.0]: https://github.com/iamvery/lita-reviewme/compare/v0.2.0...v0.3.0
|
40
49
|
[0.2.0]: https://github.com/iamvery/lita-reviewme/compare/v0.1.0...v0.2.0
|
data/README.md
CHANGED
@@ -26,6 +26,32 @@ Regardless the user must have access to the repo being reviewed, and the token m
|
|
26
26
|
config.handlers.reviewme.github_access_token = ENV["GITHUB_ACCESS_TOKEN"]
|
27
27
|
```
|
28
28
|
|
29
|
+
The default message that is posted on GitHub pull request is `:eyes: @<reviewer>`.
|
30
|
+
The message can be customized via `config.handlers.reviewme.github_comment_template`.
|
31
|
+
If you would like the reviewer to be notified, be sure add `%{reviewer}` to your string.
|
32
|
+
|
33
|
+
```
|
34
|
+
# your bot's lita_config.rb
|
35
|
+
# Add %{reviewer} for the user to be tagged and notified on GitHub
|
36
|
+
config.handlers.reviewme.github_comment_template = "Hey %{reviewer}, check it out! :tada:"
|
37
|
+
```
|
38
|
+
|
39
|
+
Additionally, you can assign a lambda if you would like more finite control of what GitHub comments are sent.
|
40
|
+
Note that `reviewer` and `pull_request` are required arguments.
|
41
|
+
|
42
|
+
```
|
43
|
+
# your bot's lita_config.rb
|
44
|
+
#
|
45
|
+
# Note:
|
46
|
+
# `reviewer` is a username string without the '@'
|
47
|
+
# `pull_request` is a hash object from GitHub API.
|
48
|
+
|
49
|
+
config.handlers.reviewme.github_comment_template = lamda do |reviewer, pull_request|
|
50
|
+
title = pull_request[:title]
|
51
|
+
"Hey #{reviewer}, check out my new PR called #{title} :tada:"
|
52
|
+
end
|
53
|
+
```
|
54
|
+
|
29
55
|
## Usage
|
30
56
|
|
31
57
|
### See who is in the review rotation.
|
@@ -63,6 +89,8 @@ to the repository.
|
|
63
89
|
>
|
64
90
|
> **Nerdbot** iamvery should be on it...
|
65
91
|
|
92
|
+
If your Github user is different from your chat user, you might tweak your notification settings to include your Github username.
|
93
|
+
|
66
94
|
## License
|
67
95
|
|
68
96
|
[MIT](http://opensource.org/licenses/MIT)
|
@@ -4,8 +4,10 @@ module Lita
|
|
4
4
|
module Handlers
|
5
5
|
class Reviewme < Handler
|
6
6
|
REDIS_LIST = "reviewers"
|
7
|
+
DEFAULT_GITHUB_MSG = ":eyes: %{reviewer}"
|
7
8
|
|
8
9
|
config :github_access_token
|
10
|
+
config :github_comment_template
|
9
11
|
|
10
12
|
route(
|
11
13
|
/add (.+) to reviews/i,
|
@@ -96,7 +98,8 @@ module Lita
|
|
96
98
|
rescue Octokit::Error
|
97
99
|
response.reply("Unable to check who issued the pull request. Sorry if you end up being assigned your own PR!")
|
98
100
|
end
|
99
|
-
|
101
|
+
return response.reply('Sorry, no reviewers found') unless reviewer
|
102
|
+
comment = github_comment(reviewer, pull_request)
|
100
103
|
|
101
104
|
begin
|
102
105
|
github_client.add_comment(repo, id, comment)
|
@@ -119,8 +122,14 @@ module Lita
|
|
119
122
|
ns_redis(room.id).rpoplpush(REDIS_LIST, REDIS_LIST)
|
120
123
|
end
|
121
124
|
|
122
|
-
def github_comment(reviewer)
|
123
|
-
|
125
|
+
def github_comment(reviewer, pull_request)
|
126
|
+
msg = config.github_comment_template || DEFAULT_GITHUB_MSG
|
127
|
+
|
128
|
+
if msg.respond_to?(:call) # its a proc
|
129
|
+
msg.call(reviewer, pull_request)
|
130
|
+
else
|
131
|
+
msg % { reviewer: "@#{reviewer}" }
|
132
|
+
end
|
124
133
|
end
|
125
134
|
|
126
135
|
def github_client
|
data/lita-reviewme.gemspec
CHANGED
@@ -56,7 +56,7 @@ describe Lita::Handlers::Reviewme, lita_handler: true do
|
|
56
56
|
let(:repo) { "gh_user/repo" }
|
57
57
|
let(:id) { "123" }
|
58
58
|
let(:pr) do
|
59
|
-
OpenStruct.new(
|
59
|
+
OpenStruct.new(user: OpenStruct.new(login: "pr-owner"), title: "PR title")
|
60
60
|
end
|
61
61
|
|
62
62
|
before do
|
@@ -65,6 +65,10 @@ describe Lita::Handlers::Reviewme, lita_handler: true do
|
|
65
65
|
.and_return(pr)
|
66
66
|
end
|
67
67
|
|
68
|
+
after do
|
69
|
+
subject.config.github_comment_template = nil
|
70
|
+
end
|
71
|
+
|
68
72
|
it "posts comment on github" do
|
69
73
|
expect_any_instance_of(Octokit::Client).to receive(:add_comment)
|
70
74
|
.with(repo, id, ":eyes: @iamvery")
|
@@ -75,6 +79,47 @@ describe Lita::Handlers::Reviewme, lita_handler: true do
|
|
75
79
|
expect(reply).to eq("iamvery should be on it...")
|
76
80
|
end
|
77
81
|
|
82
|
+
it "does NOT post comment on github when there are no reviewers" do
|
83
|
+
expect_any_instance_of(Octokit::Client).to_not receive(:add_comment)
|
84
|
+
|
85
|
+
send_command("review https://github.com/#{repo}/pull/#{id}")
|
86
|
+
|
87
|
+
expect(reply).to eq("Sorry, no reviewers found")
|
88
|
+
end
|
89
|
+
|
90
|
+
it "posts custom comments on github if specified" do
|
91
|
+
custom_msg = ":tada: %{reviewer} this is awesome"
|
92
|
+
expected_msg = ":tada: @iamvery this is awesome"
|
93
|
+
subject.config.github_comment_template = custom_msg
|
94
|
+
|
95
|
+
expect_any_instance_of(Octokit::Client).to receive(:add_comment)
|
96
|
+
.with(repo, id, expected_msg)
|
97
|
+
|
98
|
+
send_command("add iamvery to reviews")
|
99
|
+
send_command("review https://github.com/#{repo}/pull/#{id}")
|
100
|
+
|
101
|
+
expect(reply).to eq("iamvery should be on it...")
|
102
|
+
end
|
103
|
+
|
104
|
+
it "executes a proc if specified in `config.github_comment_template`" do
|
105
|
+
my_lambda = lambda do |reviewer, pull_request|
|
106
|
+
title = pull_request[:title]
|
107
|
+
"hey @#{reviewer}, this is from a lambda! :tada: #{title}"
|
108
|
+
end
|
109
|
+
|
110
|
+
expected_msg = "hey @iamvery, this is from a lambda! :tada: #{pr.title}"
|
111
|
+
|
112
|
+
subject.config.github_comment_template = my_lambda
|
113
|
+
|
114
|
+
expect_any_instance_of(Octokit::Client).to receive(:add_comment)
|
115
|
+
.with(repo, id, expected_msg)
|
116
|
+
|
117
|
+
send_command("add iamvery to reviews")
|
118
|
+
send_command("review https://github.com/#{repo}/pull/#{id}")
|
119
|
+
|
120
|
+
expect(reply).to eq("iamvery should be on it...")
|
121
|
+
end
|
122
|
+
|
78
123
|
it "skips assigning to the GitHub PR owner" do
|
79
124
|
expect_any_instance_of(Octokit::Client).to receive(:pull_request)
|
80
125
|
.with(repo, id).and_return(pr)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-reviewme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jay Hayes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
141
|
version: '0'
|
142
142
|
requirements: []
|
143
143
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.
|
144
|
+
rubygems_version: 2.5.2
|
145
145
|
signing_key:
|
146
146
|
specification_version: 4
|
147
147
|
summary: A lita handler that helps with code review
|