Module ogr.services.pagure.user
Expand source code
# Copyright Contributors to the Packit project.
# SPDX-License-Identifier: MIT
from ogr.exceptions import OperationNotSupported
from ogr.services import pagure as ogr_pagure
from ogr.services.base import BaseGitUser
from ogr.services.pagure.project import PagureProject
class PagureUser(BaseGitUser):
service: "ogr_pagure.PagureService"
def __init__(self, service: "ogr_pagure.PagureService") -> None:
super().__init__(service=service)
def __str__(self) -> str:
return f'PagureUser(username="{self.get_username()}")'
def get_username(self) -> str:
request_url = self.service.get_api_url("-", "whoami")
return_value = self.service.call_api(url=request_url, method="POST", data={})
return return_value["username"]
def get_projects(self) -> list["PagureProject"]:
user_url = self.service.get_api_url("user", self.get_username())
raw_projects = self.service.call_api(user_url)["repos"]
return [
PagureProject(
repo=project["name"],
namespace=project["namespace"],
service=self.service,
)
for project in raw_projects
]
def get_forks(self) -> list["PagureProject"]:
user_url = self.service.get_api_url("user", self.get_username())
raw_forks = self.service.call_api(user_url)["forks"]
return [
PagureProject(
repo=fork["name"],
namespace=fork["namespace"],
service=self.service,
is_fork=True,
)
for fork in raw_forks
]
def get_email(self) -> str:
# Not supported by Pagure
raise OperationNotSupported(
"Pagure does not support retrieving of user's email address",
)
Classes
class PagureUser (service: ogr_pagure.PagureService)
-
Represents currently authenticated user through service.
Expand source code
class PagureUser(BaseGitUser): service: "ogr_pagure.PagureService" def __init__(self, service: "ogr_pagure.PagureService") -> None: super().__init__(service=service) def __str__(self) -> str: return f'PagureUser(username="{self.get_username()}")' def get_username(self) -> str: request_url = self.service.get_api_url("-", "whoami") return_value = self.service.call_api(url=request_url, method="POST", data={}) return return_value["username"] def get_projects(self) -> list["PagureProject"]: user_url = self.service.get_api_url("user", self.get_username()) raw_projects = self.service.call_api(user_url)["repos"] return [ PagureProject( repo=project["name"], namespace=project["namespace"], service=self.service, ) for project in raw_projects ] def get_forks(self) -> list["PagureProject"]: user_url = self.service.get_api_url("user", self.get_username()) raw_forks = self.service.call_api(user_url)["forks"] return [ PagureProject( repo=fork["name"], namespace=fork["namespace"], service=self.service, is_fork=True, ) for fork in raw_forks ] def get_email(self) -> str: # Not supported by Pagure raise OperationNotSupported( "Pagure does not support retrieving of user's email address", )
Ancestors
Class variables
var service : PagureService
Inherited members