GitLab Events
## Overview
Users and customers have goals to automate non-code tasks to streamline and drive efficiency across the DevOps lifecycle and Software Development Lifecycle.
## Problems to Solve
1. Multiple pipeline definitions in a single project
1. Ability to define triggers for such pipelines where a trigger can be virtually any event within the system (ex. an issue is created, label assigned, container pushed)
1. Ability to compose (third-party) steps together to form a job, a prerequisite to building an ecosystem like the GitHub Actions Marketplace
## Proposed PoC / MVP details for GitLab CI Workflows
How to build GitLab CI Workflows in an efficient way, making use of what we already have? There are many ways to implement this, we could build a separate decoupled service to dispatch workflows, but in the PoC we can actually use existing hooks around webhooks to dispatch events-to-builds.
1. Make it possible to define a workflow in `.gitlab-ci.yml`
1. Preserve this definition in database and connect to existing webhooks.
1. Hook into existing webhooks instrumentation to start a pipeline when a workflow definition matches.
1. Write file-type `CI_WORKFLOW_EVENT_PAYLOAD` variable to pipeline builds with the webhook payload.
1. Add a sub-page of pipelines / job to visualize workflows better.
1. Add a system note to a writable resource (issue / merge request) when a workflow executes.
### Iteration Path
1. POC
- A POC [was completed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91244) and a [demo presented](https://www.youtube.com/watch?v=cwfRI9m3rRs) during Verify Week July 2022.
2. Platform Events
- Support for Package Registry events https://gitlab.com/groups/gitlab-org/-/epics/9677+
3. Expand GitLab Workflows for Plan
epic