handlers/github: remove
* Mirror removed and api has very strict ratelimits making impractical to use. * https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f119d00dab0c3bd087faab36f1a44734772a9d75 Signed-off-by: Alfred Wingate <parona@protonmail.com>
This commit is contained in:
		| @@ -1,66 +0,0 @@ | |||||||
| # Copyright 2011 Corentin Chary <corentin.chary@gmail.com> |  | ||||||
| # Copyright 2020-2023 src_prepare group |  | ||||||
| # Distributed under the terms of the GNU General Public License v2 |  | ||||||
|  |  | ||||||
| import json |  | ||||||
| import re |  | ||||||
| import urllib.error |  | ||||||
| import urllib.parse |  | ||||||
| import urllib.request |  | ||||||
|  |  | ||||||
| import portage |  | ||||||
|  |  | ||||||
| from euscan import helpers, mangling, output |  | ||||||
|  |  | ||||||
| HANDLER_NAME = "github" |  | ||||||
| CONFIDENCE = 100 |  | ||||||
| PRIORITY = 90 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def can_handle(pkg, url=None): |  | ||||||
|     return url and url.startswith("mirror://github/") |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def guess_package(cp, url): |  | ||||||
|     match = re.search("^mirror://github/(.*?)/(.*?)/(.*)$", url) |  | ||||||
|  |  | ||||||
|     assert match |  | ||||||
|     return (match.group(1), match.group(2), match.group(3)) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def scan_url(pkg, url, options): |  | ||||||
|     "http://developer.github.com/v3/repos/downloads/" |  | ||||||
|  |  | ||||||
|     user, project, filename = guess_package(pkg.cpv, url) |  | ||||||
|  |  | ||||||
|     # find out where version is expected to be found |  | ||||||
|     cp, ver, rev = portage.pkgsplit(pkg.cpv) |  | ||||||
|     if ver not in filename: |  | ||||||
|         return |  | ||||||
|  |  | ||||||
|     # now create a filename-matching regexp |  | ||||||
|     # XXX: supposedly replace first with (?P<foo>...) |  | ||||||
|     # and remaining ones with (?P=foo) |  | ||||||
|     fnre = re.compile("^%s$" % re.escape(filename).replace(re.escape(ver), "(.*?)")) |  | ||||||
|  |  | ||||||
|     output.einfo( |  | ||||||
|         f"Using github API for: project={project} user={user} filename={filename}" |  | ||||||
|     ) |  | ||||||
|  |  | ||||||
|     dlreq = urllib.request.urlopen( |  | ||||||
|         f"https://api.github.com/repos/{user}/{project}/downloads" |  | ||||||
|     ) |  | ||||||
|     dls = json.load(dlreq) |  | ||||||
|  |  | ||||||
|     ret = [] |  | ||||||
|     for dl in dls: |  | ||||||
|         m = fnre.match(dl["name"]) |  | ||||||
|  |  | ||||||
|         if m: |  | ||||||
|             pv = mangling.mangle_version(m.group(1), options) |  | ||||||
|             if helpers.version_filtered(cp, ver, pv): |  | ||||||
|                 continue |  | ||||||
|  |  | ||||||
|             url = mangling.mangle_url(dl["html_url"], options) |  | ||||||
|             ret.append((url, pv, HANDLER_NAME, CONFIDENCE)) |  | ||||||
|     return ret |  | ||||||
		Reference in New Issue
	
	Block a user