Class: Metanorma::Release::Platform::GitHub::ManifestReader

Inherits:
Object
  • Object
show all
Includes:
ManifestReader
Defined in:
lib/metanorma/release/platform/github/manifest_reader.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ ManifestReader

Returns a new instance of ManifestReader.



12
13
14
# File 'lib/metanorma/release/platform/github/manifest_reader.rb', line 12

def initialize(client:)
  @client = client
end

Instance Method Details

#read(repo) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/metanorma/release/platform/github/manifest_reader.rb', line 16

def read(repo)
  content = @client.contents(repo.to_s, path: 'metanorma.release.yml')
  return nil unless content

  yaml = content['content'].unpack1('m0')
  parsed = YAML.safe_load(yaml, permitted_classes: [Symbol])
  return nil unless parsed.is_a?(Hash)

  (parsed['channels'] || []).map(&:to_s)
rescue StandardError
  nil
end