How can we effectively support CI automation with Bots for Runner SaaS?
Problem to solve
Users often want to automate certain tasks and will use bots, such as Renovate, to conduct tasks across multiple projects to reduce manual efforts to update dependencies and maintain standards. These bots may create MRs trigger pipelines in other projects and consume CI/CD Minutes. The bot triggered pipelines are then consuming a lot of CI/CD minutes in their projects and users are then surprised when a developer runs a pipeline they are already at their limit.
To date the approach of GitLab has been these pipelines/jobs are treated just like any other just as SAST/DAST scans are which could be run in a similar manner.
Maintainers of projects can create rules:
that would disallow the pipelines for new MRs to run but that's a tedious task to maintain if there are many projects or automation being used.
Proposal
We can approach this from an instrumentation side in a couple of ways:
- Support Renovate as a service that makes it exempt from using CI/CD minutes
- Similarly jobs utilizing official gitlab includes like SAST/DAST/Dependency scanning could utilize a different cost factor?
- Charge a flat fee for bot users instead of consumption-based
- There are risks of users creating automation to have all pipelines triggered by bots to take advantage of this.
- Have a separate CI minute limit for Bot users than from project members
- Same as above.
- Offer cheaper compute options and discount CI/CD minute costs for Bot users
- These type of pipelines can often be run after hours and on a schedule so offering a specific "cheap but slow" type of compute could be attractive.