[PATCH] Extract branch info from Vcs-Git, ignore for now
Closes: #886372
---
distro_tracker/core/tests/tests_utils.py | 13 +++++++++++++
distro_tracker/core/utils/packages.py | 8 +++++++-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/distro_tracker/core/tests/tests_utils.py b/distro_tracker/core/tests/tests_utils.py
index 6ad6f8a..27ec1ac 100644
--- a/distro_tracker/core/tests/tests_utils.py
+++ b/distro_tracker/core/tests/tests_utils.py
@@ -716,6 +716,19 @@ class PackageUtilsTests(SimpleTestCase):
extract_vcs_information(d)
)
+ # Git with branch info
+ d = {
+ 'Vcs-Git': vcs_url + ' -b some-branch'
+ }
+ self.assertDictEqual(
+ {
+ 'type': 'git',
+ 'url': vcs_url,
+ 'branch': 'some-branch',
+ },
+ extract_vcs_information(d)
+ )
+
# Empty dict
self.assertDictEqual({}, extract_vcs_information({}))
# No vcs information in the dict
diff --git a/distro_tracker/core/utils/packages.py b/distro_tracker/core/utils/packages.py
index bf9adc3..66004de 100644
--- a/distro_tracker/core/utils/packages.py
+++ b/distro_tracker/core/utils/packages.py
@@ -21,6 +21,7 @@ import os
import apt
import shutil
import apt_pkg
+import re
import subprocess
import tarfile
@@ -55,7 +56,7 @@ def extract_vcs_information(stanza):
:type stanza: dict
:returns: VCS information regarding the package. Contains the following
- keys: type[, browser, url]
+ keys: type[, browser, url, branch]
:rtype: dict
"""
vcs = {}
@@ -66,6 +67,11 @@ def extract_vcs_information(stanza):
elif key.startswith('vcs-'):
vcs['type'] = key[4:]
vcs['url'] = value
+ if vcs['type'] == 'git':
+ match = re.match(r'(?P<url>.*?)\s+-b\s*(?P<branch>\S+)', value)
+ if match:
+ vcs['url'] = match.group('url')
+ vcs['branch'] = match.group('branch')
return vcs
--
2.14.1
Reply to: