onebox 1.5.2 → 1.5.3
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|