Call for help: Add event handling for more SCM providers in the catalog
Issue Labels
- Please familiarize yourself with the issue labels used in this project: LABELS.md
Search Terms
scm events catalog️ Project Area
Catalog
Need
As part of the 1.48 release of Backstage, the software catalog gained a new capability - to handle SCM events (for example originating from webhooks) in a generic way and respond instantly to them.
It enables:
- Instant reprocessing of entities when they have changes pushed to them
- Automatic unregistration of entities when their corresponding files are deleted intentionally, instead of leaving them lingering in an error state
- Seamless silent re-registering of entities in a new place when you rename a file, transfer a repo to someone else, etc
Before this was added, some provider modules indeed had custom handling of webhook events inside them, but those capabilities were generally limited - for example, you would effectively have to use the specific flavour of GitHub discovery that the module offered to be able to be properly event driven.
With the new capability, the catalog core providers themselves - in addition to external ones - can react to any type of SCM event generically. This includes installations where you only register individual URLs using the location provider, or have invented your own form of discovery. As long as someone has written the translation layer from SCM specific events to generic events - you are good to go with instant refreshes etc.
Proposal
The initial pull request implemented this for GitHub, analyzing both push and repository events in depth to translate them into insights about individual files being changed, renamed or deleted, etc.
This issue is a call for help to implement this translation layer for more SCM providers - Gitlab, Bitbucket, Azure, and whatever else you are in need of. Adding these translation layers will enable users out there to get these benefits out of the box. Feel free to reference the original PR for inspiration.
Alternatives
Happy for suggestions here. But at the very least, having a builtin core capability for reactive refreshes should be an absolute minimum.
Have you read the Code of Conduct?
- I have read the Code of Conduct
Are you willing to submit a PR?
No, I don't have time to work on this right now
Source: backstage/backstage