From fc64bca95b27cf82e7c185b3a1723b326b0c20e7 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Thu, 30 Apr 2020 23:50:28 +0200 Subject: gitlab: update.py: use the /refs endpoint It seems the atom feed now needs authentication. Use the /refs endpoint, which is used for the switch branch/tag dropdown. It doesn't show all records, but has some pagination, but works well enough for now. --- pkgs/applications/version-management/gitlab/update.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'pkgs/applications/version-management/gitlab') diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py index a128fd5bc409..4c7bcefacb0d 100755 --- a/pkgs/applications/version-management/gitlab/update.py +++ b/pkgs/applications/version-management/gitlab/update.py @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#! nix-shell -i python3 -p bundix bundler common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log vgo2nix yarn2nix +#! nix-shell -i python3 -p bundix bundler common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.click python3Packages.click-log vgo2nix yarn2nix import click import click_log @@ -13,7 +13,6 @@ from distutils.version import LooseVersion from typing import Iterable import requests -from xml.etree import ElementTree logger = logging.getLogger(__name__) @@ -30,12 +29,11 @@ class GitLabRepo: @property def tags(self) -> Iterable[str]: - r = requests.get(self.url + "/tags?format=atom", stream=True) + r = requests.get(self.url + "/refs?sort=updated_desc&ref=master").json() + tags = r.get("Tags", []) - tree = ElementTree.fromstring(r.content) - versions = [e.text for e in tree.findall('{http://www.w3.org/2005/Atom}entry/{http://www.w3.org/2005/Atom}title')] # filter out versions not matching version_regex - versions = list(filter(self.version_regex.match, versions)) + versions = list(filter(self.version_regex.match, tags)) # sort, but ignore v and -ee for sorting comparisons versions.sort(key=lambda x: LooseVersion(x.replace("v", "").replace("-ee", "")), reverse=True) -- cgit 1.4.1