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) {
|
public function releasePublish($version = null) {
|
||||||
$version = $this->releaseVersionGetNext($version);
|
$version = $this->releaseVersionGetPrepared($version);
|
||||||
return $this->collectionBuilder()
|
return $this->collectionBuilder()
|
||||||
->addCode(function () use ($version) {
|
->addCode(function () use ($version) {
|
||||||
return $this->releaseCheckPullRequest($version);
|
return $this->releaseCheckPullRequest($version);
|
||||||
@@ -825,6 +825,15 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
return $version;
|
return $version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function releaseVersionGetPrepared($version = null) {
|
||||||
|
if (!$version) {
|
||||||
|
$version = $this->getReleaseVersionController()
|
||||||
|
->getPreparedVersion();
|
||||||
|
}
|
||||||
|
$this->validateVersion($version);
|
||||||
|
return $version;
|
||||||
|
}
|
||||||
|
|
||||||
public function releaseVersionAssign($version = null, $opts = []) {
|
public function releaseVersionAssign($version = null, $opts = []) {
|
||||||
$version = $this->releaseVersionGetNext($version);
|
$version = $this->releaseVersionGetNext($version);
|
||||||
try {
|
try {
|
||||||
@@ -891,7 +900,7 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function releasePublishJira($version = null) {
|
public function releasePublishJira($version = null) {
|
||||||
$version = $this->releaseVersionGetNext($version);
|
$version = $this->releaseVersionGetPrepared($version);
|
||||||
$jiraController = $this->createJiraController();
|
$jiraController = $this->createJiraController();
|
||||||
$jiraVersion = $jiraController->releaseVersion($version);
|
$jiraVersion = $jiraController->releaseVersion($version);
|
||||||
$this->say("JIRA version '$jiraVersion[name]' was released.");
|
$this->say("JIRA version '$jiraVersion[name]' was released.");
|
||||||
|
@@ -90,6 +90,22 @@ class JiraController {
|
|||||||
return reset($version['values']);
|
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
|
* @see https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-api-3-version-post
|
||||||
*/
|
*/
|
||||||
|
@@ -58,6 +58,11 @@ class ReleaseVersionController {
|
|||||||
return $nextVersion;
|
return $nextVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getPreparedVersion(): string {
|
||||||
|
$version = $this->jira->getPreparedReleaseVersion();
|
||||||
|
return $version['name'];
|
||||||
|
}
|
||||||
|
|
||||||
private function getUnreleasedDoneIssues($project = null) {
|
private function getUnreleasedDoneIssues($project = null) {
|
||||||
$project = $project ?: $this->project;
|
$project = $project ?: $this->project;
|
||||||
$jql = "project = $project AND status = Done AND (fixVersion = EMPTY OR fixVersion IN unreleasedVersions()) AND updated >= -52w";
|
$jql = "project = $project AND status = Done AND (fixVersion = EMPTY OR fixVersion IN unreleasedVersions()) AND updated >= -52w";
|
||||||
|
Reference in New Issue
Block a user