onebox 1.5.2 → 1.5.3
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/onebox/engine/github_pullrequest_onebox.rb +0 -46
- data/lib/onebox/engine/standard_embed.rb +10 -4
- data/lib/onebox/engine/whitelisted_generic_onebox.rb +1 -0
- data/lib/onebox/version.rb +1 -1
- data/templates/githubcommit.mustache +1 -1
- data/templates/githubpullrequest.mustache +8 -60
- 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: 06db4c95569c90b9238b49e72e33e7f618545f99
|
4
|
+
data.tar.gz: 921ab7e92a62a4a43098a38d58baba0186233337
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40995c30495f6ef5352443154da5b3d068e970283dc89240e15559f453ac06164346e917129f38075c4c2b227cc5147ef4228f1ec71fe1ea6b74dc95c9c92cee
|
7
|
+
data.tar.gz: bb1f6ab98b37391687d21ed65c5683ea36541ade58ea08f9bc14a15ab0ac7508818723cedeac07a6576f88dbb01e7d5ac12d21b37f5009e7af1a35051033e9c5
|
@@ -13,58 +13,12 @@ module Onebox
|
|
13
13
|
|
14
14
|
private
|
15
15
|
|
16
|
-
#Make an api JSON request, will attempt to authenticate if provided in the engine options
|
17
|
-
# Author: Lidlanca
|
18
|
-
#: self.options[:github_auth_method] = :basic | :oauth | nil
|
19
|
-
# :oauth is the recommend way for authentication. when generating token you can control privileges, and you do not expose your password
|
20
|
-
# :basic require username and password provided in options[:github_auth_user , :github_auth_pass]
|
21
|
-
# nil or false will make a request without any authentication. request rate limit are lower.
|
22
|
-
|
23
|
-
def api_json_request url
|
24
|
-
box_options = self.options
|
25
|
-
case box_options[:github_auth_method]
|
26
|
-
when :basic
|
27
|
-
auth = [box_options[:github_auth_user] , box_options[:github_auth_pass]] # user name and password
|
28
|
-
when :oauth
|
29
|
-
auth = [box_options[:github_auth_token] , "x-oauth-basic"] #oauth does not need password with token
|
30
|
-
else
|
31
|
-
#request without auth
|
32
|
-
return ::MultiJson.load(open(url,"Accept"=>"application/vnd.github.v3.text+json",read_timeout: timeout))
|
33
|
-
|
34
|
-
end
|
35
|
-
#Request with auth
|
36
|
-
return ::MultiJson.load(open(url,"Accept"=>"application/vnd.github.v3.text+json",http_basic_authentication:auth, read_timeout: timeout))
|
37
|
-
end
|
38
|
-
|
39
|
-
def raw
|
40
|
-
@raw ||= api_json_request url
|
41
|
-
end
|
42
16
|
def match
|
43
17
|
@match ||= @url.match(%r{github\.com/(?<owner>[^/]+)/(?<repository>[^/]+)/pull/(?<number>[^/]+)})
|
44
18
|
end
|
45
19
|
|
46
20
|
def data
|
47
|
-
box_options = self.options
|
48
21
|
result = raw.clone
|
49
|
-
|
50
|
-
pull_status = "" << {:closed=>"closed",:open=>"open"}[raw["state"].to_sym] << (raw["state"] == "closed" ? (raw["merged"] ? " & merged" : " & declined") : "") #closed , open
|
51
|
-
result['pull_status_str'] = pull_status
|
52
|
-
result['pull_status'] = raw["state"]
|
53
|
-
result['pull_status_str'] = pull_status
|
54
|
-
result['pull_status_str_open'] = raw["state"]=="open"
|
55
|
-
result['pull_status_closed_accepted'] = raw["state"]=="closed" && raw["merged"]
|
56
|
-
result['pull_status_closed_declined'] = raw["state"]=="closed" && !raw["merged"]
|
57
|
-
result['pull_status_class'] = (raw["merged"] ? "merged": raw["state"] ) # open, merged, close
|
58
|
-
result['pull_status_bgcolor'] = {:open=>"#6cc644",:merged =>"6e5494", :closed=> "#bd2c00"}[result['pull_status_class'].to_sym]
|
59
|
-
result['inline_css'] = false #set to true if you need basic styling and you don't have external css
|
60
|
-
if box_options[:get_build_status]
|
61
|
-
url2 = raw["statuses_url"]
|
62
|
-
raw2 = api_json_request url2 #2nd api request to get build status
|
63
|
-
unless raw2.empty?
|
64
|
-
result['build_status'] = "Build status: " + raw2[0]["state"].to_s.capitalize + " | " + raw2[0]["description"].to_s
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
22
|
result['link'] = link
|
69
23
|
result['created_at'] = Time.parse(result['created_at']).strftime("%I:%M%p - %d %b %y")
|
70
24
|
result
|
@@ -5,7 +5,6 @@ module Onebox
|
|
5
5
|
def raw
|
6
6
|
return @raw if @raw
|
7
7
|
response = fetch_response(url)
|
8
|
-
|
9
8
|
html_doc = Nokogiri::HTML(response.body)
|
10
9
|
|
11
10
|
# Determine if we should use OEmbed or OpenGraph
|
@@ -61,7 +60,7 @@ module Onebox
|
|
61
60
|
og
|
62
61
|
end
|
63
62
|
|
64
|
-
def fetch_response(location, limit = 5, domain = nil)
|
63
|
+
def fetch_response(location, limit = 5, domain = nil,headers=nil)
|
65
64
|
raise Net::HTTPError.new('HTTP redirect too deep', location) if limit == 0
|
66
65
|
|
67
66
|
uri = URI(location)
|
@@ -75,11 +74,18 @@ module Onebox
|
|
75
74
|
http.use_ssl = true
|
76
75
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
77
76
|
end
|
78
|
-
|
77
|
+
|
78
|
+
response = http.request_get(uri.request_uri,headers)
|
79
|
+
|
80
|
+
cookie = response.get_fields('set-cookie')
|
81
|
+
if (cookie)
|
82
|
+
header = {'cookie' => cookie.join("")}
|
83
|
+
end
|
84
|
+
header = nil unless header.is_a? Hash
|
79
85
|
|
80
86
|
case response
|
81
87
|
when Net::HTTPSuccess then response
|
82
|
-
when Net::HTTPRedirection then fetch_response(response['location'], limit - 1, "#{uri.scheme}://#{uri.host}")
|
88
|
+
when Net::HTTPRedirection then fetch_response(response['location'], limit - 1, "#{uri.scheme}://#{uri.host}",header)
|
83
89
|
else
|
84
90
|
response.error!
|
85
91
|
end
|
data/lib/onebox/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{{#author.avatar_url}}
|
2
2
|
<a href="{{author.html_url}}" target="_blank">
|
3
|
-
<img alt="{{author.login}}" src="{{author.avatar_url}}" class="thumbnail onebox-avatar">
|
3
|
+
<img alt="{{author.login}}" src="{{author.avatar_url}}" class="thumbnail onebox-avatar" width="90" height="90">
|
4
4
|
</a>
|
5
5
|
{{/author.avatar_url}}
|
6
6
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{{#user.avatar_url}}
|
2
2
|
<a href="{{user.html_url}}" target="_blank">
|
3
|
-
<img alt="{{user.login}}" src="{{user.avatar_url}}" class="thumbnail onebox-avatar">
|
3
|
+
<img alt="{{user.login}}" src="{{user.avatar_url}}" class="thumbnail onebox-avatar" width="90" height="90">
|
4
4
|
</a>
|
5
5
|
{{/user.avatar_url}}
|
6
6
|
|
@@ -8,66 +8,14 @@
|
|
8
8
|
<a href="{{html_url}}" target="_blank">{{title}}</a>
|
9
9
|
</h4>
|
10
10
|
|
11
|
-
<div class=
|
12
|
-
|
13
|
-
<span class="status_tag {{pull_status_class}}" {{#inline_css}}style="background:{{pull_status_bgcolor}};color:#fff;display:inline-block;border-radius:3px;padding:1px 4px;font-weight:bold;margin-bottom:5px;"{{/inline_css}}> {{pull_status_str}} </span>
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
{{#build_status}}
|
19
|
-
<span class='build_status' {{#inline_css}}style='padding: 2px;font-size:12px'{{/inline_css}}>{{build_status}}</span>
|
20
|
-
{{/build_status}}
|
21
|
-
|
22
|
-
<div class="github-commit-stats">
|
23
|
-
<strong>{{commits}} commits</strong>
|
24
|
-
changed <strong>{{changed_files}} files</strong>
|
25
|
-
with <strong>{{additions}} additions</strong>
|
26
|
-
and <strong>{{deletions}} deletions</strong>.
|
27
|
-
</div>
|
28
|
-
</div>
|
29
|
-
|
30
|
-
<div class="date github-content-right" {{#inline_css}}style='margin-left:100px;'{{/inline_css}}>
|
11
|
+
<div class="date">
|
31
12
|
by <a href="{{user.html_url}}" target="_blank">{{user.login}}</a>
|
32
13
|
on <a href="{{html_url}}" target="_blank">{{created_at}}</a>
|
33
14
|
</div>
|
34
15
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
padding: 10px;
|
42
|
-
}
|
43
|
-
|
44
|
-
.onebox-body .status_tag {
|
45
|
-
display:inline-block;
|
46
|
-
color:#fff;
|
47
|
-
padding:1px 4px;
|
48
|
-
border-radius:3px;
|
49
|
-
font-weight:bold;
|
50
|
-
margin-bottom:5px;
|
51
|
-
text-transform:capitalize;
|
52
|
-
}
|
53
|
-
|
54
|
-
.onebox-body .build_status
|
55
|
-
{
|
56
|
-
padding: 2px;
|
57
|
-
font-size:12px;
|
58
|
-
}
|
59
|
-
|
60
|
-
.onebox-body .status_tag.open {
|
61
|
-
background-color:#6cc644;
|
62
|
-
}
|
63
|
-
.onebox-body .status_tag.merged{
|
64
|
-
background-color:#6e5494;
|
65
|
-
}
|
66
|
-
.onebox-body .status_tag.closed {
|
67
|
-
background-color:#bd2c00;
|
68
|
-
}
|
69
|
-
|
70
|
-
.onebox-body .github-content-right{
|
71
|
-
margin-left:100px;
|
72
|
-
}
|
73
|
-
}}
|
16
|
+
<div class="github-commit-stats">
|
17
|
+
<strong>{{commits}} commits</strong>
|
18
|
+
changed <strong>{{changed_files}} files</strong>
|
19
|
+
with <strong>{{additions}} additions</strong>
|
20
|
+
and <strong>{{deletions}} deletions</strong>.
|
21
|
+
</div>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onebox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joanna Zeta
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-10-
|
13
|
+
date: 2014-10-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: multi_json
|
@@ -344,7 +344,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
344
344
|
version: '0'
|
345
345
|
requirements: []
|
346
346
|
rubyforge_project:
|
347
|
-
rubygems_version: 2.
|
347
|
+
rubygems_version: 2.2.2
|
348
348
|
signing_key:
|
349
349
|
specification_version: 4
|
350
350
|
summary: A gem for turning URLs into previews.
|