feat(issues): custom status definitions with automated actions #502

Closed
opened 2026-06-06 12:29:34 +00:00 by jmiller · 1 comment
Owner

Summary

Make the issue status field a standard, extensible field with custom status definitions — similar to how labels are defined at the org level in settings.

Current Behavior

Issues have only two statuses: Open and Closed. There is no way to define intermediate or domain-specific statuses.

Proposed Behavior

1. Custom Status Definitions (Org Settings)

Add a "Statuses" section in org settings (alongside Labels, Custom Fields, etc.) where admins can define custom issue statuses:

  • Each status has a name (e.g. "In Progress", "Won't Fix", "Needs Info", "Blocked")
  • Each status has a color for visual distinction
  • Each status has an icon (optional)
  • Each status has a sort order for display priority

2. Automated Actions per Status

Each custom status can have a configurable action handler that defines what happens when an issue transitions to that status:

Status Action
Won't Fix Closes the issue (as if the user clicked Close)
Duplicate Closes the issue
In Progress Keeps the issue open, assigns to current user
Needs Info Keeps the issue open, adds a label
Resolved Closes the issue
Reopened Reopens the issue

3. User Experience

  • Status appears as a dropdown in the issue sidebar (like labels/milestones)
  • Changing status triggers the configured action automatically
  • Status history is tracked in the issue timeline
  • Statuses can be filtered in issue lists

4. API Support

  • CRUD endpoints for status definitions (org-level)
  • Set/get status on issues via API
  • Webhook events for status changes

Motivation

Many teams need more granular issue tracking than just Open/Closed. Custom statuses with automated actions let teams model their specific workflow (e.g. triage, development, QA, deployment) without manual close/reopen steps.


Authored by Jonathan Miller (@jmiller)

## Summary Make the issue status field a standard, extensible field with custom status definitions — similar to how labels are defined at the org level in settings. ## Current Behavior Issues have only two statuses: Open and Closed. There is no way to define intermediate or domain-specific statuses. ## Proposed Behavior ### 1. Custom Status Definitions (Org Settings) Add a "Statuses" section in org settings (alongside Labels, Custom Fields, etc.) where admins can define custom issue statuses: - Each status has a **name** (e.g. "In Progress", "Won't Fix", "Needs Info", "Blocked") - Each status has a **color** for visual distinction - Each status has an **icon** (optional) - Each status has a **sort order** for display priority ### 2. Automated Actions per Status Each custom status can have a configurable **action handler** that defines what happens when an issue transitions to that status: | Status | Action | |--------|--------| | Won't Fix | Closes the issue (as if the user clicked Close) | | Duplicate | Closes the issue | | In Progress | Keeps the issue open, assigns to current user | | Needs Info | Keeps the issue open, adds a label | | Resolved | Closes the issue | | Reopened | Reopens the issue | ### 3. User Experience - Status appears as a dropdown in the issue sidebar (like labels/milestones) - Changing status triggers the configured action automatically - Status history is tracked in the issue timeline - Statuses can be filtered in issue lists ### 4. API Support - CRUD endpoints for status definitions (org-level) - Set/get status on issues via API - Webhook events for status changes ## Motivation Many teams need more granular issue tracking than just Open/Closed. Custom statuses with automated actions let teams model their specific workflow (e.g. triage, development, QA, deployment) without manual close/reopen steps. --- *Authored by Jonathan Miller (@jmiller)*
Author
Owner

Testing Complete

Tested on dev (git.dev.mokoconsulting.tech) with TestOrg org and TestOrg/status-test repo.

Test Result
Org settings lists statuses with colors + Closes badges PASS
Issue sidebar dropdown present with all options PASS
Set status to In Progress persists (selected) PASS
Set Wont Fix (closes_issue=true) auto-closes issue PASS
Set In Progress on closed issue auto-reopens PASS
Org navbar shows Issue Statuses with tasklist icon PASS

Merged to dev via PR #503.


Authored by Jonathan Miller (@jmiller)

## Testing Complete Tested on dev (git.dev.mokoconsulting.tech) with TestOrg org and TestOrg/status-test repo. | Test | Result | |------|--------| | Org settings lists statuses with colors + Closes badges | PASS | | Issue sidebar dropdown present with all options | PASS | | Set status to In Progress persists (selected) | PASS | | Set Wont Fix (closes_issue=true) auto-closes issue | PASS | | Set In Progress on closed issue auto-reopens | PASS | | Org navbar shows Issue Statuses with tasklist icon | PASS | Merged to dev via PR #503. --- *Authored by Jonathan Miller (@jmiller)*
Sign in to join this conversation.