lita-github 0.0.13 → 0.0.14
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/lib/lita-github.rb +1 -0
- data/lib/lita-github/general.rb +23 -17
- data/lib/lita-github/r.rb +2 -6
- data/lib/lita-github/version.rb +2 -2
- data/lib/lita/handlers/github.rb +6 -3
- data/lib/lita/handlers/github_issues.rb +110 -0
- data/lib/lita/handlers/github_org.rb +132 -1
- data/lib/lita/handlers/github_pr.rb +1 -1
- data/locales/en.yml +26 -2
- data/spec/unit/lita-github/general_spec.rb +27 -12
- data/spec/unit/lita-github/r_spec.rb +0 -44
- data/spec/unit/lita-github/version_spec.rb +7 -7
- data/spec/unit/lita/handlers/github_issues_spec.rb +162 -0
- data/spec/unit/lita/handlers/github_org_spec.rb +259 -2
- data/spec/unit/lita/handlers/github_pr_spec.rb +63 -49
- data/spec/unit/lita/handlers/github_repo_spec.rb +1 -1
- data/spec/unit/lita/handlers/github_spec.rb +20 -8
- metadata +5 -2
@@ -1,4 +1,18 @@
|
|
1
1
|
# -*- coding: UTF-8 -*-
|
2
|
+
#
|
3
|
+
# Copyright 2014 PagerDuty, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
2
16
|
|
3
17
|
require 'spec_helper'
|
4
18
|
|
@@ -378,12 +392,12 @@ describe Lita::Handlers::GithubPR, lita_handler: true do
|
|
378
392
|
end
|
379
393
|
|
380
394
|
describe '.list_line' do
|
381
|
-
let(:pr) { { title: 'Test', number: 42, html_url: 'nothtml' } }
|
395
|
+
let(:pr) { { title: 'Test', number: 42, html_url: 'nothtml', user: { login: 'theckman' } } }
|
382
396
|
let(:full_name) { 'GrapeDuty/lita-test' }
|
383
397
|
|
384
398
|
it 'should return a PR header' do
|
385
399
|
l = github_pr.send(:list_line, pr, full_name)
|
386
|
-
expect(l).to eql "GrapeDuty/lita-test #42: Test :: nothtml\n"
|
400
|
+
expect(l).to eql "GrapeDuty/lita-test #42: 'Test' opened by theckman :: nothtml\n"
|
387
401
|
end
|
388
402
|
end
|
389
403
|
|
@@ -436,7 +450,7 @@ describe Lita::Handlers::GithubPR, lita_handler: true do
|
|
436
450
|
end
|
437
451
|
|
438
452
|
it 'should reply with the expeced output' do
|
439
|
-
r =
|
453
|
+
r = "GrapeDuty/lita-test #42: 'Test Pull Request (Not Real)' :: " \
|
440
454
|
"https://github.com/GrapeDuty/lita-test/pulls/42\n" \
|
441
455
|
"Opened By: theckman (Tim Heckman) | State: Open | Build: success | Mergeable: true\n" \
|
442
456
|
'Head: 1234567 | Commits: 1 (+42/-0) :: ' \
|
@@ -463,7 +477,7 @@ describe Lita::Handlers::GithubPR, lita_handler: true do
|
|
463
477
|
end
|
464
478
|
|
465
479
|
it 'should reply with the expeced output' do
|
466
|
-
r =
|
480
|
+
r = "GrapeDuty/lita-test #42: 'Test Pull Request (Not Real)' :: " \
|
467
481
|
"https://github.com/GrapeDuty/lita-test/pulls/42\n" \
|
468
482
|
'Opened By: theckman (Tim Heckman) | State: Merged | Build: success | ' \
|
469
483
|
"Merged By: theckman (Tim Heckman)\n" \
|
@@ -589,8 +603,8 @@ describe Lita::Handlers::GithubPR, lita_handler: true do
|
|
589
603
|
context 'when there are less than 20 prs' do
|
590
604
|
before do
|
591
605
|
pr = [
|
592
|
-
{ title: 'Test2', number: 84, html_url: 'nohtmlurl' },
|
593
|
-
{ title: 'Test1', number: 42, html_url: 'htmlurl' }
|
606
|
+
{ title: 'Test2', number: 84, html_url: 'nohtmlurl', user: { login: 'theckman' } },
|
607
|
+
{ title: 'Test1', number: 42, html_url: 'htmlurl', user: { login: 'theckman' } }
|
594
608
|
]
|
595
609
|
octo_obj = double('Octokit::Client', pull_requests: pr)
|
596
610
|
allow(github_pr).to receive(:octo).and_return(octo_obj)
|
@@ -598,35 +612,35 @@ describe Lita::Handlers::GithubPR, lita_handler: true do
|
|
598
612
|
|
599
613
|
it 'should reply with the PRs' do
|
600
614
|
send_command("gh pr list #{github_org}/#{github_repo}")
|
601
|
-
expect(replies.last).to eql "GrapeDuty/lita-test #84: Test2 :: nohtmlurl\n" \
|
602
|
-
"GrapeDuty/lita-test #42: Test1 :: htmlurl\n"
|
615
|
+
expect(replies.last).to eql "GrapeDuty/lita-test #84: 'Test2' opened by theckman :: nohtmlurl\n" \
|
616
|
+
"GrapeDuty/lita-test #42: 'Test1' opened by theckman :: htmlurl\n"
|
603
617
|
end
|
604
618
|
end
|
605
619
|
|
606
620
|
context 'when there are more than 20 prs' do
|
607
621
|
before do
|
608
622
|
pr = [
|
609
|
-
{ title: 'Test21', number: 84, html_url: 'xxx' },
|
610
|
-
{ title: 'Test20', number: 83, html_url: 'xxx' },
|
611
|
-
{ title: 'Test19', number: 82, html_url: 'xxx' },
|
612
|
-
{ title: 'Test18', number: 80, html_url: 'xxx' },
|
613
|
-
{ title: 'Test17', number: 78, html_url: 'xxx' },
|
614
|
-
{ title: 'Test16', number: 74, html_url: 'xxx' },
|
615
|
-
{ title: 'Test15', number: 68, html_url: 'xxx' },
|
616
|
-
{ title: 'Test14', number: 66, html_url: 'xxx' },
|
617
|
-
{ title: 'Test13', number: 64, html_url: 'xxx' },
|
618
|
-
{ title: 'Test12', number: 55, html_url: 'xxx' },
|
619
|
-
{ title: 'Test11', number: 52, html_url: 'xxx' },
|
620
|
-
{ title: 'Test10', number: 51, html_url: 'xxx' },
|
621
|
-
{ title: 'Test9', number: 50, html_url: 'xxx' },
|
622
|
-
{ title: 'Test8', number: 49, html_url: 'xxx' },
|
623
|
-
{ title: 'Test7', number: 48, html_url: 'xxx' },
|
624
|
-
{ title: 'Test6', number: 47, html_url: 'xxx' },
|
625
|
-
{ title: 'Test5', number: 46, html_url: 'xxx' },
|
626
|
-
{ title: 'Test4', number: 45, html_url: 'xxx' },
|
627
|
-
{ title: 'Test3', number: 44, html_url: 'xxx' },
|
628
|
-
{ title: 'Test2', number: 43, html_url: 'xxx' },
|
629
|
-
{ title: 'Test1', number: 42, html_url: 'xxx' }
|
623
|
+
{ title: 'Test21', number: 84, html_url: 'xxx', user: { login: 'theckman' } },
|
624
|
+
{ title: 'Test20', number: 83, html_url: 'xxx', user: { login: 'theckman' } },
|
625
|
+
{ title: 'Test19', number: 82, html_url: 'xxx', user: { login: 'theckman' } },
|
626
|
+
{ title: 'Test18', number: 80, html_url: 'xxx', user: { login: 'theckman' } },
|
627
|
+
{ title: 'Test17', number: 78, html_url: 'xxx', user: { login: 'theckman' } },
|
628
|
+
{ title: 'Test16', number: 74, html_url: 'xxx', user: { login: 'theckman' } },
|
629
|
+
{ title: 'Test15', number: 68, html_url: 'xxx', user: { login: 'theckman' } },
|
630
|
+
{ title: 'Test14', number: 66, html_url: 'xxx', user: { login: 'theckman' } },
|
631
|
+
{ title: 'Test13', number: 64, html_url: 'xxx', user: { login: 'theckman' } },
|
632
|
+
{ title: 'Test12', number: 55, html_url: 'xxx', user: { login: 'theckman' } },
|
633
|
+
{ title: 'Test11', number: 52, html_url: 'xxx', user: { login: 'theckman' } },
|
634
|
+
{ title: 'Test10', number: 51, html_url: 'xxx', user: { login: 'theckman' } },
|
635
|
+
{ title: 'Test9', number: 50, html_url: 'xxx', user: { login: 'theckman' } },
|
636
|
+
{ title: 'Test8', number: 49, html_url: 'xxx', user: { login: 'theckman' } },
|
637
|
+
{ title: 'Test7', number: 48, html_url: 'xxx', user: { login: 'theckman' } },
|
638
|
+
{ title: 'Test6', number: 47, html_url: 'xxx', user: { login: 'theckman' } },
|
639
|
+
{ title: 'Test5', number: 46, html_url: 'xxx', user: { login: 'theckman' } },
|
640
|
+
{ title: 'Test4', number: 45, html_url: 'xxx', user: { login: 'theckman' } },
|
641
|
+
{ title: 'Test3', number: 44, html_url: 'xxx', user: { login: 'theckman' } },
|
642
|
+
{ title: 'Test2', number: 43, html_url: 'xxx', user: { login: 'theckman' } },
|
643
|
+
{ title: 'Test1', number: 42, html_url: 'xxx', user: { login: 'theckman' } }
|
630
644
|
]
|
631
645
|
octo_obj = double('Octokit::Client', pull_requests: pr)
|
632
646
|
allow(github_pr).to receive(:octo).and_return(octo_obj)
|
@@ -636,27 +650,27 @@ describe Lita::Handlers::GithubPR, lita_handler: true do
|
|
636
650
|
send_command("gh pr list #{github_org}/#{github_repo}")
|
637
651
|
expect(replies.last)
|
638
652
|
.to eql "You have more than 20 open pull requests :(! Here are the ten newest oldest:
|
639
|
-
GrapeDuty/lita-test #84: Test21 :: xxx
|
640
|
-
GrapeDuty/lita-test #83: Test20 :: xxx
|
641
|
-
GrapeDuty/lita-test #82: Test19 :: xxx
|
642
|
-
GrapeDuty/lita-test #80: Test18 :: xxx
|
643
|
-
GrapeDuty/lita-test #78: Test17 :: xxx
|
644
|
-
GrapeDuty/lita-test #74: Test16 :: xxx
|
645
|
-
GrapeDuty/lita-test #68: Test15 :: xxx
|
646
|
-
GrapeDuty/lita-test #66: Test14 :: xxx
|
647
|
-
GrapeDuty/lita-test #64: Test13 :: xxx
|
648
|
-
GrapeDuty/lita-test #55: Test12 :: xxx
|
653
|
+
GrapeDuty/lita-test #84: 'Test21' opened by theckman :: xxx
|
654
|
+
GrapeDuty/lita-test #83: 'Test20' opened by theckman :: xxx
|
655
|
+
GrapeDuty/lita-test #82: 'Test19' opened by theckman :: xxx
|
656
|
+
GrapeDuty/lita-test #80: 'Test18' opened by theckman :: xxx
|
657
|
+
GrapeDuty/lita-test #78: 'Test17' opened by theckman :: xxx
|
658
|
+
GrapeDuty/lita-test #74: 'Test16' opened by theckman :: xxx
|
659
|
+
GrapeDuty/lita-test #68: 'Test15' opened by theckman :: xxx
|
660
|
+
GrapeDuty/lita-test #66: 'Test14' opened by theckman :: xxx
|
661
|
+
GrapeDuty/lita-test #64: 'Test13' opened by theckman :: xxx
|
662
|
+
GrapeDuty/lita-test #55: 'Test12' opened by theckman :: xxx
|
649
663
|
----
|
650
|
-
GrapeDuty/lita-test #51: Test10 :: xxx
|
651
|
-
GrapeDuty/lita-test #50: Test9 :: xxx
|
652
|
-
GrapeDuty/lita-test #49: Test8 :: xxx
|
653
|
-
GrapeDuty/lita-test #48: Test7 :: xxx
|
654
|
-
GrapeDuty/lita-test #47: Test6 :: xxx
|
655
|
-
GrapeDuty/lita-test #46: Test5 :: xxx
|
656
|
-
GrapeDuty/lita-test #45: Test4 :: xxx
|
657
|
-
GrapeDuty/lita-test #44: Test3 :: xxx
|
658
|
-
GrapeDuty/lita-test #43: Test2 :: xxx
|
659
|
-
GrapeDuty/lita-test #42: Test1 :: xxx
|
664
|
+
GrapeDuty/lita-test #51: 'Test10' opened by theckman :: xxx
|
665
|
+
GrapeDuty/lita-test #50: 'Test9' opened by theckman :: xxx
|
666
|
+
GrapeDuty/lita-test #49: 'Test8' opened by theckman :: xxx
|
667
|
+
GrapeDuty/lita-test #48: 'Test7' opened by theckman :: xxx
|
668
|
+
GrapeDuty/lita-test #47: 'Test6' opened by theckman :: xxx
|
669
|
+
GrapeDuty/lita-test #46: 'Test5' opened by theckman :: xxx
|
670
|
+
GrapeDuty/lita-test #45: 'Test4' opened by theckman :: xxx
|
671
|
+
GrapeDuty/lita-test #44: 'Test3' opened by theckman :: xxx
|
672
|
+
GrapeDuty/lita-test #43: 'Test2' opened by theckman :: xxx
|
673
|
+
GrapeDuty/lita-test #42: 'Test1' opened by theckman :: xxx
|
660
674
|
"
|
661
675
|
end
|
662
676
|
end
|
@@ -42,6 +42,10 @@ describe Lita::Handlers::Github, lita_handler: true do
|
|
42
42
|
expect(Lita.config.handlers.github.repo_private_default).to be_truthy
|
43
43
|
end
|
44
44
|
|
45
|
+
it 'should allow only teams with "pull" permissions to be created by default' do
|
46
|
+
expect(Lita.config.handlers.github.org_team_add_allowed_perms).to eql %w(pull)
|
47
|
+
end
|
48
|
+
|
45
49
|
it 'should enable Lita::Handlers::GithubRepo.repo_create by default' do
|
46
50
|
expect(Lita.config.handlers.github.repo_create_enabled).to be_truthy
|
47
51
|
end
|
@@ -78,8 +82,16 @@ describe Lita::Handlers::Github, lita_handler: true do
|
|
78
82
|
expect(Lita.config.handlers.github.org_team_rm_enabled).to be_falsey
|
79
83
|
end
|
80
84
|
|
81
|
-
it 'should
|
82
|
-
expect(Lita.config.handlers.github.
|
85
|
+
it 'should disable Lita::Handlers::GithubOrg.org_user_add by default' do
|
86
|
+
expect(Lita.config.handlers.github.org_user_add_enabled).to be_falsey
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should disable Lita::Handlers::GithubOrg.org_user_rm by default' do
|
90
|
+
expect(Lita.config.handlers.github.org_user_rm_enabled).to be_falsey
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should disable Lita::Handlers::GithubOrg.org_eject_user by default' do
|
94
|
+
expect(Lita.config.handlers.github.org_eject_user_enabled).to be_falsey
|
83
95
|
end
|
84
96
|
end
|
85
97
|
|
@@ -135,7 +147,7 @@ Company: PagerDuty, Inc.
|
|
135
147
|
Orgs: PagerDuty, GrapeDuty
|
136
148
|
ID: 787332, Email: tim@pagerduty.com
|
137
149
|
GitHub Admin: false, Repos: 42, Gists: 1
|
138
|
-
Following: 20, Followers: 10,
|
150
|
+
Following: 20, Followers: 10, Joined: 2011-05-14 04:16:33 UTC'
|
139
151
|
end
|
140
152
|
end
|
141
153
|
|
@@ -150,7 +162,7 @@ Company: PagerDuty, Inc.
|
|
150
162
|
Orgs: PagerDuty, GrapeDuty
|
151
163
|
ID: 787332, Email: tim@pagerduty.com
|
152
164
|
GitHub Admin: false, Repos: 42, Gists: 1
|
153
|
-
Following: 20, Followers: 10,
|
165
|
+
Following: 20, Followers: 10, Joined: 2011-05-14 04:16:33 UTC'
|
154
166
|
end
|
155
167
|
end
|
156
168
|
|
@@ -164,7 +176,7 @@ Company: PagerDuty, Inc.
|
|
164
176
|
Orgs: PagerDuty, GrapeDuty
|
165
177
|
ID: 787332, Email: tim@pagerduty.com
|
166
178
|
GitHub Admin: false, Repos: 42, Gists: 1
|
167
|
-
Following: 20, Followers: 10,
|
179
|
+
Following: 20, Followers: 10, Joined: 2011-05-14 04:16:33 UTC'
|
168
180
|
end
|
169
181
|
end
|
170
182
|
|
@@ -178,7 +190,7 @@ Located: San Francisco, CA
|
|
178
190
|
Orgs: PagerDuty, GrapeDuty
|
179
191
|
ID: 787332, Email: tim@pagerduty.com
|
180
192
|
GitHub Admin: false, Repos: 42, Gists: 1
|
181
|
-
Following: 20, Followers: 10,
|
193
|
+
Following: 20, Followers: 10, Joined: 2011-05-14 04:16:33 UTC'
|
182
194
|
end
|
183
195
|
end
|
184
196
|
|
@@ -192,7 +204,7 @@ Located: San Francisco, CA
|
|
192
204
|
Company: PagerDuty, Inc.
|
193
205
|
ID: 787332, Email: tim@pagerduty.com
|
194
206
|
GitHub Admin: false, Repos: 42, Gists: 1
|
195
|
-
Following: 20, Followers: 10,
|
207
|
+
Following: 20, Followers: 10, Joined: 2011-05-14 04:16:33 UTC'
|
196
208
|
end
|
197
209
|
end
|
198
210
|
|
@@ -207,7 +219,7 @@ Company: PagerDuty, Inc.
|
|
207
219
|
Orgs: PagerDuty, GrapeDuty
|
208
220
|
ID: 787332
|
209
221
|
GitHub Admin: false, Repos: 42, Gists: 1
|
210
|
-
Following: 20, Followers: 10,
|
222
|
+
Following: 20, Followers: 10, Joined: 2011-05-14 04:16:33 UTC'
|
211
223
|
end
|
212
224
|
end
|
213
225
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-github
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Heckman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -215,6 +215,7 @@ files:
|
|
215
215
|
- lib/lita-github/repo.rb
|
216
216
|
- lib/lita-github/version.rb
|
217
217
|
- lib/lita/handlers/github.rb
|
218
|
+
- lib/lita/handlers/github_issues.rb
|
218
219
|
- lib/lita/handlers/github_org.rb
|
219
220
|
- lib/lita/handlers/github_pr.rb
|
220
221
|
- lib/lita/handlers/github_repo.rb
|
@@ -229,6 +230,7 @@ files:
|
|
229
230
|
- spec/unit/lita-github/r_spec.rb
|
230
231
|
- spec/unit/lita-github/repo_spec.rb
|
231
232
|
- spec/unit/lita-github/version_spec.rb
|
233
|
+
- spec/unit/lita/handlers/github_issues_spec.rb
|
232
234
|
- spec/unit/lita/handlers/github_org_spec.rb
|
233
235
|
- spec/unit/lita/handlers/github_pr_spec.rb
|
234
236
|
- spec/unit/lita/handlers/github_repo_spec.rb
|
@@ -269,6 +271,7 @@ test_files:
|
|
269
271
|
- spec/unit/lita-github/r_spec.rb
|
270
272
|
- spec/unit/lita-github/repo_spec.rb
|
271
273
|
- spec/unit/lita-github/version_spec.rb
|
274
|
+
- spec/unit/lita/handlers/github_issues_spec.rb
|
272
275
|
- spec/unit/lita/handlers/github_org_spec.rb
|
273
276
|
- spec/unit/lita/handlers/github_pr_spec.rb
|
274
277
|
- spec/unit/lita/handlers/github_repo_spec.rb
|