Skip to content

Commit f811ffe

Browse files
DevMoritzm1guelpf
authored andcommitted
Added /projects/:id/pipelines fields [updated_after, updated_before]
https://docs.gitlab.com/ee/api/pipelines.html#list-project-pipelines
1 parent c9c87c5 commit f811ffe

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

lib/Gitlab/Api/Projects.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,9 @@ public function pipelines($project_id, array $parameters = [])
197197
$booleanNormalizer = function (Options $resolver, $value) {
198198
return $value ? 'true' : 'false';
199199
};
200+
$datetimeNormalizer = function (Options $resolver, \DateTimeInterface $value) {
201+
return $value->format('Y-m-d');
202+
};
200203

201204
$resolver->setDefined('scope')
202205
->setAllowedValues('scope', ['running', 'pending', 'finished', 'branches', 'tags'])
@@ -212,6 +215,14 @@ public function pipelines($project_id, array $parameters = [])
212215
;
213216
$resolver->setDefined('name');
214217
$resolver->setDefined('username');
218+
$resolver->setDefined('updated_after')
219+
->setAllowedTypes('updated_after', \DateTimeInterface::class)
220+
->setNormalizer('updated_after', $datetimeNormalizer)
221+
;
222+
$resolver->setDefined('updated_before')
223+
->setAllowedTypes('updated_before', \DateTimeInterface::class)
224+
->setNormalizer('updated_before', $datetimeNormalizer)
225+
;
215226
$resolver->setDefined('order_by')
216227
->setAllowedValues('order_by', ['id', 'status', 'ref', 'user_id'])
217228
;

test/Gitlab/Tests/Api/ProjectsTest.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,37 @@ public function shouldGetPipelinesWithBooleanParam()
509509
$this->assertEquals($expectedArray, $api->pipelines(1, ['yaml_errors' => false]));
510510
}
511511

512+
/**
513+
* @test
514+
*/
515+
public function shouldGetPipelineWithDateParam()
516+
{
517+
$expectedArray = array(
518+
array('id' => 1, 'status' => 'success', 'ref' => 'new-pipeline'),
519+
array('id' => 2, 'status' => 'failed', 'ref' => 'new-pipeline'),
520+
array('id' => 3, 'status' => 'pending', 'ref' => 'test-pipeline')
521+
);
522+
523+
$updated_after = new \DateTime('2018-01-01 00:00:00');
524+
$updated_before = new \DateTime('2018-01-31 00:00:00');
525+
526+
$expectedWithArray = [
527+
'updated_after' => $updated_after->format('Y-m-d'),
528+
'updated_before' => $updated_before->format('Y-m-d'),
529+
];
530+
531+
$api = $this->getApiMock();
532+
$api->expects($this->once())
533+
->method('get')
534+
->with('projects/1/pipelines', $expectedWithArray)
535+
->will($this->returnValue($expectedArray));
536+
537+
$this->assertEquals($expectedArray, $api->pipelines(1, [
538+
'updated_after' => $updated_after,
539+
'updated_before' => $updated_before
540+
]));
541+
}
542+
512543
/**
513544
* @test
514545
*/

0 commit comments

Comments
 (0)