Как я могу получить выпущенную версию для каждого проекта на Jira?

Я работаю с Symfony 2.8 (PHP) и хотел бы получить все версии для каждого проекта в Jira через API Rest Jira, а затем отфильтровать тему, чтобы выбрать только выпущенные версии.

Я нашел этот метод, но я не знаю, как использовать параметр «раскрыть» для достижения версий

Изображение 1

Изображение 2

0

Решение

1-й шаг: в config.yml

Для получения дополнительной информации о конфигурации Guzzle: http://docs.guzzlephp.org/en/latest/quickstart.html

csa_guzzle:
clients:
jira:
config:
base_uri: "https://jira.*****.*****.***/rest/api/2/"timeout: 20.0
headers:
Accept: "application/json"Content-Type: "application/json"verify: false
auth: ['api','password','Basic']

2-й шаг: создать клиентский сервис GuzzleHttp для отправки запроса в API

<?php

namespace AppBundle\Service\Atlassian\Jira\Client;

use GuzzleHttp\Client as GuzzleClientHttp;
use GuzzleHttp\Exception\ServerException;
use Psr\Http\Message\ResponseInterface;class GuzzleClient
{
/**
* Guzzle Client.
*
* @var GuzzleClientHttp
*/
protected $guzzle;

/**
* Response object of request.
*
* @var ResponseInterface
*/
protected $response;

/**
* GuzzleClient constructor.
*
* @param GuzzleClientHttp $guzzle
*/
public function __construct(GuzzleClientHttp $guzzle)
{
$this->guzzle = $guzzle ?: new GuzzleClientHttp();
}public function send($method = 'GET', $url, $parameters = [])
{
try {
$this->response = $this->guzzle->request($method, $url, ['query' => $parameters]);
} catch (ServerException $exception) {
$this->response = $exception->getResponse();
}

return $this->getContents();
}

/**
* Return the contents as a string of last request.
*
* @return string
*/
public function getContents()
{
return $this->response->getBody()->getContents();
}/**
* Getter for GuzzleClient.
*
* @return GuzzleClientHttp
*/
public function getClient()
{
return $this->guzzle;
}

/**
* Getter for last Response.
*
* @return ResponseInterface
*/
public function getResponse()
{
return $this->response;
}

3-й шаг: создать сервис для получения всех версий

<?php

namespace AppBundle\Service\Atlassian\Jira;

use AppBundle\Service\Atlassian\Jira\Client\GuzzleClient;

class ApiService
{

/**
* Client HTTP.
*
* @var GuzzleClient
*/
protected $client;

/**
* ApiService constructor.
*
* @param GuzzleClient $client
*/
public function __construct(GuzzleClient $client)
{
$this->client = $client;
}

/**
* Get all released versions for a given projectKey.
*
* @param string $projectKey
* @return null|array
*/
public function getVersions($projectKey)
{
$versions = json_decode($this->client->send('GET', 'project/'.$projectKey."/versions/"));
for($i=0;$i< count($versions); $i++)
{
if($versions[$i]->released== false)
{
$result = $versions[$i]->name;
}
}

return $versions;
}

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]