GitLab Apps
Description
Externals services have limited options for integration and cant not provide seamless UX to users pressuring GitLab to be the all in one for everything. (koding.com example).
Proposal
GitLab Apps Rather than often incomplete integration via webhooks or tightly coupled integration of adding the entire solution to the stack koding GitLab Apps provides intimate integration and seamless UX with loosely coupled and distributed systems.
Lose coupling and integration of distributed systems via messaging is far more scalable (systems, users, market) than one-db to rule them all. Seamless UX can be achieved by allowing GitLab Apps to hook int to the page render with their own web components.
Think of the SalesForce AppExchange or the Google Apps Market Place.
Hypothetical examples:
- Koding.com, Cloud9, or Kanboard GitLab Apps could integrated on events across multiple GitLab services, the UI, CI, Issues, MR....
- Mermaid Diagrams GitLab App could merely load the js lib.
- CloudFlare GitLab App could provide an easy interface for managing CloudFlare over its API in front of GitLab Pages and expose an env var to CI
- SNS GitLab App could through events to AWS SNS and expose a per project SNS Topic field with the webhooks settings.
- CI on AWS GitLab App could take AWS credentials and deploy an auto scale CI services in my AWS account.
- Code coverage app could display istanbul reports on a project and in MR.
- Gemfury account could provide repo integration first class alongside GitLab Docker registry.
- Email Gateway App could provide email to issue handling akin to Jira Service Desk.
Yes, all the above could be done by adding the functionally built into GitLab. But going back to SalesForce - the CRM is far below awesome. The success of SalesForce is the AppExchange.
GitLab could run a container service for apps, but I am thinking more along the lines of apps provide their own compute resources, integrates with GitLab events, and can modify the UI.