jekyll-github-metadata 2.13.0 → 2.16.1
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/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
|