From a39a390676e275384823abd88593e4631de9dcd4 Mon Sep 17 00:00:00 2001 From: Christian Glingener Date: Fri, 26 May 2023 10:03:46 +0200 Subject: [PATCH 1/2] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 62301255..293a782a 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "m4tthumphrey/php-gitlab-api", + "name": "glingener/gitlab-api-client", "description": "GitLab API v4 client for PHP", "keywords": ["gitlab", "api"], "license": "MIT", From c67a4ebf1ca217e347602672193d6ca64a28dc11 Mon Sep 17 00:00:00 2001 From: Christian Glingener Date: Mon, 19 Feb 2024 10:53:58 +0100 Subject: [PATCH 2/2] Project and repositories. --- src/Api/Repositories.php | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/Api/Repositories.php b/src/Api/Repositories.php index 3cdf19db..4d626435 100644 --- a/src/Api/Repositories.php +++ b/src/Api/Repositories.php @@ -187,6 +187,37 @@ public function releases($project_id) return $this->get($this->getProjectPath($project_id, 'releases')); } + public function project( $project_id ) { + return $this->get( 'projects/' . $project_id ); + } + + public function events($project_id, array $parameters = []) + { + $resolver = $this->createOptionsResolver(); + $datetimeNormalizer = function (Options $resolver, \DateTimeInterface $value): string { + return $value->format('Y-m-d'); + }; + + $resolver->setDefined('action') + ->setAllowedValues('action', ['created', 'updated', 'closed', 'reopened', 'pushed', 'commented', 'merged', 'joined', 'left', 'destroyed', 'expired']) + ; + $resolver->setDefined('target_type') + ->setAllowedValues('target_type', ['issue', 'milestone', 'merge_request', 'note', 'project', 'snippet', 'user']) + ; + $resolver->setDefined('before') + ->setAllowedTypes('before', \DateTimeInterface::class) + ->setNormalizer('before', $datetimeNormalizer); + $resolver->setDefined('after') + ->setAllowedTypes('after', \DateTimeInterface::class) + ->setNormalizer('after', $datetimeNormalizer) + ; + $resolver->setDefined('sort') + ->setAllowedValues('sort', ['asc', 'desc']) + ; + + return $this->get($this->getProjectPath($project_id, '/events'), $resolver->resolve($parameters)); + } + /** * @see https://docs.gitlab.com/ee/api/commits.html#list-repository-commits *