Beispiel #1
0
 def transform(self, data, package):
     releases = []
     for version, artifacts in data['releases'].items():
         times = [datetime_new(ri['upload_time']) for ri in artifacts]
         if times:
             releases.append(ReleaseInfoModel(version, min(times)))
     return releases
Beispiel #2
0
 def transform(self, data, packages):
     releases = []
     for version, date in data['time'].items():
         commit = data['versions'].get(version, {}).get('gitHead')
         if version in NpmReleaseFetcher.bad_keys:
             continue
         releases.append(ReleaseInfoModel(version, datetime_new(date), 
                                          commit=commit))
     return releases
Beispiel #3
0
 def transform(self, data, package):
     releases = []
     # there's always 1 element
     for item in data['items'][0]['items']:
         release = item['catalogEntry']
         releases.append(ReleaseInfoModel(release['version'], 
                                          datetime_new(release['published']), 
                                          commit=item['commitId']))
     return releases
Beispiel #4
0
    def __sync_info_fetcher(self, package, version):
        # Get artifact name from the coordinate
        rest, artifact = package.rsplit('/', 1)
        url = Urls.MavenHead.format(package_name=package, artifact=artifact, 
                                    version=version)
        if self.verbose:
            import sys
            msg = '{name} fetching info for `{package}` at version `{version}` from: {url}'
            print(msg.format(name=self.__class__.__name__, url=url, 
                             package=package.replace('/', '.'), version=version), 
                  file=sys.stderr)

        # Since there's no metadata API/file to inspect we have to figure out
        # the age of the artifact by sending a HEAD request to the main
        # package Jar and inspect the `last-modified` HTTP header
        res = head(url)
        # Remove consecutive whitespaces
        last_mod = ' '.join(res.headers.get('last-modified', '').split())

        if last_mod:
            return datetime_new(last_mod, 'ddd, DD MMM YYYY H:mm:ss ZZZ')
        else:
            return None
Beispiel #5
0
 def transform(self, data, packages):
     releases = []
     for release in data['versions']:
         releases.append(ReleaseInfoModel(release['num'], 
                         datetime_new(release['created_at'])))
     return releases
Beispiel #6
0
 def transform(self, data, package):
     releases = []
     for release in data:
         releases.append(ReleaseInfoModel(release['number'], 
                         datetime_new(release['created_at'])))
     return releases