Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if not all(['repository' in x and 'branches' in x for x in self.targets]):
raise ValueError('"repository" and "branches" are mandatory in "sensor.target"')
if not all([len(x['repository'].split('/')) == 2 for x in self.targets]):
raise ValueError('Invalid repository name is specified in the "targets" parameter')
self.TIMEOUT_SECONDS = sensor_config.get('timeout', self.TIMEOUT_SECONDS)
# initialize global parameter
self.commits = {}
self.service_type = sensor_config.get('bitbucket_type')
if self.service_type == 'server':
# initialization for BitBucket Server
self.client = stashy.connect(sensor_config.get('bitbucket_server_url'),
self._config.get('username'),
self._config.get('password'))
self._init_server_last_commit()
elif self.service_type == 'cloud':
# initialization for BitBucket Cloud
self.client = Client(BasicAuthenticator(
self._config.get('username'),
self._config.get('password'),
self._config.get('email'),
))
self._init_cloud_last_commit()
else:
raise ValueError('specified bitbucket type (%s) is not supported' % self.service_type)
self._increment_event_id()
logging.captureWarnings(True)
logging.basicConfig(format=('%(asctime)s - %(name)s - %(levelname)s - ' +
'%(message)s'), level=log_level)
# Setup authenticated GitLab and Stash instances
if args.token:
git = GitLab(args.gitlab_url, token=args.token,
verify_ssl=args.verify_ssl)
else:
git = None
if not args.username:
print('Username: ', end="", file=sys.stderr)
args.username = input('').strip()
if not args.password:
args.password = getpass.getpass('Password: ')
stash = stashy.connect(args.stash_url, args.username, args.password)
if git is None:
git = GitLab(args.gitlab_url, verify_ssl=args.verify_ssl)
git.login(args.username, args.password)
print('Retrieving existing Stash projects...', end="", file=sys.stderr)
sys.stderr.flush()
key_set = {proj['key'] for proj in stash.projects}
stash_project_names = {proj['name'] for proj in stash.projects}
names_to_keys = {proj['name']: proj['key'] for proj in stash.projects}
print('done', file=sys.stderr)
sys.stderr.flush()
updated_projects = set()
repo_to_slugs = {}
failed_to_clone = set()
cwd = os.getcwd()
transfer_count = 0
def connect(url, username, password):
"""
Return a connected Bitbucket session
"""
bb_session = stashy.connect(url, username, password)
logger.info("Connected to: %s as %s", url, username)
return bb_session
def connect_to_bitbucket(server_url):
username = getpass.getuser()
password = getpass.getpass('%s Password: ' % (server_url))
return stashy.connect(server_url, username, password)