diff --git a/internal/service/wiki/get_all_pages_test.go b/internal/service/wiki/get_all_pages_test.go index 458f820d213ec9e1bcddc7f9c6f199b9a5570559..86d7ba6be33ccd999a2bc8f47d9994e4eae9839b 100644 --- a/internal/service/wiki/get_all_pages_test.go +++ b/internal/service/wiki/get_all_pages_test.go @@ -214,7 +214,7 @@ func createTestWikiPages(t *testing.T, client gitalypb.WikiServiceClient, wikiRe UrlPath: "Page-1", Path: []byte("Page-1.md"), Name: []byte(page1Name), - RawData: mockPageContent, + RawData: nil, Historical: false, } expectedPage2 := &gitalypb.WikiPage{ @@ -234,7 +234,7 @@ func createTestWikiPages(t *testing.T, client gitalypb.WikiServiceClient, wikiRe UrlPath: "Page-3", Path: []byte("Page-3.md"), Name: []byte(page3Name), - RawData: mockPageContent, + RawData: nil, Historical: false, } diff --git a/ruby/lib/gitaly_server/wiki_service.rb b/ruby/lib/gitaly_server/wiki_service.rb index 00ae83e981891ad855bff4e43fa0e194a7c8f4c9..1e1523e8022475c2f2a79625f65866b0c3a17ff6 100644 --- a/ruby/lib/gitaly_server/wiki_service.rb +++ b/ruby/lib/gitaly_server/wiki_service.rb @@ -77,11 +77,13 @@ module GitalyServer ).each do |page| y.yield Gitaly::WikiGetAllPagesResponse.new(page: build_gitaly_wiki_page(page)) - io = StringIO.new(page.text_data) - while chunk = io.read(Gitlab.config.git.write_buffer_size) - gitaly_wiki_page = Gitaly::WikiPage.new(raw_data: chunk) + if page.text_data + io = StringIO.new(page.text_data) + while chunk = io.read(Gitlab.config.git.write_buffer_size) + gitaly_wiki_page = Gitaly::WikiPage.new(raw_data: chunk) - y.yield Gitaly::WikiGetAllPagesResponse.new(page: gitaly_wiki_page) + y.yield Gitaly::WikiGetAllPagesResponse.new(page: gitaly_wiki_page) + end end y.yield Gitaly::WikiGetAllPagesResponse.new(end_of_page: true) diff --git a/ruby/lib/gitlab/git/wiki.rb b/ruby/lib/gitlab/git/wiki.rb index bb31492926378f8e666b07a31b23532b5f03125e..396cafefb4b4a04a04c486faf21b79aca0d8176f 100644 --- a/ruby/lib/gitlab/git/wiki.rb +++ b/ruby/lib/gitlab/git/wiki.rb @@ -85,8 +85,8 @@ module Gitlab private - def new_page(gollum_page) - Gitlab::Git::WikiPage.new(gollum_page, new_version(gollum_page, gollum_page.version.id)) + def new_page(gollum_page, with_raw_data: true) + Gitlab::Git::WikiPage.new(gollum_page, new_version(gollum_page, gollum_page.version.id), with_raw_data: with_raw_data) end def new_version(gollum_page, commit_id) @@ -195,7 +195,7 @@ module Gitlab gollum_wiki.pages( limit: limit, sort: sort, direction_desc: direction_desc ).map do |gollum_page| - new_page(gollum_page) + new_page(gollum_page, with_raw_data: false) end end end diff --git a/ruby/lib/gitlab/git/wiki_page.rb b/ruby/lib/gitlab/git/wiki_page.rb index 3fbdf0ffeaf344a56ac37fa68d424e0b1610ecec..d206a4c66f44e01a32cdc8361083f77b32761083 100644 --- a/ruby/lib/gitlab/git/wiki_page.rb +++ b/ruby/lib/gitlab/git/wiki_page.rb @@ -3,14 +3,14 @@ module Gitlab class WikiPage attr_reader :url_path, :title, :format, :path, :version, :raw_data, :name, :historical - def initialize(gollum_page, version) + def initialize(gollum_page, version, with_raw_data: true) @gollum_page = gollum_page @url_path = gollum_page.url_path @title = gollum_page.title @format = gollum_page.format @path = gollum_page.path - @raw_data = gollum_page.raw_data + @raw_data = gollum_page.raw_data if with_raw_data @name = gollum_page.name @historical = gollum_page.historical?