From b613ac4b89b756f3a7880d7ddc268f2d9baa303d Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 29 Jan 2021 17:17:51 +0000 Subject: [PATCH] Fix default branch detection --- app/tasks/importtasks.py | 26 ++++++++++++-------------- requirements.lock.txt | 2 +- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index b05b741..dd5731f 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -1,5 +1,5 @@ # ContentDB -# Copyright (C) 2018 rubenwardy +# Copyright (C) 2018-21 rubenwardy # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -88,22 +88,20 @@ def clone_repo(urlstr, ref=None, recursive=False): .strip()) -def get_commit_hash(urlstr, ref_name=None): - gitDir = os.path.join(tempfile.gettempdir(), randomString(10)) - gitUrl = generateGitURL(urlstr) - assert ref_name != "" - - repo = git.Repo.init(gitDir) - origin: git.Remote = repo.create_remote("origin", url=gitUrl) - assert origin.exists() - origin.fetch() - +def get_commit_hash(git_url, ref_name=None): if ref_name: - ref: git.Reference = origin.refs[ref_name] + ref_name = "refs/heads/" + ref_name else: - ref: git.Reference = origin.refs[0] + ref_name = "HEAD" - return ref.commit.hexsha + g = git.cmd.Git() + + remote_refs = {} + for ref in g.ls_remote(git_url).split('\n'): + hash_ref_list = ref.split('\t') + remote_refs[hash_ref_list[1]] = hash_ref_list[0] + + return remote_refs.get(ref_name) @celery.task() diff --git a/requirements.lock.txt b/requirements.lock.txt index 89d7806..5ef9b88 100644 --- a/requirements.lock.txt +++ b/requirements.lock.txt @@ -31,7 +31,7 @@ future==0.18.2 git-archive-all==1.21.0 gitdb==4.0.5 GitHub-Flask==3.2.0 -GitPython==3.1.7 +GitPython==3.1.9 gunicorn==20.0.4 idna==2.10 importlib-metadata==1.7.0