Skip to content

Commit 7470f09

Browse files
Update parameters for repository/commits api (#502)
Co-authored-by: Graham Campbell <[email protected]>
1 parent 92b5705 commit 7470f09

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

lib/Gitlab/Api/Repositories.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ public function releases($project_id)
168168
}
169169

170170
/**
171+
* @see https://docs.gitlab.com/ee/api/commits.html#list-repository-commits
172+
*
171173
* @param int|string $project_id
172174
* @param array $parameters {
173175
*
@@ -184,6 +186,9 @@ public function commits($project_id, array $parameters = [])
184186
$datetimeNormalizer = function (Options $options, \DateTimeInterface $value) {
185187
return $value->format('c');
186188
};
189+
$booleanNormalizer = function (Options $resolver, $value) {
190+
return $value ? 'true' : 'false';
191+
};
187192

188193
$resolver->setDefined('path');
189194
$resolver->setDefined('ref_name');
@@ -195,8 +200,21 @@ public function commits($project_id, array $parameters = [])
195200
->setAllowedTypes('until', \DateTimeInterface::class)
196201
->setNormalizer('until', $datetimeNormalizer)
197202
;
198-
$resolver->setDefined('all');
199-
$resolver->setDefined('with_stats');
203+
$resolver->setDefined('all')
204+
->setAllowedTypes('all', 'bool')
205+
->setNormalizer('all', $booleanNormalizer)
206+
;
207+
$resolver->setDefined('with_stats')
208+
->setAllowedTypes('with_stats', 'bool')
209+
->setNormalizer('with_stats', $booleanNormalizer)
210+
;
211+
$resolver->setDefined('first_parent')
212+
->setAllowedTypes('first_parent', 'bool')
213+
->setNormalizer('first_parent', $booleanNormalizer)
214+
;
215+
$resolver->setDefined('order')
216+
->setAllowedTypes('order', ['default', 'topo'])
217+
;
200218

201219
return $this->get($this->getProjectPath($project_id, 'repository/commits'), $resolver->resolve($parameters));
202220
}

test/Gitlab/Tests/Api/RepositoriesTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ public function shouldGetCommitsWithParams()
277277
$api = $this->getApiMock();
278278
$api->expects($this->once())
279279
->method('get')
280-
->with('projects/1/repository/commits', ['page' => 2, 'per_page' => 25, 'ref_name' => 'master', 'all' => true, 'with_stats' => true, 'path' => 'file_path/file_name'])
280+
->with('projects/1/repository/commits', ['page' => 2, 'per_page' => 25, 'ref_name' => 'master', 'all' => 'true', 'with_stats' => 'true', 'path' => 'file_path/file_name'])
281281
->will($this->returnValue($expectedArray))
282282
;
283283

0 commit comments

Comments
 (0)