From 8b11e098dbf9b256bde6fe97b7ba822971fe097d Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 17 Sep 2025 15:02:31 +0200 Subject: [PATCH] checkupdates: fix get_upstream_main_branch() for Debian/forky ``` FAIL: test_get_upstream_main_branch (tests.test_checkupdates.CheckupdatesTest.test_get_upstream_main_branch) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builds/fdroid/fdroidserver/tests/test_checkupdates.py", line 509, in test_get_upstream_main_branch self.assertEqual( ~~~~~~~~~~~~~~~~^ f'upstream/{testvalue}', ^^^^^^^^^^^^^^^^^^^^^^^^ branch, ^^^^^^^ f'The default branch should be called {testvalue}!', ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ AssertionError: 'upstream/foo' != 'upstream/main' - upstream/foo + upstream/main : The default branch should be called foo! ``` --- fdroidserver/checkupdates.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/fdroidserver/checkupdates.py b/fdroidserver/checkupdates.py index 3cf7a821..e7945910 100644 --- a/fdroidserver/checkupdates.py +++ b/fdroidserver/checkupdates.py @@ -691,11 +691,15 @@ def get_last_build_from_app(app: metadata.App) -> metadata.Build: def get_upstream_main_branch(git_repo): - if len(git_repo.remotes.upstream.refs) == 1: - return git_repo.remotes.upstream.refs[0].name - for name in ('main', 'master'): - if name in git_repo.remotes.upstream.refs: - return f'upstream/{name}' + refs = list() + for ref in git_repo.remotes.upstream.refs: + if ref.name != 'upstream/HEAD': + refs.append(ref.name) + if len(refs) == 1: + return refs[0] + for name in ('upstream/main', 'upstream/master'): + if name in refs: + return name try: with git_repo.config_reader() as reader: return 'upstream/%s' % reader.get_value('init', 'defaultBranch')