octospy 0.0.5 → 0.0.6
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/Gemfile +13 -0
- data/README.md +8 -2
- data/lib/cinch/plugins/octospy/job.rb +3 -3
- data/lib/octospy/configurable.rb +17 -14
- data/lib/octospy/parser.rb +2 -3
- data/lib/octospy/parser/gist.rb +1 -1
- data/lib/octospy/parser/repository.rb +10 -6
- data/lib/octospy/parser/user.rb +11 -4
- data/lib/octospy/version.rb +1 -1
- data/lib/octospy/worker.rb +1 -0
- data/octospy.gemspec +14 -22
- metadata +26 -138
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f92c47f612fc8f9e58b5a761d293a824df3c203
|
4
|
+
data.tar.gz: 1772944a5564aa76cf4af0171076f61065007a22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff507ac30bb08f0fdc1b2f63e612340743f86f36e87ef823971118df6ec58ab5e2cb15aeafcc0dedbb108ec1748ad236d4c47f4550750a9f09d58724065d8e00
|
7
|
+
data.tar.gz: 1d4e774052361c800b3aa9e0034f2bf391e82f7e75f6579be50445d93aea7d0959d87799c0267a4771c755a9c5137b3703c5009c3c85b179fe3c9fa0b655e5ef
|
data/Gemfile
CHANGED
@@ -2,3 +2,16 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in octospy.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
group :development do
|
7
|
+
gem 'pry'
|
8
|
+
gem 'awesome_print', require: 'ap'
|
9
|
+
end
|
10
|
+
|
11
|
+
group :test do
|
12
|
+
gem 'coveralls', require: false
|
13
|
+
gem 'simplecov', require: false
|
14
|
+
gem 'rspec', '~> 3.0.0.beta2'
|
15
|
+
gem 'vcr', '~> 2.8'
|
16
|
+
gem 'webmock', '~> 1.17'
|
17
|
+
end
|
data/README.md
CHANGED
@@ -71,6 +71,12 @@ GITHUB_API_ENDPOINT=http://your.enterprise.domain/api/v3
|
|
71
71
|
GITHUB_WEB_ENDPOINT=http://your.enterprise.domain
|
72
72
|
```
|
73
73
|
|
74
|
+
### Specify the dotenv filename
|
75
|
+
|
76
|
+
```sh
|
77
|
+
env DOTENV=".env.myserver" octospy
|
78
|
+
```
|
79
|
+
|
74
80
|
Commands
|
75
81
|
--------
|
76
82
|
|
@@ -82,8 +88,8 @@ Command | Description
|
|
82
88
|
`unwatch <repository>` | remove repository to watch list
|
83
89
|
`watch <user or organization>` | add user's repositories to watch list (ex: watch dotcloud)
|
84
90
|
`unwatch <user or organization>` | remove user's repositories to watch list
|
85
|
-
`
|
86
|
-
`
|
91
|
+
`start` | start the repository event monitoring
|
92
|
+
`stop` | stop the repository event monitoring
|
87
93
|
`join <channel>` | invite octospy to another channel
|
88
94
|
`show watched` | display the watch list
|
89
95
|
`show status` | display the joined channels
|
@@ -6,9 +6,9 @@ module Cinch
|
|
6
6
|
module Job
|
7
7
|
def self.included(base)
|
8
8
|
base.class_eval do
|
9
|
-
match('
|
10
|
-
match('
|
11
|
-
match('
|
9
|
+
match('start', method: :start_with_message)
|
10
|
+
match('stop', method: :stop_with_message)
|
11
|
+
match('restart', method: :restart_with_message)
|
12
12
|
end
|
13
13
|
|
14
14
|
Channel.class_eval do
|
data/lib/octospy/configurable.rb
CHANGED
@@ -8,6 +8,7 @@ module Octospy
|
|
8
8
|
password
|
9
9
|
nick
|
10
10
|
worker_interval
|
11
|
+
api_request_interval
|
11
12
|
cinch_config_block
|
12
13
|
github_api_endpoint
|
13
14
|
github_web_endpoint
|
@@ -38,20 +39,22 @@ module Octospy
|
|
38
39
|
end
|
39
40
|
|
40
41
|
def setup
|
41
|
-
@github_api_endpoint
|
42
|
-
@github_web_endpoint
|
43
|
-
@nick
|
44
|
-
@server
|
45
|
-
@port
|
46
|
-
@ssl
|
47
|
-
@password
|
48
|
-
@worker_interval
|
49
|
-
|
50
|
-
|
51
|
-
@
|
52
|
-
@
|
53
|
-
|
54
|
-
@
|
42
|
+
@github_api_endpoint = ENV['GITHUB_API_ENDPOINT']
|
43
|
+
@github_web_endpoint = ENV['GITHUB_WEB_ENDPOINT']
|
44
|
+
@nick = ENV['NICK'] || 'octospy'
|
45
|
+
@server = ENV['SERVER']
|
46
|
+
@port = ENV['PORT']
|
47
|
+
@ssl = !!ENV['SSL']
|
48
|
+
@password = ENV['PASSWORD']
|
49
|
+
@worker_interval = ENV['WORKER_INTERVAL'] ? ENV['WORKER_INTERVAL'].to_i : 30 #sec
|
50
|
+
# you can make up to 20 requests per minute.
|
51
|
+
# http://developer.github.com/v3/search/#rate-limit
|
52
|
+
@api_request_interval = ENV['API_REQUEST_INTERVAL'] ? ENV['API_REQUEST_INTERVAL'].to_i : 3 #sec
|
53
|
+
@github_login = ENV['GITHUB_LOGIN']
|
54
|
+
@github_token = ENV['GITHUB_TOKEN']
|
55
|
+
@channels = ENV['CHANNELS'] ? ENV['CHANNELS'].gsub(/\s|#/, '').split(',').
|
56
|
+
map { |ch| "##{ch}" } : nil
|
57
|
+
@cinch_config_block = nil
|
55
58
|
end
|
56
59
|
end
|
57
60
|
end
|
data/lib/octospy/parser.rb
CHANGED
@@ -28,7 +28,6 @@ module Octospy
|
|
28
28
|
def default_params
|
29
29
|
{
|
30
30
|
notice_body: false,
|
31
|
-
none_repository: false,
|
32
31
|
nick: '',
|
33
32
|
repository: '',
|
34
33
|
status: '',
|
@@ -95,12 +94,12 @@ module Octospy
|
|
95
94
|
created: :pink,
|
96
95
|
commented: :yellow,
|
97
96
|
pushed: :lime,
|
98
|
-
forked: :
|
97
|
+
forked: :seven_eleven,
|
99
98
|
closed: :brown,
|
100
99
|
deleted: :red,
|
101
100
|
edited: :green,
|
102
101
|
published: :blue,
|
103
|
-
|
102
|
+
starred: :rainbow,
|
104
103
|
followed: :seven_eleven,
|
105
104
|
saved: :cyan
|
106
105
|
}
|
data/lib/octospy/parser/gist.rb
CHANGED
@@ -2,16 +2,20 @@ module Octospy
|
|
2
2
|
class Parser
|
3
3
|
module Repository
|
4
4
|
def parse_commit_comment_event
|
5
|
+
commit_url = "#{Octokit.web_endpoint}#{@event.repo.name}/commit/#{@event.payload.comment.commit_id}"
|
6
|
+
|
5
7
|
{
|
6
8
|
status: "commented on commit",
|
7
9
|
title: "#{@event.payload.comment.path}",
|
8
10
|
body: "#{@event.payload.comment.body}".split_lfbl,
|
9
|
-
link: @event.payload.comment.
|
11
|
+
link: "#{commit_url}#commitcomment-#{@event.payload.comment.id}"
|
10
12
|
}
|
11
13
|
end
|
12
14
|
|
13
15
|
def parse_push_event
|
14
16
|
body = []
|
17
|
+
branch = @event.payload.ref.gsub('refs/heads/', '')
|
18
|
+
|
15
19
|
@event.payload.commits.each do |commit|
|
16
20
|
verbose_commit = Octokit.commit(@event.repo.name, commit.sha)
|
17
21
|
name = "#{verbose_commit.author ? verbose_commit.author.login : commit.author.name}"
|
@@ -22,9 +26,9 @@ module Octospy
|
|
22
26
|
end
|
23
27
|
|
24
28
|
{
|
25
|
-
status: "pushed to #{
|
29
|
+
status: "pushed to #{branch}",
|
26
30
|
body: body,
|
27
|
-
link: "#{Octokit.web_endpoint}#{@event.repo.name}",
|
31
|
+
link: "#{Octokit.web_endpoint}#{@event.repo.name}/tree/#{branch}",
|
28
32
|
notice_body: true
|
29
33
|
}
|
30
34
|
end
|
@@ -59,9 +63,9 @@ module Octospy
|
|
59
63
|
forkee_name = @event.payload.forkee.full_name
|
60
64
|
forkee_lang = @event.payload.forkee.language
|
61
65
|
{
|
62
|
-
status: "forked #{forkee_name}
|
63
|
-
title: @event.payload.forkee.description,
|
64
|
-
link: @event.payload.forkee.
|
66
|
+
status: "forked to #{forkee_name}",
|
67
|
+
title: "#{forkee_lang}: #{@event.payload.forkee.description}",
|
68
|
+
link: "#{Octokit.web_endpoint}#{@event.payload.forkee.full_name}"
|
65
69
|
}
|
66
70
|
end
|
67
71
|
|
data/lib/octospy/parser/user.rb
CHANGED
@@ -2,11 +2,18 @@ module Octospy
|
|
2
2
|
class Parser
|
3
3
|
module User
|
4
4
|
def parse_watch_event
|
5
|
+
# This is not watch event, this is star event
|
6
|
+
# {
|
7
|
+
# status: "#{@event.payload.action} to watch",
|
8
|
+
# title: nil,
|
9
|
+
# link: "#{Octokit.web_endpoint}#{@event.repo.name}/watchers",
|
10
|
+
# repository: @event.repo.name
|
11
|
+
# }
|
5
12
|
{
|
6
|
-
status:
|
7
|
-
title:
|
8
|
-
link: "#{Octokit.web_endpoint}#{@event.repo.name}",
|
9
|
-
repository:
|
13
|
+
status: 'starred',
|
14
|
+
title: nil,
|
15
|
+
link: "#{Octokit.web_endpoint}#{@event.repo.name}/stargazers",
|
16
|
+
repository: @event.repo.name
|
10
17
|
}
|
11
18
|
end
|
12
19
|
|
data/lib/octospy/version.rb
CHANGED
data/lib/octospy/worker.rb
CHANGED
data/octospy.gemspec
CHANGED
@@ -4,35 +4,27 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'octospy/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'octospy'
|
8
8
|
spec.version = Octospy::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['linyows']
|
10
|
+
spec.email = ['linyows@gmail.com']
|
11
11
|
spec.description = %q{This is IRC bot that notifies repository activity on github.}
|
12
12
|
spec.summary = %q{Octospy notifies the repository activity to an IRC channel.}
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = 'https://github.com/linyows/octospy'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency 'rspec'
|
24
|
-
spec.add_development_dependency 'webmock'
|
25
|
-
spec.add_development_dependency 'vcr'
|
26
|
-
spec.add_development_dependency 'simplecov'
|
27
|
-
spec.add_development_dependency 'coveralls'
|
28
|
-
spec.add_development_dependency "pry"
|
29
|
-
spec.add_development_dependency "awesome_print"
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
|
+
spec.add_development_dependency 'rake'
|
30
23
|
|
31
|
-
spec.add_dependency
|
32
|
-
spec.add_dependency
|
33
|
-
spec.add_dependency
|
34
|
-
spec.add_dependency
|
35
|
-
spec.add_dependency
|
36
|
-
spec.add_dependency
|
37
|
-
spec.add_dependency "hashie"
|
24
|
+
spec.add_dependency 'cinch', '~> 2.0'
|
25
|
+
spec.add_dependency 'octokit', '~> 2.7'
|
26
|
+
spec.add_dependency 'string-irc', '~> 0.3'
|
27
|
+
spec.add_dependency 'faraday', '~> 0.8.9'
|
28
|
+
spec.add_dependency 'faraday_middleware', '~> 0.9'
|
29
|
+
spec.add_dependency 'dotenv', '~> 0.10'
|
38
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octospy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- linyows
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,202 +38,90 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: webmock
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: vcr
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: simplecov
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: coveralls
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: pry
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: awesome_print
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
41
|
- !ruby/object:Gem::Dependency
|
140
42
|
name: cinch
|
141
43
|
requirement: !ruby/object:Gem::Requirement
|
142
44
|
requirements:
|
143
|
-
- - "
|
45
|
+
- - "~>"
|
144
46
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
47
|
+
version: '2.0'
|
146
48
|
type: :runtime
|
147
49
|
prerelease: false
|
148
50
|
version_requirements: !ruby/object:Gem::Requirement
|
149
51
|
requirements:
|
150
|
-
- - "
|
52
|
+
- - "~>"
|
151
53
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
54
|
+
version: '2.0'
|
153
55
|
- !ruby/object:Gem::Dependency
|
154
56
|
name: octokit
|
155
57
|
requirement: !ruby/object:Gem::Requirement
|
156
58
|
requirements:
|
157
|
-
- - "
|
59
|
+
- - "~>"
|
158
60
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
61
|
+
version: '2.7'
|
160
62
|
type: :runtime
|
161
63
|
prerelease: false
|
162
64
|
version_requirements: !ruby/object:Gem::Requirement
|
163
65
|
requirements:
|
164
|
-
- - "
|
66
|
+
- - "~>"
|
165
67
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
68
|
+
version: '2.7'
|
167
69
|
- !ruby/object:Gem::Dependency
|
168
70
|
name: string-irc
|
169
71
|
requirement: !ruby/object:Gem::Requirement
|
170
72
|
requirements:
|
171
|
-
- - "
|
73
|
+
- - "~>"
|
172
74
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
75
|
+
version: '0.3'
|
174
76
|
type: :runtime
|
175
77
|
prerelease: false
|
176
78
|
version_requirements: !ruby/object:Gem::Requirement
|
177
79
|
requirements:
|
178
|
-
- - "
|
80
|
+
- - "~>"
|
179
81
|
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
82
|
+
version: '0.3'
|
181
83
|
- !ruby/object:Gem::Dependency
|
182
84
|
name: faraday
|
183
85
|
requirement: !ruby/object:Gem::Requirement
|
184
86
|
requirements:
|
185
|
-
- - "
|
87
|
+
- - "~>"
|
186
88
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
89
|
+
version: 0.8.9
|
188
90
|
type: :runtime
|
189
91
|
prerelease: false
|
190
92
|
version_requirements: !ruby/object:Gem::Requirement
|
191
93
|
requirements:
|
192
|
-
- - "
|
94
|
+
- - "~>"
|
193
95
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
96
|
+
version: 0.8.9
|
195
97
|
- !ruby/object:Gem::Dependency
|
196
98
|
name: faraday_middleware
|
197
99
|
requirement: !ruby/object:Gem::Requirement
|
198
100
|
requirements:
|
199
|
-
- - "
|
101
|
+
- - "~>"
|
200
102
|
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
103
|
+
version: '0.9'
|
202
104
|
type: :runtime
|
203
105
|
prerelease: false
|
204
106
|
version_requirements: !ruby/object:Gem::Requirement
|
205
107
|
requirements:
|
206
|
-
- - "
|
108
|
+
- - "~>"
|
207
109
|
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
110
|
+
version: '0.9'
|
209
111
|
- !ruby/object:Gem::Dependency
|
210
112
|
name: dotenv
|
211
113
|
requirement: !ruby/object:Gem::Requirement
|
212
114
|
requirements:
|
213
|
-
- - "
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
216
|
-
type: :runtime
|
217
|
-
prerelease: false
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
requirements:
|
220
|
-
- - ">="
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
223
|
-
- !ruby/object:Gem::Dependency
|
224
|
-
name: hashie
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
- - ">="
|
115
|
+
- - "~>"
|
228
116
|
- !ruby/object:Gem::Version
|
229
|
-
version: '0'
|
117
|
+
version: '0.10'
|
230
118
|
type: :runtime
|
231
119
|
prerelease: false
|
232
120
|
version_requirements: !ruby/object:Gem::Requirement
|
233
121
|
requirements:
|
234
|
-
- - "
|
122
|
+
- - "~>"
|
235
123
|
- !ruby/object:Gem::Version
|
236
|
-
version: '0'
|
124
|
+
version: '0.10'
|
237
125
|
description: This is IRC bot that notifies repository activity on github.
|
238
126
|
email:
|
239
127
|
- linyows@gmail.com
|