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 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