68 lines
2.5 KiB
Python
68 lines
2.5 KiB
Python
import os
|
|
import requests
|
|
import wget
|
|
from perceval.backends.core.git import Git
|
|
from git import Repo
|
|
import shutil
|
|
|
|
|
|
def debian_vcs_query(debian_vcs_link):
|
|
upstream_repo_link = ""
|
|
project_name = debian_vcs_link.split("/")[-1]
|
|
output_directory = "/data/users/mgaughan/tmp1/" + project_name
|
|
print(output_directory)
|
|
#url = debian_vcs_link + '/-/blob/master/debian/upstream/metadata'
|
|
try:
|
|
Repo.clone_from(debian_vcs_link, output_directory)
|
|
except:
|
|
print("error cloning")
|
|
return upstream_repo_link
|
|
try:
|
|
upstream_metadata = open(output_directory + "/debian/upstream/metadata", "r").read().split("\n")
|
|
upstream_repo_array = upstream_metadata[3].split(":")[-2:]
|
|
upstream_repo_link = ":".join(upstream_repo_array)
|
|
print(upstream_repo_link)
|
|
except:
|
|
print("no file!")
|
|
upstream_repo_link = ""
|
|
#filename = wget.download(url, out=output_directory)
|
|
#print(type(filename))
|
|
shutil.rmtree(output_directory, ignore_errors=True)
|
|
return upstream_repo_link
|
|
|
|
|
|
def debian_query(package_name):
|
|
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
|
|
first_api_url = "https://sources.debian.org/api/src/" + package_name
|
|
try:
|
|
first_response = requests.get(url = first_api_url, headers=headers)
|
|
first_response_dict = first_response.json()
|
|
except:
|
|
print('error with the first debian request')
|
|
first_response_dict = {}
|
|
return ("")
|
|
if first_response_dict == {'error': 404}:
|
|
print('not found in debian system')
|
|
return ("")
|
|
#print(first_response_dict)
|
|
most_recent_package_version = first_response_dict['versions'][0]['version']
|
|
#print(first_response_dict['versions'][0]['version'])
|
|
second_api_url = "https://sources.debian.org/api/info/package/" + package_name + "/" + most_recent_package_version + "/"
|
|
try:
|
|
second_response = requests.get(url = second_api_url, headers=headers)
|
|
second_response_dict = second_response.json()
|
|
except:
|
|
print('error with the second debian request')
|
|
second_response_dict = {}
|
|
return ("")
|
|
if 'vcs_browser' not in second_response_dict['pkg_infos'].keys():
|
|
print('no vcs link')
|
|
return ("")
|
|
print(second_response_dict)
|
|
print(second_response_dict['pkg_infos']['vcs_browser'])
|
|
return second_response_dict['pkg_infos']['vcs_browser']
|
|
|
|
|
|
if __name__ == "__main__":
|
|
#main()
|
|
debian_vcs_query("https://salsa.debian.org/debian/0xffff") |