fmn.backends.pagure module¶
- class fmn.backends.pagure.PagureAsyncProxy(base_url: str | None = None, **kwargs)[source]¶
Bases:
APIClient
Proxy for the FASJSON API endpoints used in FMN
- API_VERSION = '0'¶
- PROJECT_TOPIC_RE = re.compile('pagure\\.project\\.(?P<usergroup>user|group)\\.(?P<action>access\\.updated|added|removed)$')¶
- determine_next_page_params(url: str, params: dict, result: dict) tuple[str, dict] | tuple[None, None] [source]¶
Determine parameters for next page.
- Parameters:
url – API endpoint URL
params – Query parameters (can be modified)
result – Result dictionary of previous query
- Returns:
Tuple of (new URL, new params dict) or (None, None) if last page
- async get_group_projects(*, name: str, acl: PagureRole | None = None) list[dict[str, Any]] [source]¶
- async get_project_groups(*, project_path: str, roles: PagureRole = PagureRole.GROUP_ROLES_MAINTAINER) list[str] [source]¶
- async get_project_users(*, project_path: str, roles: PagureRole = PagureRole.USER_ROLES_MAINTAINER) list[str] [source]¶
- class fmn.backends.pagure.PagureRole(value)[source]¶
Bases:
IntFlag
An enumeration.
- ADMIN = 2¶
- COLLABORATOR = 8¶
- COMMIT = 4¶
- GROUP_ROLES = 30¶
- GROUP_ROLES_MAINTAINER = 14¶
- GROUP_ROLES_MAINTAINER_SET = {PagureRole.ADMIN, PagureRole.COMMIT, PagureRole.COLLABORATOR}¶
- GROUP_ROLES_SET = {PagureRole.ADMIN, PagureRole.COMMIT, PagureRole.COLLABORATOR, PagureRole.TICKET}¶
- OWNER = 1¶
- TICKET = 16¶
- USER_ROLES = 31¶
- USER_ROLES_MAINTAINER = 15¶
- USER_ROLES_MAINTAINER_SET = {PagureRole.OWNER, PagureRole.ADMIN, PagureRole.COMMIT, PagureRole.COLLABORATOR}¶
- USER_ROLES_SET = {PagureRole.OWNER, PagureRole.ADMIN, PagureRole.COMMIT, PagureRole.COLLABORATOR, PagureRole.TICKET}¶
- fmn.backends.pagure.get_distgit_proxy() PagureAsyncProxy [source]¶