Module ogr.abstract.git_service
Classes
class GitService (**_: Any)
-
Expand source code
class GitService(OgrAbstractClass): """ Attributes: instance_url (str): URL of the git forge instance. """ instance_url: Optional[str] = None def __init__(self, **_: Any) -> None: pass def __str__(self) -> str: return f"GitService(instance_url={self.instance_url})" def get_project(self, **kwargs: Any) -> "GitProject": """ Get the requested project. Args: namespace (str): Namespace of the project. user (str): Username of the project's owner. repo (str): Repository name. Returns: Object that represents git project. """ raise NotImplementedError def get_project_from_url(self, url: str) -> "GitProject": """ Args: url: URL of the git repository. Returns: Object that represents project from the parsed URL. """ repo_url = parse_git_repo(potential_url=url) if not repo_url: raise OgrException(f"Failed to find repository for url: {url}") return self.get_project(repo=repo_url.repo, namespace=repo_url.namespace) @_cached_property def hostname(self) -> Optional[str]: """Hostname of the service.""" raise NotImplementedError @property def user(self) -> "_abstract.GitUser": """User authenticated through the service.""" raise NotImplementedError def change_token(self, new_token: str) -> None: """ Change an API token. Only for the current instance and newly created projects. Args: new_token: New token to be set. """ raise NotImplementedError def set_auth_method(self, method: AuthMethod) -> None: """ Override the default auth method. Can be used when the service has more auth methods available. Args: method: the method identifier (a str name) """ raise NotImplementedError() def reset_auth_method(self) -> None: """ Set the auth method to the default one. """ raise NotImplementedError() def project_create( self, repo: str, namespace: Optional[str] = None, description: Optional[str] = None, ) -> "GitProject": """ Create new project. Args: repo: Name of the newly created project. namespace: Namespace of the newly created project. Defaults to currently authenticated user. description: Description of the newly created project. Returns: Object that represents newly created project. """ raise NotImplementedError() def list_projects( self, namespace: Optional[str] = None, user: Optional[str] = None, search_pattern: Optional[str] = None, language: Optional[str] = None, ) -> Union[list["GitProject"], Iterable["GitProject"]]: """ List projects for given criteria. Args: namespace: Namespace to list projects from. user: Login of the owner of the projects. search_pattern: Regular expression that repository name should match. language: Language to be present in the project, e.g. `"python"` or `"html"`. """ raise NotImplementedError def get_group(self, group_name: str): """ Get a group by name. """ raise NotImplementedError
Attributes
instance_url
:str
- URL of the git forge instance.
Ancestors
Subclasses
Class variables
var instance_url : str | None
Instance variables
var hostname : str | None
-
Expand source code
@_cached_property def hostname(self) -> Optional[str]: """Hostname of the service.""" raise NotImplementedError
Hostname of the service.
prop user : _abstract.GitUser
-
Expand source code
@property def user(self) -> "_abstract.GitUser": """User authenticated through the service.""" raise NotImplementedError
User authenticated through the service.
Methods
def change_token(self, new_token: str) ‑> None
-
Expand source code
def change_token(self, new_token: str) -> None: """ Change an API token. Only for the current instance and newly created projects. Args: new_token: New token to be set. """ raise NotImplementedError
Change an API token. Only for the current instance and newly created projects.
Args
new_token
- New token to be set.
def get_group(self, group_name: str)
-
Expand source code
def get_group(self, group_name: str): """ Get a group by name. """ raise NotImplementedError
Get a group by name.
def get_project(self, **kwargs: Any) ‑> GitProject
-
Expand source code
def get_project(self, **kwargs: Any) -> "GitProject": """ Get the requested project. Args: namespace (str): Namespace of the project. user (str): Username of the project's owner. repo (str): Repository name. Returns: Object that represents git project. """ raise NotImplementedError
Get the requested project.
Args
namespace
:str
- Namespace of the project.
user
:str
- Username of the project's owner.
repo
:str
- Repository name.
Returns
Object that represents git project.
def get_project_from_url(self, url: str) ‑> GitProject
-
Expand source code
def get_project_from_url(self, url: str) -> "GitProject": """ Args: url: URL of the git repository. Returns: Object that represents project from the parsed URL. """ repo_url = parse_git_repo(potential_url=url) if not repo_url: raise OgrException(f"Failed to find repository for url: {url}") return self.get_project(repo=repo_url.repo, namespace=repo_url.namespace)
Args
url
- URL of the git repository.
Returns
Object that represents project from the parsed URL.
def list_projects(self,
namespace: str | None = None,
user: str | None = None,
search_pattern: str | None = None,
language: str | None = None) ‑> list[GitProject] | Iterable[GitProject]-
Expand source code
def list_projects( self, namespace: Optional[str] = None, user: Optional[str] = None, search_pattern: Optional[str] = None, language: Optional[str] = None, ) -> Union[list["GitProject"], Iterable["GitProject"]]: """ List projects for given criteria. Args: namespace: Namespace to list projects from. user: Login of the owner of the projects. search_pattern: Regular expression that repository name should match. language: Language to be present in the project, e.g. `"python"` or `"html"`. """ raise NotImplementedError
List projects for given criteria.
Args
namespace
- Namespace to list projects from.
user
- Login of the owner of the projects.
search_pattern
- Regular expression that repository name should match.
language
- Language to be present in the project, e.g.
"python"
or"html"
.
def project_create(self, repo: str, namespace: str | None = None, description: str | None = None) ‑> GitProject
-
Expand source code
def project_create( self, repo: str, namespace: Optional[str] = None, description: Optional[str] = None, ) -> "GitProject": """ Create new project. Args: repo: Name of the newly created project. namespace: Namespace of the newly created project. Defaults to currently authenticated user. description: Description of the newly created project. Returns: Object that represents newly created project. """ raise NotImplementedError()
Create new project.
Args
repo
- Name of the newly created project.
namespace
-
Namespace of the newly created project.
Defaults to currently authenticated user.
description
- Description of the newly created project.
Returns
Object that represents newly created project.
def reset_auth_method(self) ‑> None
-
Expand source code
def reset_auth_method(self) -> None: """ Set the auth method to the default one. """ raise NotImplementedError()
Set the auth method to the default one.
def set_auth_method(self,
method: AuthMethod) ‑> None-
Expand source code
def set_auth_method(self, method: AuthMethod) -> None: """ Override the default auth method. Can be used when the service has more auth methods available. Args: method: the method identifier (a str name) """ raise NotImplementedError()
Override the default auth method. Can be used when the service has more auth methods available.
Args
method
- the method identifier (a str name)