gitlab-triage: Add Support for Configurable Statuses on Work Items
Summary
Add support for GitLab's new Configurable Statuses feature (releasing in 18.2) to enable meaningful dogfooding and replace workflow:: scoped labels in our triage processes.
Background
GitLab 18.2 introduces Configurable Statuses, allowing projects to define custom status workflows beyond the traditional Open/Closed states. This feature will enable more granular issue tracking and should replace our current workflow:: scoped label system.
Requirements
Functional Requirements
- GraphQL API Integration: Implement support using GraphQL API exclusively (no REST API is available)
- Status Reading: Ability to read current configurable status of issues/merge requests
- Status Setting: Ability to set configurable statuses based on triage rules
- Status Filtering: Support filtering issues/merge requests by configurable status
Technical Requirements
- Use GitLab GraphQL API
- Maintain backward compatibility with existing triage rules
- Support at least issues (other work item types will support it but right now all internal automations are based on issues or merge requests)
Proposed Implementation
Configuration Example
resource_rules:
issues:
rules:
- name: "Move to Workflow Blocked"
conditions:
- type: "label_added"
label: "workflow::blocked"
actions:
- type: "status"
status: "Blocked"
Note: status is already used in gitlab-triage for open/closed. Since configurable statuses extend these states with a full lifecycle, a decision should be made whether to overload this existing field or set a new one.
Edited by John Hope