Module ogr.services.forgejo.service
Classes
class ForgejoService (instance_url: str = 'https://codeberg.org',
api_key: str | None = None,
**kwargs)-
Expand source code
@use_for_service("forgejo") @use_for_service("codeberg.org") class ForgejoService(BaseGitService): version = "/api/v1" def __init__( self, instance_url: str = "https://codeberg.org", api_key: Optional[str] = None, **kwargs, ): super().__init__() self.instance_url = instance_url + self.version self._token = f"token {api_key}" self._api = None @cached_property def api(self) -> PyforgejoApi: return PyforgejoApi(base_url=self.instance_url, api_key=self._token) def get_project( # type: ignore[override] self, repo: str, namespace: str, **kwargs, ) -> "ForgejoProject": return ForgejoProject( repo=repo, namespace=namespace, service=self, **kwargs, ) @property def user(self) -> GitUser: return ForgejoUser(self) def project_create( self, repo: str, namespace: Optional[str] = None, description: Optional[str] = None, ) -> "ForgejoProject": if namespace: new_repo = self.api.organization.create_org_repo( org=namespace, name=repo, description=description, ) else: new_repo = self.api.repository.create_current_user_repo( name=repo, description=description, ) return ForgejoProject( repo=repo, namespace=namespace or self.user.get_username(), service=self, github_repo=new_repo, ) def get_project_from_url(self, url: str) -> "ForgejoProject": parsed_url = urlparse(url) path_parts = parsed_url.path.strip("/").split("/") if len(path_parts) < 2: raise OgrException(f"Invalid Forgejo URL: {url}") namespace = path_parts[0] repo = path_parts[1] return self.get_project(repo=repo, namespace=namespace) def get_rate_limit_remaining(self) -> Optional[int]: """ There is no way to check rate limit status from Forgejo API. """ return NoneAttributes
instance_url:str- URL of the git forge instance.
Ancestors
Class variables
var version
Instance variables
var api : pyforgejo.client.PyforgejoApi-
Expand source code
@cached_property def api(self) -> PyforgejoApi: return PyforgejoApi(base_url=self.instance_url, api_key=self._token)
Methods
def get_rate_limit_remaining(self) ‑> int | None-
Expand source code
def get_rate_limit_remaining(self) -> Optional[int]: """ There is no way to check rate limit status from Forgejo API. """ return NoneThere is no way to check rate limit status from Forgejo API.
Inherited members