Skip to content

Commit beaa00a

Browse files
committed
Add site.github.public_repositories[].releases
For each public repository rendered, we will also list releases for them.
1 parent fa79a26 commit beaa00a

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

lib/jekyll-github-metadata/repository.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ def owner_public_repositories
117117
:type => "public",
118118
:accept => "application/vnd.github.mercy-preview+json",
119119
}
120-
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+
c.list_repos(owner, options).each { |r| r[:releases] = c.releases(r[:full_name]) }
122+
end)
121123
end
122124

123125
def organization_public_members

spec/integration_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@
3434
end
3535
end
3636

37+
it "contains the correct public_repositories.releases" do
38+
expect(subject).to have_key("public_repositories")
39+
expect(subject["public_repositories"].first).to have_key("releases")
40+
expect(subject["public_repositories"].first["releases"].size).to eql(3)
41+
expect(subject["public_repositories"].first["releases"].first["name"]).to eql("v1.1.0")
42+
expect(subject["public_repositories"].first["releases"].first["target_commitish"]).to eql("master")
43+
end
44+
3745
it "calls all the stubs" do
3846
stubs.each do |stub|
3947
expect(stub).to have_been_requested

spec/spec_helpers/stub_helper.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module StubHelper
66
# Returns all stubs created.
77
def stub_all_api_requests
88
reset_env_for_stubs
9-
{
9+
stubs = {
1010
"/users/jekyll/repos?per_page=100&type=public" => "owner_repos",
1111
"/repos/jekyll/github-metadata" => "repo",
1212
"/orgs/jekyll" => "org",
@@ -20,6 +20,11 @@ def stub_all_api_requests
2020
"/repos/jekyll/jekyll.github.io/pages" => "repo_pages",
2121
"/repos/jekyll/github-metadata/releases/latest" => "latest_release",
2222
}.map { |path, file| stub_api(path, file) }
23+
24+
owner_repos = JSON.parse(webmock_data("owner_repos"))
25+
owner_repos.each { |r| stubs << stub_api("/repos/#{r["full_name"]}/releases?per_page=100", "repo_releases") }
26+
27+
stubs
2328
end
2429

2530
def reset_env_for_stubs

0 commit comments

Comments
 (0)