def create_ogr_service( service_type: str, service_url: Optional[str] = None, token: Optional[str] = None, github_app_id: Optional[str] = None, github_private_key_path: Optional[str] = None, ): """Create a new OGR service for interacting with remote GitForges.""" service_type = service_type.upper() if service_type == "GITHUB": ogr_service = GithubService( token=token, github_app_id=os.getenv("GITHUB_APP_ID"), github_private_key_path=os.getenv("GITHUB_PRIVATE_KEY_PATH"), ) elif service_type == "GITLAB": ogr_service = GitlabService(token=token, instance_url=service_url) elif service_type == "PAGURE": ogr_service = PagureService( token=token, instance_url=service_url, ) else: raise NotImplementedError(f"Kebechet cannot act on {service_type}") return ogr_service
def mock_config(self): service_config = ServiceConfig() service_config.services = { GithubService(token="token"), GitlabService(token="token"), } service_config.dry_run = False service_config.github_requests_log_path = "/path" ServiceConfig.service_config = service_config
def _init_helper(self): """Handle the initialization or reinitialization of OGR object.""" if self.service_type == ServiceType.GITHUB: if self.service_url: self.service = GithubService(self.token, instance_url=self.service_url) else: self.service = GithubService(self.token) self.repository = self.service.get_project( repo=self.repo, namespace=self.namespace) elif self.service_type == ServiceType.GITLAB: if self.service_url: self.service = GitlabService(self.token, instance_url=self.service_url) else: self.service = GitlabService(self.token) self.repository = self.service.get_project( repo=self.repo, namespace=self.namespace) else: raise NotImplementedError
def ogr_service(cls) -> BaseGitService: if cls.SERVICE_NAME == "GITHUB": return GithubService( token=cls.AUTH_TOKEN, github_app_id=cls.GITHUB_APP_ID, github_app_private_key_path=cls.GITHUB_APP_PRIVATE_KEY_PATH, ) elif cls.SERVICE_NAME == "GITLAB": return GitlabService(token=cls.AUTH_TOKEN, instance_url=cls.SERVICE_URL) elif cls.SERVICE_NAME == "PAGURE": return PagureService(token=cls.AUTH_TOKEN, instance_url=cls.SERVICE_URL) else: raise NotImplementedError( f"Varangian cannot run on {cls.SERVICE_NAME} git services.")
def setUp(self): super().setUp() self.token = os.environ.get("GITLAB_TOKEN") if PersistentObjectStorage().mode == StorageMode.write and not self.token: raise EnvironmentError( "You are in Requre write mode, please set GITLAB_TOKEN env variables" ) elif not self.token: self.token = "some_token" self.service = GitlabService( token=self.token, instance_url="https://gitlab.com", ssl_verify=True ) self.project = self.service.get_project( repo="ogr-tests", namespace="packit-service" )
def _ogr_service_from_dict(service_dict: Dict[str, str]) -> BaseGitService: if service_dict["service_name"] == "GITHUB": return GithubService( token=service_dict.get("auth_token"), github_app_id=service_dict.get("github_app_id"), github_app_private_key_path=service_dict.get( "github_app_private_key_path"), ) elif service_dict["service_name"] == "GITLAB": return GitlabService(token=service_dict.get("auth_token"), instance_url=service_dict.get("service_url")) elif service_dict["service_name"] == "PAGURE": return PagureService(token=service_dict.get("auth_token"), instance_url=service_dict.get("service_url")) else: raise NotImplementedError( f"Varangian cannot run on {service_dict['service_name']} git services." )
def setUp(self): self.token = os.environ.get("GITLAB_TOKEN") test_name = self.id() or "all" persistent_data_file = os.path.join( PERSISTENT_DATA_PREFIX, f"test_gitlab_data_{test_name}.yaml") PersistentObjectStorage().storage_file = persistent_data_file if PersistentObjectStorage( ).mode == StorageMode.write and not self.token: raise EnvironmentError("please set GITLAB_TOKEN env variables") elif not self.token: self.token = "some_token" self.service = GitlabService(token=self.token, instance_url="https://gitlab.com", ssl_verify=True) self.project = self.service.get_project(repo="ogr-tests", namespace="packit-service")
def setUp(self): self.token = os.environ.get("GITLAB_TOKEN") self.user = os.environ.get("GITLAB_USER") test_name = self.id() or "all" persistent_data_file = os.path.join( PERSISTENT_DATA_PREFIX, f"test_gitlab_data_{test_name}.yaml" ) PersistentObjectStorage().storage_file = persistent_data_file if PersistentObjectStorage().is_write_mode and ( not self.user or not self.token ): raise EnvironmentError("please set GITLAB_TOKEN GITLAB_USER env variables") else: self.token = "some_token" self.service = GitlabService( token=self.token, url="https://gitlab.gnome.org", ssl_verify=True ) self.project = self.service.get_project( repo="testing-ogr-repo", namespace="lbarcziova" )
def service(self): if not self._service: self._service = GitlabService( token=self.token, instance_url="https://gitlab.com", ssl_verify=True ) return self._service