def main(): """Run APP.""" global CONFIG CONFIG = config.load_config(sys.argv[1]) log_format = ('%(asctime)s %(process)d %(levelname)s ' '%(name)s [-] %(message)s') logging.basicConfig(level=logging.DEBUG, format=log_format) APP.run(debug=True, host='0.0.0.0', port=8281)
def test_load_config_minimal(self): config_text = """ api_key: 1234567abc working_dir: /tmp meta_repo: Qiskit/qiskit repos: - name: qiskit/Qiskit-terra """ mock_open = unittest.mock.mock_open(read_data=config_text) with unittest.mock.patch('qiskit_bot.config.open', mock_open): res = config.load_config('fake_path') self.assertEqual('/tmp', res['working_dir']) self.assertEqual('1234567abc', res['api_key']) # Meta repo defaults to Qiskit/qiskit self.assertEqual('Qiskit/qiskit', res['meta_repo'])
def setup(): """Setup config.""" global CONFIG global META_REPO global WEBHOOK if not CONFIG: CONFIG = config.load_config('/etc/qiskit_bot.yaml') log_level = CONFIG.get('log_level', 'INFO') default_log_format = ('%(asctime)s: %(process)d %(levelname)s ' '%(name)s [-] %(message)s') log_format = CONFIG.get('log_format', default_log_format) logging.basicConfig(level=log_level, format=log_format) if not os.path.isdir(CONFIG['working_dir']): os.mkdir(CONFIG['working_dir']) if not os.path.isdir(os.path.join(CONFIG['working_dir'], 'lock')): os.mkdir(os.path.join(CONFIG['working_dir'], 'lock')) for repo in CONFIG['repos']: with fasteners.InterProcessLock( os.path.join(os.path.join(CONFIG['working_dir'], 'lock'), repo['name'])): REPOS[repo['name']] = repos.Repo(CONFIG['working_dir'], repo['name'], CONFIG['api_key'], repo_config=repo) # Load the meta repo with fasteners.InterProcessLock( os.path.join(os.path.join(CONFIG['working_dir'], 'lock'), CONFIG['meta_repo'])): repo_config = {'default_branch': CONFIG['meta_repo_default_branch']} META_REPO = repos.Repo(CONFIG['working_dir'], CONFIG['meta_repo'], CONFIG['api_key'], repo_config=repo_config) # NOTE(mtreinish): This is a workaround until there is a supported method # to set a secret post-init. See: # https://github.com/bloomberg/python-github-webhook/pull/19 if CONFIG.get('github_webhook_secret', None): secret = CONFIG['github_webhook_secret'] if not isinstance(secret, bytes): secret = secret.encode("utf-8") WEBHOOK._secret = secret