kopia lustrzana https://github.com/Langenfeld/py-gitea
more things
rodzic
d53a8496cd
commit
456f580a8b
|
@ -107,7 +107,6 @@ class Organization(GiteaApiObject):
|
||||||
class User(GiteaApiObject):
|
class User(GiteaApiObject):
|
||||||
GET_API_OBJECT = """/users/{name}""" # <org>
|
GET_API_OBJECT = """/users/{name}""" # <org>
|
||||||
USER_MAIL = """/user/emails?sudo=%s""" # <name>
|
USER_MAIL = """/user/emails?sudo=%s""" # <name>
|
||||||
USER_REPOS_REQUEST = """/users/%s/repos""" # <org>
|
|
||||||
USER_PATCH = """/admin/users/%s""" # <username>
|
USER_PATCH = """/admin/users/%s""" # <username>
|
||||||
ADMIN_DELETE_USER = """/admin/users/%s""" # <username>
|
ADMIN_DELETE_USER = """/admin/users/%s""" # <username>
|
||||||
ADMIN_EDIT_USER = """/admin/users/{name}""" # <username>
|
ADMIN_EDIT_USER = """/admin/users/{name}""" # <username>
|
||||||
|
@ -149,20 +148,22 @@ class User(GiteaApiObject):
|
||||||
values = self.get_dirty_fields()
|
values = self.get_dirty_fields()
|
||||||
values.update(
|
values.update(
|
||||||
{"email": self.email}
|
{"email": self.email}
|
||||||
) # this requrest must always contain the email for identifying users
|
) # this request must always contain the email for identifying users
|
||||||
args = {"name": self.username, "email": self.email}
|
args = {"name": self.username, "email": self.email}
|
||||||
self.gitea.requests_patch(User.ADMIN_EDIT_USER.format(**args), data=values)
|
self.gitea.requests_patch(User.ADMIN_EDIT_USER.format(**args), data=values)
|
||||||
self.dirty_fields = {}
|
self.dirty_fields = {}
|
||||||
|
|
||||||
def get_accessible_repositories(self) -> List[GiteaApiObject]:
|
def get_repositories(self) -> List["Repository"]:
|
||||||
""" Get all Repositories owned by this User."""
|
""" Get all Repositories owned by this User."""
|
||||||
results = self.gitea.requests_get("/user/repos")
|
url = f"/users/{self.username}/repos"
|
||||||
|
results = self.gitea.requests_get(url)
|
||||||
return [Repository.parse_response(self.gitea, result) for result in results]
|
return [Repository.parse_response(self.gitea, result) for result in results]
|
||||||
|
|
||||||
def get_repositories(self) -> List[GiteaApiObject]:
|
def get_repositories(self) -> List[Organization]:
|
||||||
""" Get all Repositories owned by this User."""
|
""" Get all Organizations this user is a member of."""
|
||||||
results = self.gitea.requests_get(User.USER_REPOS_REQUEST % self.username)
|
url = f"/users/{self.username}/orgs"
|
||||||
return [Repository.parse_response(self.gitea, result) for result in results]
|
results = self.gitea.requests_get(url)
|
||||||
|
return [Organization.parse_response(self.gitea, result) for result in results]
|
||||||
|
|
||||||
def __request_emails(self):
|
def __request_emails(self):
|
||||||
result = self.gitea.requests_get(User.USER_MAIL % self.login)
|
result = self.gitea.requests_get(User.USER_MAIL % self.login)
|
||||||
|
@ -208,7 +209,6 @@ class Repository(GiteaApiObject):
|
||||||
REPO_DELETE = """/repos/%s/%s""" # <owner>, <reponame>
|
REPO_DELETE = """/repos/%s/%s""" # <owner>, <reponame>
|
||||||
REPO_TIMES = """/repos/%s/%s/times""" # <owner>, <reponame>
|
REPO_TIMES = """/repos/%s/%s/times""" # <owner>, <reponame>
|
||||||
REPO_USER_TIME = """/repos/%s/%s/times/%s""" # <owner>, <reponame>, <username>
|
REPO_USER_TIME = """/repos/%s/%s/times/%s""" # <owner>, <reponame>, <username>
|
||||||
REPO_GET_COLLABORATOR = "/repos/{owner}/{repo}/collaborators" # <owner>, <reponame>
|
|
||||||
REPO_COMMITS = "/repos/%s/%s/commits" # <owner>, <reponame>
|
REPO_COMMITS = "/repos/%s/%s/commits" # <owner>, <reponame>
|
||||||
|
|
||||||
def __init__(self, gitea, id: int):
|
def __init__(self, gitea, id: int):
|
||||||
|
@ -356,11 +356,8 @@ class Repository(GiteaApiObject):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_users_with_access(self) -> Sequence[User]:
|
def get_users_with_access(self) -> Sequence[User]:
|
||||||
response = self.gitea.requests_get(
|
url = f"/repos/{self.owner.username}/{self.name}/collaborators"
|
||||||
Repository.REPO_GET_COLLABORATOR.format(
|
response = self.gitea.requests_get(url)
|
||||||
owner=self.owner.username, repo=self.name
|
|
||||||
)
|
|
||||||
)
|
|
||||||
collabs = [User.parse_response(self.gitea, user) for user in response]
|
collabs = [User.parse_response(self.gitea, user) for user in response]
|
||||||
if isinstance(self.owner, User):
|
if isinstance(self.owner, User):
|
||||||
return collabs + [self.owner]
|
return collabs + [self.owner]
|
||||||
|
@ -373,6 +370,10 @@ class Repository(GiteaApiObject):
|
||||||
collabs += team.get_members()
|
collabs += team.get_members()
|
||||||
return collabs
|
return collabs
|
||||||
|
|
||||||
|
def remove_collaborator(self, user_name: str):
|
||||||
|
url = f"/repos/{self.owner.username}/{self.name}/collaborators/{user_name}"
|
||||||
|
self.gitea.requests_delete(url)
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
self.gitea.requests_delete(
|
self.gitea.requests_delete(
|
||||||
Repository.REPO_DELETE % (self.owner.username, self.name)
|
Repository.REPO_DELETE % (self.owner.username, self.name)
|
||||||
|
@ -577,6 +578,10 @@ class Team(GiteaApiObject):
|
||||||
self.gitea.requests_delete(Team.TEAM_DELETE % self.id)
|
self.gitea.requests_delete(Team.TEAM_DELETE % self.id)
|
||||||
self.deleted = True
|
self.deleted = True
|
||||||
|
|
||||||
|
def remove_team_member(self, user_name: str):
|
||||||
|
url = f"/teams/{self.id}/members/{user_name}"
|
||||||
|
self.gitea.requests_delete(url)
|
||||||
|
|
||||||
|
|
||||||
class Util:
|
class Util:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -789,6 +794,11 @@ class Gitea:
|
||||||
path = "/repos/" + username + "/" + reponame + "/subscription"
|
path = "/repos/" + username + "/" + reponame + "/subscription"
|
||||||
return self.requests_get(path)
|
return self.requests_get(path)
|
||||||
|
|
||||||
|
def get_accessible_repositories(self) -> List[GiteaApiObject]:
|
||||||
|
""" Get all Repositories accessible by the logged in User."""
|
||||||
|
results = self.gitea.requests_get("/user/repos")
|
||||||
|
return [Repository.parse_response(self.gitea, result) for result in results]
|
||||||
|
|
||||||
def get_users_following(self, username):
|
def get_users_following(self, username):
|
||||||
path = "/users/" + username + "/following"
|
path = "/users/" + username + "/following"
|
||||||
return self.requests_get(path)
|
return self.requests_get(path)
|
||||||
|
@ -894,7 +904,7 @@ class Gitea:
|
||||||
result = self.requests_get(Gitea.GITEA_VERSION)
|
result = self.requests_get(Gitea.GITEA_VERSION)
|
||||||
return result["version"]
|
return result["version"]
|
||||||
|
|
||||||
def get_users(self):
|
def get_users(self) -> List[User]:
|
||||||
results = self.requests_get(Gitea.GET_USERS_ADMIN)
|
results = self.requests_get(Gitea.GET_USERS_ADMIN)
|
||||||
return [User.parse_response(self, result) for result in results]
|
return [User.parse_response(self, result) for result in results]
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue