No-code workflow automation - Ideation
Context
This issue is for exploratory purposes used by the Low-code / No-code SEG to identify viable use cases and the alignment along the company direction on LCNC.
Problem
Issues are known as the central hub to facilitate async workflow. For example, many teams have adopted workflows that heavily rely on issue status, labels and the transitions in between. Once implemented, the generalized work item model will enable greater modelling capability in the data layer. However, its potential will be limited without a powerful workflow engine to drive the business process in an automated fashion.
Example use cases
- If the issue has no assignee by the 6th of the month, set
needs_attention
- If the issue has no assignee by the 14th of the month, set
at_risk
- If the issue is open but without the workflowin review or workflowverification labels after the 14th, set
at_risk
- A merge request with UX, frontend, and database labels would require approval from each of those groups.
Existing solutions
-
Webhooks & APIs is a rather common approach that outsources the automation rules to customer-owned services. Customers have full control of event subscription, rule implementation and execution. However, it also comes with the overhead associated with the infrastructure, development and maintenance of their own service. It's a hard justification for trivial rules such as applying label X when a new MR is created in project Y.
-
GitLab Triage supports YAML based policies that takes conditional actions on work items. The YAML syntax is a great abstraction over commonly used conditions and actions. Triage can also be invoked from a pipeline which takes the hosting concerns away from the customers. However, the proprietary YAML syntax still presents a steep learning curve for both technical and non-technical users.
Competing solutions
GitHub supports project management automation through GitHub Actions. Their GHA based workflows can be executed both reactively and through scheduling. It's also worth highlighting their great community engagement. For example, there are hundreds of community-contributed custom actions for label
automation.
Proposal
To further empower users to create automation within the GitLab ecosystem, we should consider introducing a workflow builder on top of the existing Triage policies. Such capability should not be alien to our customers since other vendors such as Slack and Jira are already ahead of the game.
Todo
-
Identify and link the related issues submitted by the community. -
Identify and invite stakeholders for feedback and participation.
Progress
[2022-10-31]
I've recorded a demo here to show how a gitlab-triage
gem based MVC might look like:
#23 (closed)