murmurs 0.0.1 → 0.0.2
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 +7 -0
- data/bin/murmurs +1 -0
- data/lib/murmurs.rb +28 -16
- metadata +24 -16
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f318e8f7a6753605c905258d8693312f7241a5ad
|
4
|
+
data.tar.gz: 2c1d6a0ca1dc3f11b705f0131f220ee78487762b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3da1f95bdc0c56c0ce2a8884bece1bcc4e3b9bf79bf0f624d6e23090f6e9d8ec28be865991f6cc856a68d870ce225be0563ca1cebf73264023510117b5e7163d
|
7
|
+
data.tar.gz: 103e6c1a8715c6a2e67ab90953bd769c0b802bbc9cb3069863e025e82c4b35071d9422b06675277d1af739c45fd1fc87cb4b977fa16e678303699407538353ec
|
data/bin/murmurs
CHANGED
@@ -40,6 +40,7 @@ opts = OptionParser.new do |opts|
|
|
40
40
|
|
41
41
|
opts.on_tail('-g', '--git', 'Process standard input of Git hook post-receive, and murmur each commits; default is false') do
|
42
42
|
options[:git] = true
|
43
|
+
options[:log_level] = :info
|
43
44
|
end
|
44
45
|
|
45
46
|
opts.on("-b", "--git_branch GIT_BRANCH", "Murmur Git commits in branch, default is master") do |v|
|
data/lib/murmurs.rb
CHANGED
@@ -2,29 +2,36 @@ require 'net/http'
|
|
2
2
|
require 'net/https'
|
3
3
|
require 'time'
|
4
4
|
require 'api-auth'
|
5
|
+
require 'json'
|
5
6
|
|
6
7
|
module Murmurs
|
8
|
+
class InvalidMurmursURLError < StandardError; end
|
9
|
+
|
7
10
|
def murmur(url, msg, options={})
|
8
11
|
if options[:git]
|
9
|
-
|
12
|
+
Array(git_commits(msg, options[:git_branch])).each do |msg|
|
13
|
+
murmur(url, msg, options.merge(:git => false))
|
14
|
+
end
|
15
|
+
else
|
16
|
+
validate_murmurs_url!(url)
|
17
|
+
if msg.nil? || msg.empty?
|
18
|
+
log(options[:log_level], "Nothing to murmur.")
|
19
|
+
else
|
20
|
+
log(options[:log_level], msg)
|
21
|
+
http_post(url, {:murmur => {:body => msg}}, options)
|
22
|
+
end
|
10
23
|
end
|
24
|
+
end
|
11
25
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
if msg.nil? || msg.empty?
|
16
|
-
puts "Nothing to murmur." unless options[:git]
|
17
|
-
return
|
18
|
-
end
|
19
|
-
t = 20
|
20
|
-
Array(msg).each do |m|
|
21
|
-
git_log(options[:git], m)
|
22
|
-
http_post(url, {'murmur[body]' => m}, options)
|
26
|
+
def validate_murmurs_url!(url)
|
27
|
+
if url.to_s !~ /\Ahttps?\:\/\/.+\/murmurs/
|
28
|
+
raise InvalidMurmursURLError, "Invalid murmurs URL: #{url.inspect}"
|
23
29
|
end
|
24
30
|
end
|
25
31
|
|
26
|
-
def
|
27
|
-
if
|
32
|
+
def log(level, m)
|
33
|
+
if level == :info
|
34
|
+
t = 20
|
28
35
|
if m.size > t
|
29
36
|
puts "murmur #{m[0..t]}..."
|
30
37
|
else
|
@@ -35,7 +42,7 @@ module Murmurs
|
|
35
42
|
|
36
43
|
# input: git post receive stdin string
|
37
44
|
# branch: git branch
|
38
|
-
def
|
45
|
+
def git_commits(input, branch)
|
39
46
|
data = input.split("\n").map do |l|
|
40
47
|
l.split
|
41
48
|
end.find do |l|
|
@@ -69,9 +76,14 @@ module Murmurs
|
|
69
76
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
70
77
|
end
|
71
78
|
end
|
79
|
+
body = params.to_json
|
72
80
|
|
73
81
|
request = Net::HTTP::Post.new(uri.request_uri)
|
74
|
-
request.
|
82
|
+
request.body = body
|
83
|
+
|
84
|
+
request['Content-Type'] = 'application/json'
|
85
|
+
request['Content-Length'] = body.bytesize
|
86
|
+
|
75
87
|
|
76
88
|
if options[:access_key_id]
|
77
89
|
ApiAuth.sign!(request, options[:access_key_id], options[:access_secret_key])
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: murmurs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- ThoughtWorks Mingle Team
|
@@ -14,24 +13,34 @@ dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: api-auth
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 1.1.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 1.1.0
|
30
|
-
|
31
|
-
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.8.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.8.1
|
41
|
+
description: |
|
42
|
+
Use HMAC to create murmur in Mingle project.
|
32
43
|
Git post-receive hook to post murmurs when new commits pushed to Git server.
|
33
|
-
|
34
|
-
'
|
35
44
|
email:
|
36
45
|
- mingle-dev@thoughtworks.com
|
37
46
|
executables:
|
@@ -47,26 +56,25 @@ files:
|
|
47
56
|
homepage: https://github.com/ThoughtWorksStudios/murmurs
|
48
57
|
licenses:
|
49
58
|
- MIT
|
59
|
+
metadata: {}
|
50
60
|
post_install_message:
|
51
61
|
rdoc_options: []
|
52
62
|
require_paths:
|
53
63
|
- lib
|
54
64
|
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
65
|
requirements:
|
57
|
-
- -
|
66
|
+
- - ">="
|
58
67
|
- !ruby/object:Gem::Version
|
59
68
|
version: '0'
|
60
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
70
|
requirements:
|
63
|
-
- -
|
71
|
+
- - ">="
|
64
72
|
- !ruby/object:Gem::Version
|
65
73
|
version: '0'
|
66
74
|
requirements: []
|
67
75
|
rubyforge_project:
|
68
|
-
rubygems_version:
|
76
|
+
rubygems_version: 2.2.0
|
69
77
|
signing_key:
|
70
|
-
specification_version:
|
78
|
+
specification_version: 4
|
71
79
|
summary: Post murmur to Mingle project murmurs
|
72
80
|
test_files: []
|