Module ogr.services.forgejo
Sub-modules
ogr.services.forgejo.issue
ogr.services.forgejo.project
ogr.services.forgejo.pull_request
ogr.services.forgejo.service
ogr.services.forgejo.user
Classes
class ForgejoIssue (raw_issue, project: forgejo.ForgejoProject)
-
Expand source code
class ForgejoIssue(BaseIssue): def __init__(self, raw_issue, project: "forgejo.ForgejoProject"): super().__init__(raw_issue, project)
Attributes
project
:GitProject
- Project of the issue.
Ancestors
Inherited members
class ForgejoProject (repo: str,
service: forgejo.ForgejoService,
namespace: str,
forgejo_repo: pyforgejo.types.repository.Repository | None = None,
**kwargs)-
Expand source code
class ForgejoProject(BaseGitProject): service: "forgejo.ForgejoService" def __init__( self, repo: str, service: "forgejo.ForgejoService", namespace: str, forgejo_repo: Optional[Repository] = None, **kwargs, ): super().__init__(repo, service, namespace) self._forgejo_repo = forgejo_repo @cached_property def forgejo_repo(self): namespace = self.namespace or self.service.user.get_username() return self.service.api.repository.repo_get( owner=namespace, repo=self.repo, )
Args
repo
- Name of the project.
service
- GitService instance.
namespace
-
Namespace of the project.
- GitHub: username or org name.
- GitLab: username or org name.
- Pagure: namespace (e.g.
"rpms"
).
In case of forks:
"fork/{username}/{namespace}"
.
Ancestors
Class variables
var service : ForgejoService
Instance variables
var forgejo_repo
-
Expand source code
@cached_property def forgejo_repo(self): namespace = self.namespace or self.service.user.get_username() return self.service.api.repository.repo_get( owner=namespace, repo=self.repo, )
Inherited members
BaseGitProject
:add_group
add_user
can_merge_pr
change_token
commit_comment
create_issue
create_pr
create_release
default_branch
delete
description
exists
fork_create
full_repo_name
get_branches
get_commit_comment
get_commit_comments
get_commit_statuses
get_commits
get_contributors
get_description
get_file_content
get_files
get_fork
get_forks
get_git_urls
get_issue
get_issue_info
get_issue_list
get_latest_release
get_owners
get_pr
get_pr_files_diff
get_pr_list
get_release
get_releases
get_sha_from_branch
get_sha_from_tag
get_tags
get_users_with_given_access
get_web_url
has_issues
has_write_access
is_fork
is_forked
is_private
parent
remove_group
remove_user
request_access
set_commit_status
users_with_write_access
which_groups_can_merge_pr
who_can_close_issue
who_can_merge_pr
class ForgejoPullRequest (raw_pr: Any, project: forgejo.ForgejoProject)
-
Expand source code
class ForgejoPullRequest(BasePullRequest): def __init__( self, raw_pr: Any, project: "forgejo.ForgejoProject", ): super().__init__(raw_pr, project)
Attributes
project
:GitProject
- Project of the pull request.
Ancestors
Inherited members
BasePullRequest
:add_label
author
close
closed_by
comment
commits_url
create
created
description
diff_url
get
get_all_commits
get_comment
get_list
head_commit
id
labels
merge
merge_commit_sha
merge_commit_status
patch
source_branch
source_project
status
target_branch
target_branch_head_commit
target_project
title
update_info
url
PullRequest
:
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): 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, 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)
Attributes
instance_url
:str
- URL of the git forge instance.
Ancestors
Class variables
var version
Instance variables
var api
-
Expand source code
@cached_property def api(self): return PyforgejoApi(base_url=self.instance_url, api_key=self._token)
Inherited members