Change getting next release version
[PREMIUM-147]
This commit is contained in:
13
RoboFile.php
13
RoboFile.php
@@ -779,7 +779,7 @@ class RoboFile extends \Robo\Tasks {
|
||||
}
|
||||
|
||||
public function releasePublish($version = null) {
|
||||
$version = $this->releaseVersionGetNext($version);
|
||||
$version = $this->releaseVersionGetPrepared($version);
|
||||
return $this->collectionBuilder()
|
||||
->addCode(function () use ($version) {
|
||||
return $this->releaseCheckPullRequest($version);
|
||||
@@ -825,6 +825,15 @@ class RoboFile extends \Robo\Tasks {
|
||||
return $version;
|
||||
}
|
||||
|
||||
public function releaseVersionGetPrepared($version = null) {
|
||||
if (!$version) {
|
||||
$version = $this->getReleaseVersionController()
|
||||
->getPreparedVersion();
|
||||
}
|
||||
$this->validateVersion($version);
|
||||
return $version;
|
||||
}
|
||||
|
||||
public function releaseVersionAssign($version = null, $opts = []) {
|
||||
$version = $this->releaseVersionGetNext($version);
|
||||
try {
|
||||
@@ -891,7 +900,7 @@ class RoboFile extends \Robo\Tasks {
|
||||
}
|
||||
|
||||
public function releasePublishJira($version = null) {
|
||||
$version = $this->releaseVersionGetNext($version);
|
||||
$version = $this->releaseVersionGetPrepared($version);
|
||||
$jiraController = $this->createJiraController();
|
||||
$jiraVersion = $jiraController->releaseVersion($version);
|
||||
$this->say("JIRA version '$jiraVersion[name]' was released.");
|
||||
|
@@ -90,6 +90,22 @@ class JiraController {
|
||||
return reset($version['values']);
|
||||
}
|
||||
|
||||
public function getPreparedReleaseVersion(?string $project = null): array {
|
||||
$project = $project ?: $this->project;
|
||||
$response = $this->httpClient->get("project/$project/version", [
|
||||
'query' => [
|
||||
'maxResults' => 1,
|
||||
'orderBy' => '-sequence',
|
||||
'status' => 'unreleased',
|
||||
],
|
||||
]);
|
||||
$version = json_decode($response->getBody()->getContents(), true);
|
||||
if (empty($version) || empty($version['values'])) {
|
||||
throw new \Exception('No prepared version found');
|
||||
}
|
||||
return reset($version['values']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-api-3-version-post
|
||||
*/
|
||||
|
@@ -58,6 +58,11 @@ class ReleaseVersionController {
|
||||
return $nextVersion;
|
||||
}
|
||||
|
||||
public function getPreparedVersion(): string {
|
||||
$version = $this->jira->getPreparedReleaseVersion();
|
||||
return $version['name'];
|
||||
}
|
||||
|
||||
private function getUnreleasedDoneIssues($project = null) {
|
||||
$project = $project ?: $this->project;
|
||||
$jql = "project = $project AND status = Done AND (fixVersion = EMPTY OR fixVersion IN unreleasedVersions()) AND updated >= -52w";
|
||||
|
Reference in New Issue
Block a user