Automatic Triage and Labelling
Discussed with @meks that eventually it would be great to offer Triage as a native GitLab feature and serverless would enable a closer to realtime experience for the user.
Enable a user to enact a policy which would allow for identification of issues or merge requests and the ability to take an action on them. The identification can be over all projects and sub-projects of a group or an individual project. The actions can be individual (such as label application) or aggregate (such as packaging and summarizing) on the resource.
The realtime usecase can leverage triage-serverless
Let's take an example such as Mark potentially interesting feature proposals
- User visits policies page from a group or project
- A multi-step workflow is presented where the user chooses between individual or aggregate action
- User chooses individual action and is directed to the Input Configuration page
- User chooses issues between issues and/or merge request resources to identify
- User chooses filters of:
- state: opened
- label(s): gitlab-ce~10230929
- upvotes: 10+
- milestone: none
- User is able preview resources which would be scoped for policy based on filters
- User advances to Policy Action step to configure desired action. User choses individual action
- label: potential proposal
- User previews and confirms filter
Group Administrator Experience
To start, these configuration options would be applied at the group level. It is assumed that the group has a Kubernetes Environment available.
- Triage Serverless can be added as an Application within a Kubernetes Cluster.
- Administrator would enter details for configuration of the serverless rules.
- Upon completion, all resources required (Knative, Triage Serverless, webhook, etc) would be provisioned.
- Security/permissions model - how could this be done in a manner that is not reliant on a specific bot user's token?
- How can we configure reaction rules (yaml, UI, iteration!)?