def is_github_url_candidate(url): if url is None: return False components = uri_parse(url.lower()) if components.netloc == 'github.com': return True return False
def _get_repo_name_from_repo_url(repository_url): """ Should be called with a valid github or azure repo url returns owner/reponame for github repos, repo_name for azure repo type """ repo_type = try_get_repository_type(repository_url) if repo_type == _GITHUB_REPO_TYPE: parsed_url = uri_parse(repository_url) logger.debug('Parsing GitHub url: %s', parsed_url) if parsed_url.scheme == 'https' and parsed_url.netloc == 'github.com': logger.debug('Parsing path in the url to find repo id.') stripped_path = parsed_url.path.strip('/') if stripped_path.endswith('.git'): stripped_path = stripped_path[:-4] return stripped_path if repo_type == _AZURE_GIT_REPO_TYPE: parsed_list = repository_url.split('/') index = 0 for item in parsed_list: if ('visualstudio.com' in item or 'dev.azure.com' in item) and len(parsed_list) > index + 4: return parsed_list[index + 4] index = index + 1 raise CLIError('Could not parse repository url.')