def upload_from_metadata(group, meta): """ Given only metadata of an archive ask charon to retrive it where possible """ if group not in config.SUBMISSION_GROUPS.keys(): raise ValueError('Invalid group') return download(group, meta)
def upload_from_coordinates(group, coordinates): """ Given only coordinates of an archive ask charon to retrive it if possible """ if group not in config.SUBMISSION_GROUPS.keys(): raise ValueError("Invalid group") return download(group, coordinates)
def handleCloseVersions(self,json): version = json.version depCves = json.cves response = self.getClosestVersions(json) response = response["response"] numFound = response["numFound"] if(int(numFound) == 0 ): return 'Error - could not find dependency in maven central repo' elif(int(numFound) == 1): return 'There is only one version available, nothing to be done' else: deps = response["docs"] noOfDeps = len(deps) posOfDep = -1 for i in xrange(0,noOfDeps): if(deps[i]["v"] == version): posOfDep = i break if posOfDep == -1: return 'Error - cannot find current version number in maven search' else: if posOfDep+1 >= 0: for i in xrange(-1,2): if (i != 0): info = dict(groupId=str(deps[i]["g"]),artifactId=str(deps[i]["a"]),version=str(deps[posOfDep+i]["v"])) javamanager = JavaManager() artifact = javamanager.make_artifact(info) for repo in javamanager.repos: uri = repo.get_artifact_uri(artifact, 'jar') sha1 = repo.download_check_sum('sha1', uri) count = Submission.objects(entry=sha1).count(); if(str(count).isdigit()): if(float(count) != 1): #submit from submissions downloadLocation = download('java',info) return submit('similaritySearch', downloadLocation[0][0], group="java", filename=downloadLocation[0][0][downloadLocation[0][0].rindex("/")+1:], suffix=True, cves=depCves, metadata=info, entry=False, approval='REQUESTED') return "adding the new dependency" else: continue else: return 'No available dependencies in the maven central repository'