Skip to content

Project Ideas FetchCode

Philippe Ombredanne edited this page Mar 4, 2020 · 1 revision

FetchCode: a smart code downloader

The goal of this project is to create a smart tool/library that provides a universal package and code download from VCS, web, ftp, etc.

FetchCode should be able to both fetch code and retrieve data about code using minimal information. The projected feature include:

  1. download reliably code from HTTP and FTP sources using a URL as input
  2. download reliably code from version control systems (VCS) such as git, hg, svn in a pluggable way.
  3. be smart about URLs and provide ways to fix and resolve URLs. There is a basic feature in the Package URL Python library to get a PURL from a URL (See https://github.com/package-url/packageurl-python/blob/master/src/packageurl/contrib/url2purl.py ). This should be enhanced and furthered there and in ScanCode such that given a URL we can get a PURL, or given a Git/GitHub/Gitlab/Bitbucket URL we can get a normalized download URL.
  4. return information about a URL (possibly by making API calls). For instance, given a Git/GitHub/Gitlab/Bitbucket URL we should get details about the list of tags and versions. Or get details from a package using a PURL as an input by querying a package registry API.

In this project some code will be contributed to Package URL, some to ScanCode and some in the FetchCode repo proper.

Clone this wiki locally