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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 60dcc741766ebde9c73e6f2d2d65a07a23d60e6eb1b7f5b88f2da4505c548a92
4
- data.tar.gz: b3b67b1a6be141ce3558f431e44053c7f0c74c7b03079486601390204c03a0ee
3
+ metadata.gz: f7fec78b3d7152f227abf153c8e5674df5a15567fb9b4280e038003fd61318d1
4
+ data.tar.gz: b8bea93f19967c470cf07ca91794cb212b00861b84abc0a610891562ed2c1287
5
5
  SHA512:
6
- metadata.gz: 3e8806b3cd7cf27ae282de1dd54d0055eef93d1dffcaf3644478440b729501125f8da1d655c33a503f5dd9215b09c850c0bc28e9ff4553f63e0e2044f5e41268
7
- data.tar.gz: fa82e7d311dd2f720007e2d242211ee17831c34181b20dbf781859cee7241c0bdf469b1d3de18757317010c8649f815d240825b8ec4f5ef564a5a7b0ee80cc51
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 has been promoted to under Faraday module from v1.0.0.
72
- # This patch aims to prevent on locking specific version of Faraday.
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 FARADAY_FAILED_CONNECTION, Octokit::TooManyRequests => e
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(ENV["HOME"], ".netrc")) && safe_require("netrc")
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
- " Some fields may be missing or have incorrect data."
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://help.github.com",
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 { |c| c.list_repos(owner, options) })
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
- "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."
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 site.config["github"]
39
+ case @original_config
30
40
  when nil
31
41
  drop
32
42
  when Hash
33
- Jekyll::Utils.deep_merge_hashes(drop, site.config["github"])
43
+ drop.merge(@original_config)
34
44
  else
35
- site.config["github"]
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 { |_c, r| r.name })
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
- Jekyll::GitHubMetadata::SiteGitHubMunger.new(site).munge!
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module GitHubMetadata
5
- VERSION = "2.13.0"
5
+ VERSION = "2.16.1"
6
6
  end
7
7
  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.13.0
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: 2020-01-15 00:00:00.000000000 Z
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.0'
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.0'
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.8.0
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.8.0
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.5.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.5.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.0.3
182
+ rubygems_version: 3.1.6
177
183
  signing_key:
178
184
  specification_version: 4
179
185
  summary: The site.github namespace