Exemplo n.º 1
0
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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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.")
Exemplo n.º 5
0
    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"
        )
Exemplo n.º 6
0
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."
        )
Exemplo n.º 7
0
    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")
Exemplo n.º 8
0
    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"
        )
Exemplo n.º 9
0
Arquivo: base.py Projeto: packit/ogr
 def service(self):
     if not self._service:
         self._service = GitlabService(
             token=self.token, instance_url="https://gitlab.com", ssl_verify=True
         )
     return self._service