kopia lustrzana https://github.com/Langenfeld/py-gitea
Add RepositoryBranchProtections
rodzic
7e4ad3bb0d
commit
08d9fef5c0
|
@ -357,6 +357,32 @@ class Branch(ReadonlyApiObject):
|
||||||
def request(cls, gitea: "Gitea", owner: str, repo: str, ref: str):
|
def request(cls, gitea: "Gitea", owner: str, repo: str, ref: str):
|
||||||
return cls._request(gitea, {"owner": owner, "repo": repo, "ref": ref})
|
return cls._request(gitea, {"owner": owner, "repo": repo, "ref": ref})
|
||||||
|
|
||||||
|
class RepositoryBranchProtections(ApiObject):
|
||||||
|
REPO_BRANCH_PROTECTIONS_BY_NAME = """/repos/{owner}/{repo}/branch_protections/{name}"""
|
||||||
|
_owner: str
|
||||||
|
_repo: str
|
||||||
|
|
||||||
|
_patchable_fields = {
|
||||||
|
"enable_push",
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(self, gitea):
|
||||||
|
super().__init__(gitea)
|
||||||
|
|
||||||
|
def set(self, **kwargs):
|
||||||
|
for key, value in kwargs.items():
|
||||||
|
setattr(self, key, value)
|
||||||
|
|
||||||
|
def commit(self):
|
||||||
|
values = self.get_dirty_fields()
|
||||||
|
args = {
|
||||||
|
"owner": self._owner,
|
||||||
|
"repo": self._repo,
|
||||||
|
"name": self.rule_name
|
||||||
|
}
|
||||||
|
url = RepositoryBranchProtections.REPO_BRANCH_PROTECTIONS_BY_NAME.format(**args)
|
||||||
|
self.gitea.requests_patch(url, data=values)
|
||||||
|
self.dirty_fields = {}
|
||||||
|
|
||||||
class Repository(ApiObject):
|
class Repository(ApiObject):
|
||||||
API_OBJECT = """/repos/{owner}/{name}""" # <owner>, <reponame>
|
API_OBJECT = """/repos/{owner}/{name}""" # <owner>, <reponame>
|
||||||
|
@ -376,6 +402,7 @@ class Repository(ApiObject):
|
||||||
REPO_COMMITS = "/repos/%s/%s/commits" # <owner>, <reponame>
|
REPO_COMMITS = "/repos/%s/%s/commits" # <owner>, <reponame>
|
||||||
REPO_TRANSFER = "/repos/{owner}/{repo}/transfer"
|
REPO_TRANSFER = "/repos/{owner}/{repo}/transfer"
|
||||||
REPO_MILESTONES = """/repos/{owner}/{repo}/milestones"""
|
REPO_MILESTONES = """/repos/{owner}/{repo}/milestones"""
|
||||||
|
REPO_BRANCH_PROTECTIONS = """/repos/{owner}/{repo}/branch_protections"""
|
||||||
|
|
||||||
def __init__(self, gitea):
|
def __init__(self, gitea):
|
||||||
super().__init__(gitea)
|
super().__init__(gitea)
|
||||||
|
@ -420,9 +447,9 @@ class Repository(ApiObject):
|
||||||
"has_projects",
|
"has_projects",
|
||||||
"has_pull_requests",
|
"has_pull_requests",
|
||||||
"has_wiki",
|
"has_wiki",
|
||||||
"has_releases",
|
"has_releases",
|
||||||
"has_actions",
|
"has_actions",
|
||||||
"has_packages",
|
"has_packages",
|
||||||
"ignore_whitespace_conflicts",
|
"ignore_whitespace_conflicts",
|
||||||
"internal_tracker",
|
"internal_tracker",
|
||||||
"mirror_interval",
|
"mirror_interval",
|
||||||
|
@ -747,6 +774,19 @@ class Repository(ApiObject):
|
||||||
)
|
)
|
||||||
return Repository.parse_response(gitea, result)
|
return Repository.parse_response(gitea, result)
|
||||||
|
|
||||||
|
def get_branch_protections(self) -> 'list[RepositoryBranchProtections]':
|
||||||
|
args = {"owner":self.owner.username, "repo": self.name}
|
||||||
|
url = Repository.REPO_BRANCH_PROTECTIONS.format(**args)
|
||||||
|
results = self.gitea.requests_get(url)
|
||||||
|
|
||||||
|
branch_protections = []
|
||||||
|
for result in results:
|
||||||
|
branch_protection = RepositoryBranchProtections.parse_response(self.gitea, result)
|
||||||
|
branch_protection._owner = args["owner"]
|
||||||
|
branch_protection._repo = args["repo"]
|
||||||
|
branch_protections.append(branch_protection)
|
||||||
|
|
||||||
|
return branch_protections
|
||||||
|
|
||||||
class UserRepoPermission(ReadonlyApiObject):
|
class UserRepoPermission(ReadonlyApiObject):
|
||||||
READ = "read"
|
READ = "read"
|
||||||
|
|
Ładowanie…
Reference in New Issue