Skip to content

RubyGems Metadata Extraction

Implementation plan (~1-3 MRs)

Based on initial findings in working with the Gem module, these services might fitting into 1-3 MRs.

  • Packages::RubyGems::MetadataExtractionService - Takes a GemSpec object and a package object and populates the packages_rubygems_metadata record for the package. We also rename the package and set the version here.
  • Packages::RubyGems::CreateDependenciesService - Takes a GemSpec object and a package object and populates dependencies, associating them with the package.
  • Packages::RubyGems::CreateGemspecService - Takes a GemSpec object and a package object and writes to a new PackageFile object that is associated with that package.
  • Packages::RubyGems::ProcessGemService - The service responsible for running all of the above services. It takes a package and a package file (the temporary .gem file) and by the time it is finished we have fully defined RubyGems package in the registry.

Notes

  • See the linked notes below, but it will be possible to use the Gem module to help with the metadata/dependency extraction

References

Edited by Steve Abrams