Feature #24976

Include new statuses allowed by workflow in Issues REST API

Added by Stephan Möllgaard about 4 years ago. Updated 1 day ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:REST API
Target version:5.0.0
Resolution:

Description

Redmine API provide no possibility to get informations about workflows. This feature is important to get informations about next allowed status for issues.

There a lot of posts from people which need this feature.

Please plan to implement this enhancement for the Redmine API - thank you!

status-list.png (147 KB) Yuichi HARADA, 2021-04-05 09:38

24976.patch Magnifier (2.58 KB) Yuichi HARADA, 2021-04-05 09:40


Related issues

Duplicated by Redmine - Feature #35032: Get allowed Issue statuses by Issues API Closed

History

#2 Updated by Bernhard Rohloff 12 days ago

  • Duplicated by Feature #35032: Get allowed Issue statuses by Issues API added

#3 Updated by Yuichi HARADA 12 days ago

I would like to add value allowed_statuses to the include parameter.

GET /issues/[id].[format]?include=allowed_statuses

By specifying this, you can get the available statuses(same values with issue edit form) from the issue's current tracker, issue's current status, and member's role.

diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index c994862e1..887bcd4bb 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -112,6 +112,7 @@ class IssuesController < ApplicationController
         render :template => 'issues/show'
       end
       format.api do
+        @allowed_statuses = @issue.new_statuses_allowed_to(User.current)
         @changesets = @issue.changesets.visible.preload(:repository, :user).to_a
         @changesets.reverse! if User.current.wants_comments_in_reverse_order?
       end
diff --git a/app/views/issues/show.api.rsb b/app/views/issues/show.api.rsb
index f474ed9c6..215184014 100644
--- a/app/views/issues/show.api.rsb
+++ b/app/views/issues/show.api.rsb
@@ -77,4 +77,10 @@ api.issue do
       api.user :id => user.id, :name => user.name
     end
   end if include_in_api_response?('watchers') && User.current.allowed_to?(:view_issue_watchers, @issue.project)
+
+  api.array :allowed_statuses do
+    @allowed_statuses.each do |status|
+      api.status :id => status.id, :name => status.name
+    end
+  end if include_in_api_response?('allowed_statuses')
 end

#4 Updated by Go MAEDA 9 days ago

  • Target version set to Candidate for next major release

Currently, you cannot get the list of new statuses via the API, so many Redmine clients get the list by scraping the HTML of the edit issue page.

#5 Updated by Go MAEDA 1 day ago

  • Subject changed from Redmine API: Support for Workflow to Include new statuses allowed by workflow in Issues REST API
  • Target version changed from Candidate for next major release to 5.0.0

Setting the target version to 5.0.0.

Also available in: Atom PDF