From dcc8a2aac8dbf06989ec9480084c8f8af8c9e7e5 Mon Sep 17 00:00:00 2001 From: Michael Gerdemann Date: Mon, 20 Jan 2020 07:59:23 +0100 Subject: [PATCH 1/2] feat: Add issues endpoint --- Classes/Client.php | 2 + Classes/Endpoint/Issues.php | 47 ++++++ Classes/Endpoint/Issues/CommentsTrait.php | 140 ++++++++++++++++ Classes/Endpoint/Issues/IssueTrait.php | 101 ++++++++++++ Classes/Endpoint/Issues/IssuesTrait.php | 98 +++++++++++ Classes/Endpoint/Issues/LabelsTrait.php | 154 ++++++++++++++++++ Classes/Endpoint/Issues/MilestonesTrait.php | 112 +++++++++++++ Classes/Endpoint/Issues/ReactionsTrait.php | 62 +++++++ Classes/Endpoint/Issues/StopwatchTrait.php | 52 ++++++ .../Endpoint/Issues/SubscriptionsTrait.php | 54 ++++++ Classes/Endpoint/Issues/TimesTrait.php | 83 ++++++++++ README.md | 86 +++++----- 12 files changed, 949 insertions(+), 42 deletions(-) create mode 100644 Classes/Endpoint/Issues.php create mode 100644 Classes/Endpoint/Issues/CommentsTrait.php create mode 100644 Classes/Endpoint/Issues/IssueTrait.php create mode 100644 Classes/Endpoint/Issues/IssuesTrait.php create mode 100644 Classes/Endpoint/Issues/LabelsTrait.php create mode 100644 Classes/Endpoint/Issues/MilestonesTrait.php create mode 100644 Classes/Endpoint/Issues/ReactionsTrait.php create mode 100644 Classes/Endpoint/Issues/StopwatchTrait.php create mode 100644 Classes/Endpoint/Issues/SubscriptionsTrait.php create mode 100644 Classes/Endpoint/Issues/TimesTrait.php diff --git a/Classes/Client.php b/Classes/Client.php index 07e503a..89ef375 100644 --- a/Classes/Client.php +++ b/Classes/Client.php @@ -6,6 +6,7 @@ namespace Avency\Gitea; use Avency\Gitea\Endpoint\Admin; use Avency\Gitea\Endpoint\EndpointInterface; +use Avency\Gitea\Endpoint\Issues; use Avency\Gitea\Endpoint\Miscellaneous; use Avency\Gitea\Endpoint\Organizations; use Avency\Gitea\Endpoint\Repositories; @@ -18,6 +19,7 @@ use Psr\Http\Message\ResponseInterface; * Gitea Client * * @method Admin admin() + * @method Issues issues() * @method Miscellaneous miscellaneous() * @method Organizations organizations() * @method Repositories repositories() diff --git a/Classes/Endpoint/Issues.php b/Classes/Endpoint/Issues.php new file mode 100644 index 0000000..5fdbef2 --- /dev/null +++ b/Classes/Endpoint/Issues.php @@ -0,0 +1,47 @@ +client = $client; + } +} diff --git a/Classes/Endpoint/Issues/CommentsTrait.php b/Classes/Endpoint/Issues/CommentsTrait.php new file mode 100644 index 0000000..7c9e1b2 --- /dev/null +++ b/Classes/Endpoint/Issues/CommentsTrait.php @@ -0,0 +1,140 @@ +client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/comments'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @return bool + */ + public function deleteComment(string $owner, string $repositoryName, int $id): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/comments/' . $id, 'DELETE'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @param string $body + * @return array + */ + public function updateComment(string $owner, string $repositoryName, int $id, string $body): array + { + $options['json'] = [ + 'body' => $body + ]; + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/comments/' . $id, 'PATCH', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @return array + */ + public function getCommentReactions(string $owner, string $repositoryName, int $id): array + { + $options['json'] = [ + 'body' => $body + ]; + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/comments/' . $id . '/reactions'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @param string $reaction + * @return array + */ + public function addCommentReaction(string $owner, string $repositoryName, int $id, string $reaction): array + { + $options['json'] = [ + 'content' => $reaction + ]; + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/comments/' . $id . '/reactions', 'POST', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @param string $reaction + * @return bool + */ + public function deleteCommentReaction(string $owner, string $repositoryName, int $id, string $reaction): bool + { + $options['json'] = [ + 'content' => $reaction + ]; + + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/comments/' . $id . '/reactions', 'DELETE', $options); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @return array + */ + public function getIssueComments(string $owner, string $repositoryName, int $index): array + { + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/comments'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param string $body + * @return array + */ + public function addIssueComment(string $owner, string $repositoryName, int $index, string $body): array + { + $options['json'] = [ + 'body' => $body + ]; + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/comments', 'POST', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } +} diff --git a/Classes/Endpoint/Issues/IssueTrait.php b/Classes/Endpoint/Issues/IssueTrait.php new file mode 100644 index 0000000..ed7b44e --- /dev/null +++ b/Classes/Endpoint/Issues/IssueTrait.php @@ -0,0 +1,101 @@ +client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param string|null $assignee + * @param array|null $assignees + * @param string|null $body + * @param \DateTime|null $dueDate + * @param int|null $milestone + * @param string|null $state + * @param string|null $title + * @param bool|null $unsetDueDate + * @return array + */ + public function update( + string $owner, + string $repositoryName, + int $index, + string $assignee = null, + array $assignees = null, + string $body = null, + \DateTime $dueDate = null, + int $milestone = null, + string $state = null, + string $title = null, + bool $unsetDueDate = null + ): array + { + $options['json'] = [ + 'assignee' => $assignee, + 'assignees' => $assignees, + 'body' => $body, + 'due_date' => $dueDate ? $dueDate->format(\DateTime::ATOM) : null, + 'mileston' => $milestone, + 'state' => $state, + 'title' => $title, + 'unset_due_date' => $unsetDueDate, + ]; + $options['json'] = $this->removeNullValues($options['json']); + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index, 'PATCH', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param string|null $assignee + * @param array|null $assignees + * @param string|null $body + * @param \DateTime|null $dueDate + * @param int|null $milestone + * @param string|null $state + * @param string|null $title + * @param bool|null $unsetDueDate + * @return array + */ + public function setDeadline( + string $owner, + string $repositoryName, + int $index, + \DateTime $dueDate + ): array + { + $options['json'] = [ + 'due_date' => $dueDate->format(\DateTime::ATOM), + ]; + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/deadline', 'POST', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } +} diff --git a/Classes/Endpoint/Issues/IssuesTrait.php b/Classes/Endpoint/Issues/IssuesTrait.php new file mode 100644 index 0000000..ef26248 --- /dev/null +++ b/Classes/Endpoint/Issues/IssuesTrait.php @@ -0,0 +1,98 @@ + $searchTerm, + 'state' => $state, + 'labels' => $labels, + 'page' => $page, + 'priority_repo_id' => $priorityRepoId, + ]; + $options['query'] = $this->removeNullValues($options['query']); + + $response = $this->client->request(self::BASE_URI . '/issues/search', 'GET', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @return array + */ + public function getIssues(string $owner, string $repositoryName): array + { + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param string $title + * @param string|null $assignee + * @param array|null $assignees + * @param string|null $body + * @param bool|null $closed + * @param \Datetime|null $dueDate + * @param array|null $labels + * @param int|null $milestone + * @return array + */ + public function create( + string $owner, + string $repositoryName, + string $title, + string $assignee = null, + array $assignees = null, + string $body = null, + bool $closed = null, + \Datetime $dueDate = null, + array $labels = null, + int $milestone = null + ): array + { + $options['json'] = [ + 'title' => $title, + 'assignee' => $assignee, + 'assignees' => $assignees, + 'body' => $body, + 'closed' => $closed, + 'due_date' => $dueDate ? $dueDate->format(\DateTime::ATOM) : null, + 'labels' => $labels, + 'milestone' => $milestone, + ]; + $options['json'] = $this->removeNullValues($options['json']); + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues', 'POST', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } +} diff --git a/Classes/Endpoint/Issues/LabelsTrait.php b/Classes/Endpoint/Issues/LabelsTrait.php new file mode 100644 index 0000000..c66afbf --- /dev/null +++ b/Classes/Endpoint/Issues/LabelsTrait.php @@ -0,0 +1,154 @@ +client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/labels'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param array $labels + * @return array + */ + public function replaceLabels(string $owner, string $repositoryName, int $index, array $labels): array + { + $options['json'] = [ + 'labels' => $labels + ]; + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/labels', 'PUT', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param array $labels + * @return array + */ + public function addLabels(string $owner, string $repositoryName, int $index, array $labels): array + { + $options['json'] = [ + 'labels' => $labels + ]; + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/labels', 'POST', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @return bool + */ + public function deleteAllLabels(string $owner, string $repositoryName, int $index): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/labels', 'DELETE'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param int $id + * @return bool + */ + public function deleteLabel(string $owner, string $repositoryName, int $index, int $id): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/labels/' . $id, 'DELETE'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @return array + */ + public function getRepositoryLabels(string $owner, string $repositoryName): array + { + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/labels'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @return array + */ + public function getRepositoryLabel(string $owner, string $repositoryName, int $id): array + { + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/labels/' . $id); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @return array + */ + public function updateRepositoryLabel( + string $owner, + string $repositoryName, + int $id, + string $name = null, + string $description = null, + string $color = null + ): array + { + $options['json'] = [ + 'name' => $name, + 'description' => $description, + 'color' => $color, + ]; + $options['json'] = $this->removeNullValues($options['json']); + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/labels/' . $id, 'PATCH', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @return bool + */ + public function deleteRepositoryLabel(string $owner, string $repositoryName, int $id): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/labels/' . $id, 'DELETE'); + + return true; + } +} diff --git a/Classes/Endpoint/Issues/MilestonesTrait.php b/Classes/Endpoint/Issues/MilestonesTrait.php new file mode 100644 index 0000000..3672066 --- /dev/null +++ b/Classes/Endpoint/Issues/MilestonesTrait.php @@ -0,0 +1,112 @@ +client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/milestones'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param string $title + * @param string|null $description + * @param \DateTime|null $dueDate + * @return array + */ + public function addMilestone( + string $owner, + string $repositoryName, + string $title, + string $description = null, + \DateTime $dueDate = null + ): array + { + $options['json'] = [ + 'title' => $title, + 'description' => $description, + 'due_date' => $dueDate ? $dueDate->format(\DateTime::ATOM) : null, + ]; + $options['json'] = $this->removeNullValues($options['json']); + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/milestones', 'POST', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @return array + */ + public function getMilestone(string $owner, string $repositoryName, int $id): array + { + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/milestones/' . $id); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @return bool + */ + public function deleteMilestone(string $owner, string $repositoryName, int $id): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/milestones/' . $id, 'DELETE'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $id + * @param string|null $title + * @param string|null $description + * @param \DateTime|null $dueDate + * @param string|null $state + * @return array + */ + public function updateMilestone( + string $owner, + string $repositoryName, + int $id, + string $title = null, + string $description = null, + \DateTime $dueDate = null, + string $state = null + ): array + { + $options['json'] = [ + 'title' => $title, + 'description' => $description, + 'due_date' => $dueDate ? $dueDate->format(\DateTime::ATOM) : null, + 'state' => $state, + ]; + $options['json'] = $this->removeNullValues($options['json']); + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/milestones/' . $id, 'PATCH', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } +} diff --git a/Classes/Endpoint/Issues/ReactionsTrait.php b/Classes/Endpoint/Issues/ReactionsTrait.php new file mode 100644 index 0000000..7ef292f --- /dev/null +++ b/Classes/Endpoint/Issues/ReactionsTrait.php @@ -0,0 +1,62 @@ +client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/reactions'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param string $reaction + * @return bool + */ + public function deleteReaction(string $owner, string $repositoryName, int $index, string $reaction): bool + { + $options['json'] = [ + 'content' => $reaction + ]; + + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/reactions', 'DELETE', $options); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param string $reaction + * @return array + */ + public function addReaction(string $owner, string $repositoryName, int $index, string $reaction): array + { + $options['json'] = [ + 'content' => $reaction + ]; + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/reactions', 'POST', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } +} diff --git a/Classes/Endpoint/Issues/StopwatchTrait.php b/Classes/Endpoint/Issues/StopwatchTrait.php new file mode 100644 index 0000000..f27050a --- /dev/null +++ b/Classes/Endpoint/Issues/StopwatchTrait.php @@ -0,0 +1,52 @@ +client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/stopwatch/start', 'POST'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @return bool + */ + public function stopStopwatch(string $owner, string $repositoryName, int $index): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/stopwatch/stop', 'POST'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @return bool + */ + public function deleteStopwatch(string $owner, string $repositoryName, int $index): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/stopwatch/delete', 'DELETE'); + + return true; + } +} diff --git a/Classes/Endpoint/Issues/SubscriptionsTrait.php b/Classes/Endpoint/Issues/SubscriptionsTrait.php new file mode 100644 index 0000000..5ce6e65 --- /dev/null +++ b/Classes/Endpoint/Issues/SubscriptionsTrait.php @@ -0,0 +1,54 @@ +client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/subscriptions'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param string $username + * @return bool + */ + public function deleteSubscription(string $owner, string $repositoryName, int $index, string $username): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/subscriptions/' . $username, 'DELETE'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param string $username + * @return bool + */ + public function addSubscription(string $owner, string $repositoryName, int $index, string $username): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/subscriptions/' . $username, 'PUT'); + + return true; + } +} diff --git a/Classes/Endpoint/Issues/TimesTrait.php b/Classes/Endpoint/Issues/TimesTrait.php new file mode 100644 index 0000000..873b101 --- /dev/null +++ b/Classes/Endpoint/Issues/TimesTrait.php @@ -0,0 +1,83 @@ +client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/times'); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @return bool + */ + public function deleteAllTimes(string $owner, string $repositoryName, int $index): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/times', 'DELETE'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param int $id + * @return bool + */ + public function deleteTime(string $owner, string $repositoryName, int $index, int $id): bool + { + $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/times/' . $id, 'DELETE'); + + return true; + } + + /** + * @param string $owner + * @param string $repositoryName + * @param int $index + * @param int $time + * @param string|null $username + * @param \DateTime|null $createdDate + * @return array + */ + public function addTime( + string $owner, + string $repositoryName, + int $index, + int $time, + string $username = null, + \DateTime $createdDate = null + ): array + { + $options['json'] = [ + 'time' => $time, + 'user_name' => $username, + 'created' => $createdDate ? $createdDate->format(\DateTime::ATOM) : null, + ]; + $options['json'] = $this->removeNullValues($options['json']); + + $response = $this->client->request(self::BASE_URI . '/' . $owner . '/' . $repositoryName . '/issues/' . $index . '/times', 'POST', $options); + + return \GuzzleHttp\json_decode($response->getBody(), true); + } +} diff --git a/README.md b/README.md index 43201c8..6d328c8 100644 --- a/README.md +++ b/README.md @@ -149,48 +149,50 @@ Status | Method | Endpoint | Comment Status | Method | Endpoint | Comment --- | --- | --- | --- -❌ | GET | /repos/issues/search | -❌ | GET | /repos/{owner}/{repo}/issues | -❌ | POST | /repos/{owner}/{repo}/issues | -❌ | GET | /repos/{owner}/{repo}/issues/comments | -❌ | DELETE | /repos/{owner}/{repo}/issues/comments/{id} | -❌ | PATCH | /repos/{owner}/{repo}/issues/comments/{id} | -❌ | GET | /repos/{owner}/{repo}/issues/comments/{id}/reactions | -❌ | POST | /repos/{owner}/{repo}/issues/comments/{id}/reactions | -❌ | DELETE | /repos/{owner}/{repo}/issues/comments/{id}/reactions | -❌ | GET | /repos/{owner}/{repo}/issues/{index} | -❌ | PATCH | /repos/{owner}/{repo}/issues/{index} | -❌ | GET | /repos/{owner}/{repo}/issues/{index}/comments | -❌ | POST | /repos/{owner}/{repo}/issues/{index}/comments | -❌ | POST | /repos/{owner}/{repo}/issues/{index}/deadline | -❌ | GET | /repos/{owner}/{repo}/issues/{index}/labels | -❌ | PUT | /repos/{owner}/{repo}/issues/{index}/labels | -❌ | POST | /repos/{owner}/{repo}/issues/{index}/labels | -❌ | DELETE | /repos/{owner}/{repo}/issues/{index}/labels | -❌ | DELETE | /repos/{owner}/{repo}/issues/{index}/labels/{id} | -❌ | GET | /repos/{owner}/{repo}/issues/{index}/reactions | -❌ | POST | /repos/{owner}/{repo}/issues/{index}/reactions | -❌ | DELETE | /repos/{owner}/{repo}/issues/{index}/reactions | -❌ | DELETE | /repos/{owner}/{repo}/issues/{index}/stopwatch/delete | -❌ | POST | /repos/{owner}/{repo}/issues/{index}/stopwatch/start | -❌ | POST | /repos/{owner}/{repo}/issues/{index}/stopwatch/stop | -❌ | GET | /repos/{owner}/{repo}/issues/{index}/subscriptions | -❌ | PUT | /repos/{owner}/{repo}/issues/{index}/subscriptions/{user} | -❌ | DELETE | /repos/{owner}/{repo}/issues/{index}/subscriptions/{user} | -❌ | GET | /repos/{owner}/{repo}/issues/{index}/times | -❌ | POST | /repos/{owner}/{repo}/issues/{index}/times | -❌ | DELETE | /repos/{owner}/{repo}/issues/{index}/times | -❌ | DELETE | /repos/{owner}/{repo}/issues/{index}/times/{id} | -❌ | GET | /repos/{owner}/{repo}/labels | -❌ | POST | /repos/{owner}/{repo}/labels | -❌ | GET | /repos/{owner}/{repo}/labels/{id} | -❌ | DELETE | /repos/{owner}/{repo}/labels/{id} | -❌ | PATCH | /repos/{owner}/{repo}/labels/{id} | -❌ | GET | /repos/{owner}/{repo}/milestones | -❌ | POST | /repos/{owner}/{repo}/milestones | -❌ | GET | /repos/{owner}/{repo}/milestones/{id} | -❌ | DELETE | /repos/{owner}/{repo}/milestones/{id} | -❌ | PATCH | /repos/{owner}/{repo}/milestones/{id} | +✅ | GET | /repos/issues/search | +✅ | GET | /repos/{owner}/{repo}/issues | +✅ | POST | /repos/{owner}/{repo}/issues | +✅ | GET | /repos/{owner}/{repo}/issues/comments | +✅ | DELETE | /repos/{owner}/{repo}/issues/comments/{id} | +✅ | PATCH | /repos/{owner}/{repo}/issues/comments/{id} | +✅ | GET | /repos/{owner}/{repo}/issues/comments/{id}/reactions | +✅ | POST | /repos/{owner}/{repo}/issues/comments/{id}/reactions | +✅ | DELETE | /repos/{owner}/{repo}/issues/comments/{id}/reactions | +✅ | GET | /repos/{owner}/{repo}/issues/{index} | +✅ | PATCH | /repos/{owner}/{repo}/issues/{index} | +✅ | GET | /repos/{owner}/{repo}/issues/{index}/comments | +✅ | POST | /repos/{owner}/{repo}/issues/{index}/comments | +⛔️ | DELETE​ | /repos​/{owner}​/{repo}​/issues​/{index}​/comments​/{id} | Not supported / Deprecated +⛔️ | PATCH​ | /repos​/{owner}​/{repo}​/issues​/{index}​/comments​/{id} | Not supported / Deprecated +✅ | POST | /repos/{owner}/{repo}/issues/{index}/deadline | +✅ | GET | /repos/{owner}/{repo}/issues/{index}/labels | +✅ | PUT | /repos/{owner}/{repo}/issues/{index}/labels | +✅ | POST | /repos/{owner}/{repo}/issues/{index}/labels | +✅ | DELETE | /repos/{owner}/{repo}/issues/{index}/labels | +✅ | DELETE | /repos/{owner}/{repo}/issues/{index}/labels/{id} | +✅ | GET | /repos/{owner}/{repo}/issues/{index}/reactions | +✅ | POST | /repos/{owner}/{repo}/issues/{index}/reactions | +✅ | DELETE | /repos/{owner}/{repo}/issues/{index}/reactions | +✅ | DELETE | /repos/{owner}/{repo}/issues/{index}/stopwatch/delete | +✅ | POST | /repos/{owner}/{repo}/issues/{index}/stopwatch/start | +✅ | POST | /repos/{owner}/{repo}/issues/{index}/stopwatch/stop | +✅ | GET | /repos/{owner}/{repo}/issues/{index}/subscriptions | +✅ | PUT | /repos/{owner}/{repo}/issues/{index}/subscriptions/{user} | +✅ | DELETE | /repos/{owner}/{repo}/issues/{index}/subscriptions/{user} | +✅ | GET | /repos/{owner}/{repo}/issues/{index}/times | +✅ | POST | /repos/{owner}/{repo}/issues/{index}/times | +✅ | DELETE | /repos/{owner}/{repo}/issues/{index}/times | +✅ | DELETE | /repos/{owner}/{repo}/issues/{index}/times/{id} | +✅ | GET | /repos/{owner}/{repo}/labels | +✅ | POST | /repos/{owner}/{repo}/labels | +✅ | GET | /repos/{owner}/{repo}/labels/{id} | +✅ | DELETE | /repos/{owner}/{repo}/labels/{id} | +✅ | PATCH | /repos/{owner}/{repo}/labels/{id} | +✅ | GET | /repos/{owner}/{repo}/milestones | +✅ | POST | /repos/{owner}/{repo}/milestones | +✅ | GET | /repos/{owner}/{repo}/milestones/{id} | +✅ | DELETE | /repos/{owner}/{repo}/milestones/{id} | +✅ | PATCH | /repos/{owner}/{repo}/milestones/{id} | #### Repository From 2b7abe56f9bcf354a7060143cef789f1445de435 Mon Sep 17 00:00:00 2001 From: Michael Gerdemann Date: Mon, 20 Jan 2020 08:00:25 +0100 Subject: [PATCH 2/2] feat: Remove in development notice --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 6d328c8..e1e2167 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ This package provides an API client for [Gitea](https://gitea.io) API Version 1. -*Caution! This package is still under development* - ## Getting Started ### Prerequisites