lita-github 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -3
- data/lib/lita-github/config.rb +5 -0
- data/lib/lita-github/filters.rb +7 -0
- data/lib/lita-github/octo.rb +17 -3
- data/lib/lita-github/r.rb +2 -0
- data/lib/lita-github/repo.rb +24 -0
- data/lib/lita-github/version.rb +8 -1
- data/lib/lita/handlers/github.rb +1 -1
- data/spec/unit/lita/handlers/github_repo_spec.rb +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4bfd623a40a5a5b1c9fbc462dc72f0b286a43dfd
|
4
|
+
data.tar.gz: 84b1958cb141a7295fb744de2ee3d3e6dd2dc798
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a82a4d278f7c38781903bd5d9547ed5e784532e96d3243cbc0c066c48f71ed2360044f275b3dd3e4725ae3a68f651ffa1161a9658ba1bbe560fc05b8215fefb6
|
7
|
+
data.tar.gz: 1f454fe23289fa3c0763fa4e889bb09767c80ee6b9203bbdad83810de3fd5fe279b7ce8885df1e3548bfe4a1861606bf1edd9f62a58f0162ee88e4ce2fbec11e
|
data/.gitignore
CHANGED
@@ -26,10 +26,9 @@ build/
|
|
26
26
|
|
27
27
|
# for a library or gem, you might want to ignore these files since the code is
|
28
28
|
# intended to run in multiple environments; otherwise, check them in:
|
29
|
-
# Gemfile.lock
|
30
|
-
# .ruby-version
|
31
|
-
# .ruby-gemset
|
32
29
|
Gemfile.lock
|
30
|
+
.ruby-version
|
31
|
+
.ruby-gemset
|
33
32
|
|
34
33
|
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
35
34
|
.rvmrc
|
data/lib/lita-github/config.rb
CHANGED
@@ -16,7 +16,12 @@
|
|
16
16
|
|
17
17
|
module LitaGithub
|
18
18
|
# Github handler Lita configuration methods
|
19
|
+
#
|
20
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
19
21
|
module Config
|
22
|
+
# Return the Lita::Config object for the Github handler
|
23
|
+
#
|
24
|
+
# @return [Lita::Config] the config object for Lita::Handlers::Github
|
20
25
|
def config
|
21
26
|
Lita.config.handlers.github
|
22
27
|
end
|
data/lib/lita-github/filters.rb
CHANGED
@@ -16,7 +16,14 @@
|
|
16
16
|
|
17
17
|
module LitaGithub
|
18
18
|
# Github handler common-use method filters
|
19
|
+
#
|
20
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
19
21
|
module Filters
|
22
|
+
# Returns whether or not the function has been disabled in the config
|
23
|
+
#
|
24
|
+
# @param method [String] the method name, usually just __method__
|
25
|
+
# @return [TrueClass] if function is disabled
|
26
|
+
# @return [FalseClass] if function is disabled
|
20
27
|
def func_disabled?(method)
|
21
28
|
config.send("#{method}_enabled".to_sym) ? false : true
|
22
29
|
end
|
data/lib/lita-github/octo.rb
CHANGED
@@ -18,19 +18,33 @@ require 'octokit'
|
|
18
18
|
|
19
19
|
module LitaGithub
|
20
20
|
# Github handler common-use Octokit methods
|
21
|
+
#
|
22
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
21
23
|
module Octo
|
22
|
-
#
|
24
|
+
# Accessor method for the Github access token in the config
|
25
|
+
#
|
26
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
27
|
+
# @return [String] the Github API access token
|
23
28
|
def access_token
|
24
29
|
config.access_token
|
25
30
|
end
|
26
31
|
|
27
|
-
# set up the
|
32
|
+
# To be used to set up Octokit::Client when loading the Handler class
|
33
|
+
#
|
34
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
35
|
+
# @return [NilClass]
|
28
36
|
def setup_octo(_)
|
29
37
|
@@octo ||= Octokit::Client.new(access_token: access_token)
|
30
38
|
@@octo.auto_paginate = true
|
39
|
+
nil
|
31
40
|
end
|
32
41
|
|
33
|
-
#
|
42
|
+
# Object access method for Octokit client
|
43
|
+
#
|
44
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
45
|
+
# @return [Octokit::Client]
|
46
|
+
# @example
|
47
|
+
# octo.create_team('PagerDuty', name: 'Example Group', perms:pull)
|
34
48
|
def octo
|
35
49
|
@@octo
|
36
50
|
end
|
data/lib/lita-github/r.rb
CHANGED
data/lib/lita-github/repo.rb
CHANGED
@@ -17,20 +17,44 @@
|
|
17
17
|
module LitaGithub
|
18
18
|
# Github handler common-use Repository methods
|
19
19
|
module Repo
|
20
|
+
# Maximum number of allowed PRs to be returned when listing
|
21
|
+
#
|
22
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
20
23
|
PR_LIST_MAX_COUNT = 20
|
21
24
|
|
25
|
+
# Combine org and repo to get the canonical name
|
26
|
+
#
|
27
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
28
|
+
# @param org [String] organization name
|
29
|
+
# @param repo [String] repository name without org prefixed
|
30
|
+
# @return [String] canonical name of repo: <Org>/<Repo>
|
22
31
|
def rpo(org, repo)
|
23
32
|
"#{org}/#{repo}"
|
24
33
|
end
|
25
34
|
|
35
|
+
# Determine if r is a Github repository
|
36
|
+
#
|
37
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
38
|
+
# @param r [String] canonical name of the repository
|
26
39
|
def repo?(r)
|
27
40
|
octo.repository?(r)
|
28
41
|
end
|
29
42
|
|
43
|
+
# Helper method for pulling widely used matches out of a MatchData object
|
44
|
+
#
|
45
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
46
|
+
# @param md [MatchData] the match data used to get the matches
|
47
|
+
# @return [Array] [0] is the org name, [1] is the repo name
|
30
48
|
def repo_match(md)
|
31
49
|
[organization(md['org']), md['repo']]
|
32
50
|
end
|
33
51
|
|
52
|
+
# Determine if the team is already on the repository
|
53
|
+
#
|
54
|
+
# @param full_name [String] the canonical name of the repository
|
55
|
+
# @param team_id [Integer] the id for the Github team
|
56
|
+
# @return [TrueClass] if the team is already on the repo
|
57
|
+
# @return [FalseClass] if the team is not on the repo
|
34
58
|
def repo_has_team?(full_name, team_id)
|
35
59
|
octo.repository_teams(full_name).each { |t| return true if t[:id] == team_id }
|
36
60
|
false
|
data/lib/lita-github/version.rb
CHANGED
@@ -15,7 +15,14 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
17
|
# Administer your Hub of Gits with Lita!
|
18
|
+
#
|
19
|
+
# The namespace for non-handler code of the lita-github plugin
|
20
|
+
#
|
21
|
+
# @author Tim Heckman <tim@pagerduty.com>
|
18
22
|
module LitaGithub
|
19
|
-
|
23
|
+
# lita-github version
|
24
|
+
VERSION = '0.0.12'
|
25
|
+
|
26
|
+
# lita-github version split amongst different revisions
|
20
27
|
MAJ, MIN, REV = VERSION.split('.').map(&:to_i)
|
21
28
|
end
|
data/lib/lita/handlers/github.rb
CHANGED
@@ -763,6 +763,15 @@ Name: Interns, Slug: interns, ID: 84, Perms: pull
|
|
763
763
|
end
|
764
764
|
end
|
765
765
|
|
766
|
+
context 'when it finds a repo with no teams but the owners' do
|
767
|
+
before { allow(@octo_obj).to receive(:repository_teams).and_return([]) }
|
768
|
+
|
769
|
+
it 'should return the fact there are no teams' do
|
770
|
+
send_command("gh repo teams #{github_org}/lita-test")
|
771
|
+
expect(replies.last).to eql "Beyond the 'GrapeDuty' org owners, GrapeDuty/lita-test has no teams"
|
772
|
+
end
|
773
|
+
end
|
774
|
+
|
766
775
|
context 'when the repo is not valid' do
|
767
776
|
before { allow(@octo_obj).to receive(:repository_teams).and_raise(Octokit::NotFound.new) }
|
768
777
|
|
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.12
|
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-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|