kopia lustrzana https://github.com/Langenfeld/py-gitea
add delete_time, fix some bugs
rodzic
1a3f93b33d
commit
60486a0ce9
121
gitea/gitea.py
121
gitea/gitea.py
|
@ -2,7 +2,7 @@ import json
|
|||
import logging
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from typing import List, Tuple, Dict, Sequence
|
||||
from typing import List, Tuple, Dict, Sequence, Optional
|
||||
|
||||
import requests
|
||||
from httpcache import CachingHTTPAdapter
|
||||
|
@ -261,7 +261,7 @@ class Repository(GiteaApiObject):
|
|||
|
||||
def get_issues(self) -> List["Issue"]:
|
||||
"""Get all Issues of this Repository (open and closed)"""
|
||||
return self.get_issues_state(Issue.open) + self.get_issues_state(Issue.closed)
|
||||
return self.get_issues_state(Issue.OPENED) + self.get_issues_state(Issue.CLOSED)
|
||||
|
||||
def get_commits(self) -> List["Commit"]:
|
||||
"""Get all the Commits of this Repository."""
|
||||
|
@ -439,6 +439,7 @@ class Issue(GiteaApiObject):
|
|||
GET_TIME = """/repos/%s/%s/issues/%s/times""" # <owner, repo, index>
|
||||
GET_COMMENTS = """/repos/%s/%s/issues/comments"""
|
||||
CREATE_ISSUE = """/repos/{owner}/{repo}/issues"""
|
||||
DELETE_TIME = """/repos/{owner}/{repo}/issues/{index}/times/{id}"""
|
||||
|
||||
OPENED = "closed"
|
||||
CLOSED = "open"
|
||||
|
@ -478,7 +479,7 @@ class Issue(GiteaApiObject):
|
|||
result = gitea.requests_post(Issue.CREATE_ISSUE.format(**args), data=data)
|
||||
return Issue.parse_response(gitea, result)
|
||||
|
||||
def get_time(self, user: User) -> int:
|
||||
def get_time_sum(self, user: User) -> int:
|
||||
results = self.gitea.requests_get(
|
||||
Issue.GET_TIME % (self.owner.username, self.repo, self.number)
|
||||
)
|
||||
|
@ -488,6 +489,16 @@ class Issue(GiteaApiObject):
|
|||
if result and result["user_id"] == user.id
|
||||
)
|
||||
|
||||
def get_times(self) -> Optional[Dict]:
|
||||
return self.gitea.requests_get(
|
||||
Issue.GET_TIME % (self.owner.username, self.repo, self.number)
|
||||
)
|
||||
|
||||
def delete_time(self, time_id: str):
|
||||
self.gitea.requests_delete(
|
||||
Issue.DELETE_TIME % (self.owner.username, self.repo, self.number, time_id)
|
||||
)
|
||||
|
||||
def get_comments(self) -> List[GiteaApiObject]:
|
||||
results = self.gitea.requests_get(
|
||||
Issue.GET_COMMENTS % (self.owner.username, self.repo)
|
||||
|
@ -692,8 +703,8 @@ class Gitea:
|
|||
)
|
||||
if request.status_code not in [200, 201]:
|
||||
if (
|
||||
"already exists" in request.text
|
||||
or "e-mail already in use" in request.text
|
||||
"already exists" in request.text
|
||||
or "e-mail already in use" in request.text
|
||||
):
|
||||
self.logger.warning(request.text)
|
||||
raise AlreadyExistsException()
|
||||
|
@ -777,7 +788,7 @@ class Gitea:
|
|||
return self.requests_get(path)
|
||||
|
||||
def post_org_repos(
|
||||
self, name, description, private, auto_init, gitignores, license, readme, org
|
||||
self, name, description, private, auto_init, gitignores, license, readme, org
|
||||
):
|
||||
path = "/org/" + org + "/repos"
|
||||
return self.requests_post(
|
||||
|
@ -809,15 +820,15 @@ class Gitea:
|
|||
return self.requests_get(path)
|
||||
|
||||
def post_repos_migrate(
|
||||
self,
|
||||
clone_addr,
|
||||
auth_username,
|
||||
auth_password,
|
||||
uid,
|
||||
repo_name,
|
||||
mirror,
|
||||
private,
|
||||
description,
|
||||
self,
|
||||
clone_addr,
|
||||
auth_username,
|
||||
auth_password,
|
||||
uid,
|
||||
repo_name,
|
||||
mirror,
|
||||
private,
|
||||
description,
|
||||
):
|
||||
path = "/repos/migrate"
|
||||
return self.requests_post(
|
||||
|
@ -835,7 +846,7 @@ class Gitea:
|
|||
)
|
||||
|
||||
def post_user_repos(
|
||||
self, name, description, private, auto_init, gitignores, license, readme
|
||||
self, name, description, private, auto_init, gitignores, license, readme
|
||||
):
|
||||
path = "/user/repos"
|
||||
return self.requests_post(
|
||||
|
@ -880,14 +891,14 @@ class Gitea:
|
|||
return None
|
||||
|
||||
def create_user(
|
||||
self,
|
||||
user_name: str,
|
||||
email: str,
|
||||
password: str,
|
||||
login_name: str = None,
|
||||
change_pw=True,
|
||||
send_notify=True,
|
||||
source_id=0,
|
||||
self,
|
||||
user_name: str,
|
||||
email: str,
|
||||
password: str,
|
||||
login_name: str = None,
|
||||
change_pw=True,
|
||||
send_notify=True,
|
||||
source_id=0,
|
||||
):
|
||||
""" Create User.
|
||||
Throws:
|
||||
|
@ -923,16 +934,16 @@ class Gitea:
|
|||
return user
|
||||
|
||||
def create_repo(
|
||||
self,
|
||||
repoOwner,
|
||||
repoName: str,
|
||||
description: str = "",
|
||||
private: bool = False,
|
||||
autoInit=True,
|
||||
gitignores: str = None,
|
||||
license: str = None,
|
||||
readme: str = "Default",
|
||||
issue_labels: str = None,
|
||||
self,
|
||||
repoOwner,
|
||||
repoName: str,
|
||||
description: str = "",
|
||||
private: bool = False,
|
||||
autoInit=True,
|
||||
gitignores: str = None,
|
||||
license: str = None,
|
||||
readme: str = "Default",
|
||||
issue_labels: str = None,
|
||||
):
|
||||
""" Create a Repository.
|
||||
Throws:
|
||||
|
@ -964,13 +975,13 @@ class Gitea:
|
|||
return Repository.parse_response(self, result)
|
||||
|
||||
def create_org(
|
||||
self,
|
||||
owner: User,
|
||||
orgName: str,
|
||||
description: str,
|
||||
location="",
|
||||
website="",
|
||||
full_name="",
|
||||
self,
|
||||
owner: User,
|
||||
orgName: str,
|
||||
description: str,
|
||||
location="",
|
||||
website="",
|
||||
full_name="",
|
||||
):
|
||||
assert isinstance(owner, User)
|
||||
result = self.requests_post(
|
||||
|
@ -998,20 +1009,20 @@ class Gitea:
|
|||
return Organization.parse_response(self, result)
|
||||
|
||||
def create_team(
|
||||
self,
|
||||
org: Organization,
|
||||
name: str,
|
||||
description: str = "",
|
||||
permission: str = "read",
|
||||
units=(
|
||||
"repo.code",
|
||||
"repo.issues",
|
||||
"repo.ext_issues",
|
||||
"repo.wiki",
|
||||
"repo.pulls",
|
||||
"repo.releases",
|
||||
"repo.ext_wiki",
|
||||
),
|
||||
self,
|
||||
org: Organization,
|
||||
name: str,
|
||||
description: str = "",
|
||||
permission: str = "read",
|
||||
units=(
|
||||
"repo.code",
|
||||
"repo.issues",
|
||||
"repo.ext_issues",
|
||||
"repo.wiki",
|
||||
"repo.pulls",
|
||||
"repo.releases",
|
||||
"repo.ext_wiki",
|
||||
),
|
||||
):
|
||||
""" Creates a Team.
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue