Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def normalize_url_for_key(url):
components = uri_parse(url)
normalized_url = components.scheme.lower() + '://' + components.netloc.lower()
organization_name = components.path.lower()
if(organization_name and ('visualstudio.com' not in url.lower())):
organization_name = organization_name.split('/')[1]
normalized_url = normalized_url + '/' + organization_name
return normalized_url
def get_git_credentials(organization):
parse_result = uri_parse(organization)
protocol = parse_result.scheme
host = parse_result.netloc
standard_in = bytes('protocol={protocol}\nhost={host}'.format(protocol=protocol, host=host), 'utf-8')
try:
# pylint: disable=unexpected-keyword-arg
output = subprocess.check_output([_GIT_EXE, 'credential-manager', 'get'], input=standard_in)
except BaseException as ex: # pylint: disable=broad-except
logger.info('GitDetect: Could not detect git credentials for current working directory.')
logger.debug(ex, exc_info=True)
return None
if sys.stdout.encoding is not None:
lines = output.decode(sys.stdout.encoding).split('\n')
else:
lines = output.decode().split('\n')
properties = {}
for line in lines:
def get_vsts_info(remote_url):
from azext_devops.devops_sdk.v5_0.git.git_client import GitClient
from .services import _get_credentials
components = uri_parse(remote_url.lower())
if components.scheme == 'ssh':
# Convert to https url.
netloc = VstsGitUrlInfo.convert_ssh_netloc_to_https_netloc(components.netloc)
if netloc is None:
return None
# New ssh urls do not have _ssh so path is like org/project/repo
# We need to convert it into project/_git/repo/ or org/project/_git/repo for dev.azure.com urls
path = components.path
ssh_path_segment = '_ssh/'
ssh_path_segment_pos = components.path.find(ssh_path_segment)
if ssh_path_segment_pos < 0: # new ssh url
path_vals = components.path.strip('/').split('/')
if path_vals and len(path_vals) == 3:
if 'visualstudio.com' in netloc:
path = '{proj}/{git}/{repo}'.format(proj=path_vals[1], git='_git', repo=path_vals[2])
elif 'dev.azure.com' in netloc:
def is_vsts_url_candidate(url):
if url is None:
return False
components = uri_parse(url.lower())
if components.netloc == 'github.com':
return False
if components.path is not None \
and (components.path.find('/_git/') >= 0 or components.path.find('/_ssh/') >= 0 or
components.scheme == 'ssh'):
return True
return False