Loading b5/lib/skeleton.py +15 −13 Original line number Diff line number Diff line Loading @@ -5,27 +5,29 @@ from urllib.error import URLError class Skeleton: NON_URL_SKELETON = re.compile('^[A-Za-z0-9_-]+$') def __init__(self, skeleton): self._skeleton = skeleton def __init__(self, skeleton_identified): self._skeleton_identified = skeleton_identified def get_url(self): if not self._url: non_url_skeleton = re.compile('^[A-Za-z0-9_-]+$') if non_url_skeleton.match(self._skeleton): self._url = 'https://git.team23.de/build/b5-skel-{skeleton}.git'.format(skeleton=self._skeleton) '''if it's not a public repository, clone using ssh in order to allow ssh key file auth''' if not self.__is_public_repository(self._url): self._url = 'git@git.team23.de:build/b5-skel-{skeleton}.git'.format(skeleton=self._skeleton) else: self._url = self._skeleton try: return self._url except AttributeError: skeleton_url = self._skeleton_identified if self.NON_URL_SKELETON.match(skeleton_url): skeleton_url = 'https://git.team23.de/build/b5-skel-{skeleton}.git'.format(skeleton=self._skeleton_identified) # If it's not a public repository, clone using ssh in order to allow ssh key file auth if not self.__is_public_repository(skeleton_url): skeleton_url = 'git@git.team23.de:build/b5-skel-{skeleton}.git'.format(skeleton=self._skeleton_identified) self._url = skeleton_url return self._url def __is_public_repository(self, url): request = urllib.request.urlopen(self._url) request = urllib.request.urlopen(url) request_url = request.geturl() if self._url == request_url or os.path.splitext(self._url)[0] == request_url: if url == request_url or url.rsplit('.', 1)[0] == request_url: try: if request.getcode() == 200: return True Loading Loading
b5/lib/skeleton.py +15 −13 Original line number Diff line number Diff line Loading @@ -5,27 +5,29 @@ from urllib.error import URLError class Skeleton: NON_URL_SKELETON = re.compile('^[A-Za-z0-9_-]+$') def __init__(self, skeleton): self._skeleton = skeleton def __init__(self, skeleton_identified): self._skeleton_identified = skeleton_identified def get_url(self): if not self._url: non_url_skeleton = re.compile('^[A-Za-z0-9_-]+$') if non_url_skeleton.match(self._skeleton): self._url = 'https://git.team23.de/build/b5-skel-{skeleton}.git'.format(skeleton=self._skeleton) '''if it's not a public repository, clone using ssh in order to allow ssh key file auth''' if not self.__is_public_repository(self._url): self._url = 'git@git.team23.de:build/b5-skel-{skeleton}.git'.format(skeleton=self._skeleton) else: self._url = self._skeleton try: return self._url except AttributeError: skeleton_url = self._skeleton_identified if self.NON_URL_SKELETON.match(skeleton_url): skeleton_url = 'https://git.team23.de/build/b5-skel-{skeleton}.git'.format(skeleton=self._skeleton_identified) # If it's not a public repository, clone using ssh in order to allow ssh key file auth if not self.__is_public_repository(skeleton_url): skeleton_url = 'git@git.team23.de:build/b5-skel-{skeleton}.git'.format(skeleton=self._skeleton_identified) self._url = skeleton_url return self._url def __is_public_repository(self, url): request = urllib.request.urlopen(self._url) request = urllib.request.urlopen(url) request_url = request.geturl() if self._url == request_url or os.path.splitext(self._url)[0] == request_url: if url == request_url or url.rsplit('.', 1)[0] == request_url: try: if request.getcode() == 200: return True Loading