From 2f3e8444aba7a5702275d3147b4c3f89cc579408 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Wed, 18 Dec 2019 21:14:44 +0800 Subject: [PATCH 1/3] [Fix] Commit is empty --- list_builder.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/list_builder.py b/list_builder.py index 355a8f28..23e39b7a 100755 --- a/list_builder.py +++ b/list_builder.py @@ -164,7 +164,7 @@ for app, info in apps_list.items(): elif forge_site == "framagit.org": forge_type = "gitlab" elif forge_site == "code.ffdn.org": - forge_type = "gogs" + forge_type = "gitlab" elif forge_site == "code.antopie.org": forge_type = "gitea" else: @@ -284,8 +284,25 @@ for app, info in apps_list.items(): commit_date = parse(commit["authored_date"]) timestamp = int(time.mktime(commit_date.timetuple())) + elif forge_type == "gitea": + + raw_url = 'https://%s/%s/%s/raw/commit/%s/manifest.json' % (forge_site, owner, repo, app_rev) + manifest = get_json(raw_url, verify=True) + if manifest is None: + error("Manifest is empty for app %s ?" % app) + continue + + api_url = 'https://%s/api/v1/repos/%s/%s/git/commits/%s' % (forge_site, owner, repo, app_rev) + info2 = get_json(api_url) + if info2 is None: + error("Commit info is empty for app %s ?" % app) + continue + + commit_date = parse(info2['commit']['author']['date']) + timestamp = int(time.mktime(commit_date.timetuple())) + # Gogs-type forge - elif forge_type in ["gogs", "gitea"]: + elif forge_type == "gogs": if not app_url.endswith('.git'): app_url += ".git" From 71a64b4bbf773c8a0bfda42af9d75b7dee50acbd Mon Sep 17 00:00:00 2001 From: Kay0u Date: Tue, 14 Jan 2020 23:58:54 +0700 Subject: [PATCH 2/3] merge manifest retrieval --- list_builder.py | 37 +++++++------------------------------ 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/list_builder.py b/list_builder.py index 23e39b7a..f89ee912 100755 --- a/list_builder.py +++ b/list_builder.py @@ -242,18 +242,15 @@ for app, info in apps_list.items(): print("Revision changed ! Updating...") + raw_url = '%s/raw/%s/manifest.json' % (app_url, app_rev) + + manifest = get_json(raw_url, verify=True) + if manifest is None: + error("Manifest is empty for app %s ?" % app) + continue + # Hosted on GitHub if forge_type == "github": - - raw_url = 'https://raw.githubusercontent.com/%s/%s/%s/manifest.json' % ( - owner, repo, app_rev - ) - - manifest = get_json(raw_url) - if manifest is None: - error("Manifest is empty for app %s ?" % app) - continue - api_url = 'https://api.github.com/repos/%s/%s/commits/%s' % ( owner, repo, app_rev ) @@ -268,13 +265,6 @@ for app, info in apps_list.items(): # Gitlab-type forge elif forge_type == "gitlab": - - raw_url = '%s/raw/%s/manifest.json' % (app_url, app_rev) - manifest = get_json(raw_url, verify=True) - if manifest is None: - error("Manifest is empty for app %s ?" % app) - continue - api_url = 'https://%s/api/v4/projects/%s%%2F%s/repository/commits/%s' % (forge_site, owner, repo, app_rev) commit = get_json(api_url) if commit is None: @@ -285,13 +275,6 @@ for app, info in apps_list.items(): timestamp = int(time.mktime(commit_date.timetuple())) elif forge_type == "gitea": - - raw_url = 'https://%s/%s/%s/raw/commit/%s/manifest.json' % (forge_site, owner, repo, app_rev) - manifest = get_json(raw_url, verify=True) - if manifest is None: - error("Manifest is empty for app %s ?" % app) - continue - api_url = 'https://%s/api/v1/repos/%s/%s/git/commits/%s' % (forge_site, owner, repo, app_rev) info2 = get_json(api_url) if info2 is None: @@ -306,12 +289,6 @@ for app, info in apps_list.items(): if not app_url.endswith('.git'): app_url += ".git" - raw_url = '%s/raw/%s/manifest.json' % (app_url[:-4], app_rev) - manifest = get_json(raw_url, verify=False) - if manifest is None: - error("Manifest is empty for app %s ?" % app) - continue - obj_url = '%s/objects/%s/%s' % ( app_url, app_rev[0:2], app_rev[2:] ) From 803fc040a2eb0585dec6ed9a6eeb56402b936212 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Wed, 15 Jan 2020 00:41:54 +0700 Subject: [PATCH 3/3] readable urls --- list_builder.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/list_builder.py b/list_builder.py index f89ee912..e1fc7ad6 100755 --- a/list_builder.py +++ b/list_builder.py @@ -242,7 +242,9 @@ for app, info in apps_list.items(): print("Revision changed ! Updating...") - raw_url = '%s/raw/%s/manifest.json' % (app_url, app_rev) + raw_url = 'https://%(forge_site)s/%(owner)s/%(repo)s/raw/%(app_rev)s/manifest.json' % { + "forge_site": forge_site, "owner": owner, "repo": repo, "app_rev": app_rev + } manifest = get_json(raw_url, verify=True) if manifest is None: @@ -251,9 +253,9 @@ for app, info in apps_list.items(): # Hosted on GitHub if forge_type == "github": - api_url = 'https://api.github.com/repos/%s/%s/commits/%s' % ( - owner, repo, app_rev - ) + api_url = 'https://api.github.com/repos/%(owner)s/%(repo)s/commits/%(app_rev)s' % { + "owner": owner, "repo": repo, "app_rev": app_rev + } info2 = get_json(api_url) if info2 is None: @@ -265,7 +267,9 @@ for app, info in apps_list.items(): # Gitlab-type forge elif forge_type == "gitlab": - api_url = 'https://%s/api/v4/projects/%s%%2F%s/repository/commits/%s' % (forge_site, owner, repo, app_rev) + api_url = 'https://%(forge_site)s/api/v4/projects/%(owner)s%%2F%(repo)s/repository/commits/%(app_rev)s' % { + "forge_site": forge_site, "owner": owner, "repo": repo, "app_rev": app_rev + } commit = get_json(api_url) if commit is None: error("Commit info is empty for app %s ?" % app) @@ -275,7 +279,9 @@ for app, info in apps_list.items(): timestamp = int(time.mktime(commit_date.timetuple())) elif forge_type == "gitea": - api_url = 'https://%s/api/v1/repos/%s/%s/git/commits/%s' % (forge_site, owner, repo, app_rev) + api_url = 'https://%(forge_site)s/api/v1/repos/%(owner)s/%(repo)s/git/commits/%(app_rev)s' % { + "forge_site": forge_site, "owner": owner, "repo": repo, "app_rev": app_rev + } info2 = get_json(api_url) if info2 is None: error("Commit info is empty for app %s ?" % app)