jekyll-github-metadata 2.13.0 → 2.16.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll-github-metadata/client.rb +12 -6
- data/lib/jekyll-github-metadata/metadata_drop.rb +1 -0
- data/lib/jekyll-github-metadata/pages.rb +1 -1
- data/lib/jekyll-github-metadata/repository.rb +12 -1
- data/lib/jekyll-github-metadata/repository_finder.rb +3 -3
- data/lib/jekyll-github-metadata/sanitizer.rb +4 -2
- data/lib/jekyll-github-metadata/site_github_munger.rb +36 -11
- data/lib/jekyll-github-metadata/version.rb +1 -1
- metadata +17 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7fec78b3d7152f227abf153c8e5674df5a15567fb9b4280e038003fd61318d1
|
4
|
+
data.tar.gz: b8bea93f19967c470cf07ca91794cb212b00861b84abc0a610891562ed2c1287
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3531515a02ef10355ce54fc39d688d71ce6a97c8db80bca3336d65e3f3de10a0c3ecf816cdaccaec3aaa25e7dd62d890502df71ccc52444e0007d64cb724f726
|
7
|
+
data.tar.gz: fc0991efa00a317ceaf1b84876840dc389c1514924acd7a15bcc5624e9eba3dd82899a91bf6342fb6a74a75bcb8dd9ee0479a8522991e4dbfd6b8dcf7527d7e6
|
@@ -68,14 +68,20 @@ module Jekyll
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
# NOTE: Faraday's error classes
|
72
|
-
#
|
71
|
+
# NOTE: Faraday's error classes have been simplified from v1.0.0.
|
72
|
+
#
|
73
|
+
# In older versions, both `Faraday::Error::ConnectionFailed` and `Faraday::ConnectionFailed`
|
74
|
+
# were valid and equivalent to each other.
|
75
|
+
# From v1.0.0 onwards, `Faraday::Error::ConnectionFailed` no longer exists.
|
76
|
+
#
|
77
|
+
# TODO: Remove in v2.0 of this plugin.
|
73
78
|
FARADAY_FAILED_CONNECTION =
|
74
79
|
begin
|
75
80
|
Faraday::Error::ConnectionFailed
|
76
81
|
rescue NameError
|
77
82
|
Faraday::ConnectionFailed
|
78
83
|
end
|
84
|
+
deprecate_constant :FARADAY_FAILED_CONNECTION
|
79
85
|
|
80
86
|
def save_from_errors(default = false)
|
81
87
|
unless internet_connected?
|
@@ -86,7 +92,7 @@ module Jekyll
|
|
86
92
|
yield @client
|
87
93
|
rescue Octokit::Unauthorized
|
88
94
|
raise BadCredentialsError, "The GitHub API credentials you provided aren't valid."
|
89
|
-
rescue
|
95
|
+
rescue Faraday::ConnectionFailed, Octokit::TooManyRequests => e
|
90
96
|
GitHubMetadata.log :warn, e.message
|
91
97
|
default
|
92
98
|
rescue Octokit::NotFound
|
@@ -130,11 +136,11 @@ module Jekyll
|
|
130
136
|
def pluck_auth_method
|
131
137
|
if ENV["JEKYLL_GITHUB_TOKEN"] || Octokit.access_token
|
132
138
|
{ :access_token => ENV["JEKYLL_GITHUB_TOKEN"] || Octokit.access_token }
|
133
|
-
elsif !ENV["NO_NETRC"] && File.exist?(File.join(
|
139
|
+
elsif !ENV["NO_NETRC"] && File.exist?(File.join(Dir.home, ".netrc")) && safe_require("netrc")
|
134
140
|
{ :netrc => true }
|
135
141
|
else
|
136
|
-
GitHubMetadata.log :warn, "No GitHub API authentication could be found." \
|
137
|
-
|
142
|
+
GitHubMetadata.log :warn, "No GitHub API authentication could be found. " \
|
143
|
+
"Some fields may be missing or have incorrect data."
|
138
144
|
{}.freeze
|
139
145
|
end
|
140
146
|
end
|
@@ -48,6 +48,7 @@ module Jekyll
|
|
48
48
|
def_delegator :repository, :tagline, :project_tagline
|
49
49
|
def_delegator :repository, :owner_metadata, :owner
|
50
50
|
def_delegator :repository, :owner, :owner_name
|
51
|
+
def_delegator :repository, :owner_display_name, :owner_display_name
|
51
52
|
def_delegator :repository, :owner_url, :owner_url
|
52
53
|
def_delegator :repository, :owner_gravatar_url, :owner_gravatar_url
|
53
54
|
def_delegator :repository, :repository_url, :repository_url
|
@@ -7,7 +7,7 @@ module Jekyll
|
|
7
7
|
DEFAULTS = {
|
8
8
|
"PAGES_ENV" => "development",
|
9
9
|
"PAGES_API_URL" => "https://api.github.com",
|
10
|
-
"PAGES_HELP_URL" => "https://
|
10
|
+
"PAGES_HELP_URL" => "https://docs.github.com",
|
11
11
|
"PAGES_GITHUB_HOSTNAME" => "github.com",
|
12
12
|
"PAGES_PAGES_HOSTNAME" => "github.io",
|
13
13
|
"SSL" => "false",
|
@@ -64,6 +64,10 @@ module Jekyll
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
+
def owner_display_name
|
68
|
+
owner_metadata.name
|
69
|
+
end
|
70
|
+
|
67
71
|
def owner_metadata
|
68
72
|
@owner_metadata ||= Jekyll::GitHubMetadata::Owner.new(owner)
|
69
73
|
end
|
@@ -113,7 +117,14 @@ module Jekyll
|
|
113
117
|
:type => "public",
|
114
118
|
:accept => "application/vnd.github.mercy-preview+json",
|
115
119
|
}
|
116
|
-
memoize_value :@owner_public_repositories, Value.new("owner_public_repositories", proc
|
120
|
+
memoize_value :@owner_public_repositories, Value.new("owner_public_repositories", proc do |c|
|
121
|
+
repos = c.list_repos(owner, options) || []
|
122
|
+
repos.map do |r|
|
123
|
+
r[:releases] = Value.new("owner_public_repositories_releases", proc { c.releases(r[:full_name]) })
|
124
|
+
r[:contributors] = Value.new("owner_public_repositories_contributors", proc { c.contributors(r[:full_name]) })
|
125
|
+
r
|
126
|
+
end
|
127
|
+
end)
|
117
128
|
end
|
118
129
|
|
119
130
|
def organization_public_members
|
@@ -27,9 +27,9 @@ module Jekyll
|
|
27
27
|
nwo_from_git_origin_remote || \
|
28
28
|
proc do
|
29
29
|
raise NoRepositoryError, "No repo name found. " \
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
"Specify using PAGES_REPO_NWO environment variables, " \
|
31
|
+
"'repository' in your configuration, or set up an 'origin' " \
|
32
|
+
"git remote pointing to your github.com repository."
|
33
33
|
end.call
|
34
34
|
end
|
35
35
|
end
|
@@ -16,7 +16,7 @@ module Jekyll
|
|
16
16
|
# resource - an Object
|
17
17
|
#
|
18
18
|
# Returns the sanitized resource.
|
19
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
19
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength
|
20
20
|
def sanitize(resource)
|
21
21
|
case resource
|
22
22
|
when Array
|
@@ -31,6 +31,8 @@ module Jekyll
|
|
31
31
|
nil
|
32
32
|
when String
|
33
33
|
resource
|
34
|
+
when Value
|
35
|
+
resource.render
|
34
36
|
else
|
35
37
|
if resource.respond_to?(:to_hash)
|
36
38
|
sanitize_resource(resource)
|
@@ -39,7 +41,7 @@ module Jekyll
|
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
42
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
44
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/MethodLength
|
43
45
|
|
44
46
|
# Sanitize the Sawyer Resource or Hash
|
45
47
|
# Note: the object must respond to :to_hash for this to work.
|
@@ -6,33 +6,43 @@ module Jekyll
|
|
6
6
|
class SiteGitHubMunger
|
7
7
|
extend Forwardable
|
8
8
|
|
9
|
+
class << self
|
10
|
+
attr_accessor :global_munger
|
11
|
+
end
|
12
|
+
|
9
13
|
def_delegators Jekyll::GitHubMetadata, :site, :repository
|
10
14
|
private :repository
|
11
15
|
|
12
16
|
def initialize(site)
|
13
17
|
Jekyll::GitHubMetadata.site = site
|
18
|
+
@original_config = site.config["github"]
|
14
19
|
end
|
15
20
|
|
16
21
|
def munge!
|
17
22
|
Jekyll::GitHubMetadata.log :debug, "Initializing..."
|
18
23
|
|
19
|
-
# This is the good stuff.
|
20
|
-
site.config["github"] = github_namespace
|
21
|
-
|
22
24
|
add_title_and_description_fallbacks!
|
23
25
|
add_url_and_baseurl_fallbacks! if should_add_url_fallbacks?
|
24
26
|
end
|
25
27
|
|
28
|
+
def inject_metadata!(payload)
|
29
|
+
payload.site["github"] = github_namespace
|
30
|
+
end
|
31
|
+
|
32
|
+
def uninject_metadata!(payload)
|
33
|
+
payload.site["github"] = @original_config
|
34
|
+
end
|
35
|
+
|
26
36
|
private
|
27
37
|
|
28
38
|
def github_namespace
|
29
|
-
case
|
39
|
+
case @original_config
|
30
40
|
when nil
|
31
41
|
drop
|
32
42
|
when Hash
|
33
|
-
|
43
|
+
drop.merge(@original_config)
|
34
44
|
else
|
35
|
-
|
45
|
+
@original_config
|
36
46
|
end
|
37
47
|
end
|
38
48
|
|
@@ -55,7 +65,13 @@ module Jekyll
|
|
55
65
|
msg << "Jekyll GitHub Metadata will not set site.title to the repository's name."
|
56
66
|
Jekyll::GitHubMetadata.log :warn, msg
|
57
67
|
else
|
58
|
-
site.config["title"] ||= Value.new("title", proc { |
|
68
|
+
site.config["title"] ||= Value.new("title", proc { |_context, repository|
|
69
|
+
if repository.project_page?
|
70
|
+
repository.name
|
71
|
+
else
|
72
|
+
repository.owner_display_name || repository.owner
|
73
|
+
end
|
74
|
+
})
|
59
75
|
end
|
60
76
|
site.config["description"] ||= Value.new("description", proc { |_c, r| r.tagline })
|
61
77
|
end
|
@@ -74,9 +90,18 @@ module Jekyll
|
|
74
90
|
site.config["name"] && !site.config["title"]
|
75
91
|
end
|
76
92
|
end
|
77
|
-
end
|
78
|
-
end
|
79
93
|
|
80
|
-
Jekyll::Hooks.register :site, :after_init do |site|
|
81
|
-
|
94
|
+
Jekyll::Hooks.register :site, :after_init do |site|
|
95
|
+
SiteGitHubMunger.global_munger = SiteGitHubMunger.new(site)
|
96
|
+
SiteGitHubMunger.global_munger.munge!
|
97
|
+
end
|
98
|
+
|
99
|
+
Jekyll::Hooks.register :site, :pre_render do |_site, payload|
|
100
|
+
SiteGitHubMunger.global_munger.inject_metadata!(payload)
|
101
|
+
end
|
102
|
+
|
103
|
+
Jekyll::Hooks.register :site, :post_render do |_site, payload|
|
104
|
+
SiteGitHubMunger.global_munger.uninject_metadata!(payload)
|
105
|
+
end
|
106
|
+
end
|
82
107
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-github-metadata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.16.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Parker Moore
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -34,22 +34,28 @@ dependencies:
|
|
34
34
|
name: octokit
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '4
|
39
|
+
version: '4'
|
40
40
|
- - "!="
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 4.4.0
|
43
|
+
- - "<"
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '7'
|
43
46
|
type: :runtime
|
44
47
|
prerelease: false
|
45
48
|
version_requirements: !ruby/object:Gem::Requirement
|
46
49
|
requirements:
|
47
|
-
- - "
|
50
|
+
- - ">="
|
48
51
|
- !ruby/object:Gem::Version
|
49
|
-
version: '4
|
52
|
+
version: '4'
|
50
53
|
- - "!="
|
51
54
|
- !ruby/object:Gem::Version
|
52
55
|
version: 4.4.0
|
56
|
+
- - "<"
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '7'
|
53
59
|
- !ruby/object:Gem::Dependency
|
54
60
|
name: bundler
|
55
61
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,28 +118,28 @@ dependencies:
|
|
112
118
|
requirements:
|
113
119
|
- - "~>"
|
114
120
|
- !ruby/object:Gem::Version
|
115
|
-
version: 3.
|
121
|
+
version: 3.12.0
|
116
122
|
type: :development
|
117
123
|
prerelease: false
|
118
124
|
version_requirements: !ruby/object:Gem::Requirement
|
119
125
|
requirements:
|
120
126
|
- - "~>"
|
121
127
|
- !ruby/object:Gem::Version
|
122
|
-
version: 3.
|
128
|
+
version: 3.12.0
|
123
129
|
- !ruby/object:Gem::Dependency
|
124
130
|
name: rubocop-jekyll
|
125
131
|
requirement: !ruby/object:Gem::Requirement
|
126
132
|
requirements:
|
127
133
|
- - "~>"
|
128
134
|
- !ruby/object:Gem::Version
|
129
|
-
version: 0.
|
135
|
+
version: 0.13.0
|
130
136
|
type: :development
|
131
137
|
prerelease: false
|
132
138
|
version_requirements: !ruby/object:Gem::Requirement
|
133
139
|
requirements:
|
134
140
|
- - "~>"
|
135
141
|
- !ruby/object:Gem::Version
|
136
|
-
version: 0.
|
142
|
+
version: 0.13.0
|
137
143
|
description:
|
138
144
|
email:
|
139
145
|
- parkrmoore@gmail.com
|
@@ -173,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
173
179
|
- !ruby/object:Gem::Version
|
174
180
|
version: '0'
|
175
181
|
requirements: []
|
176
|
-
rubygems_version: 3.
|
182
|
+
rubygems_version: 3.1.6
|
177
183
|
signing_key:
|
178
184
|
specification_version: 4
|
179
185
|
summary: The site.github namespace
|