Architecture
Architecture
Swingletree is divided into components, which communicate via an Event Bus.
Scotty
The Scotty component handles interactions with GitHub and ElasticSearch.
- GitHub App installation management
- Authentication with GitHub
- Provide GitHub API access
- Token caching
- ElasticSearch persistence management
Gate
Gate functions as an entrypoint for requests, authenticating and routing to the underlying services.
Deck
Deck provides the Swingletree UI.
Plugins
Plugins are implemented as services, which are registered to Gate. They are invoked using ReST, process the provided report and POST the results to Scotty.
sequenceDiagram
Gate ->> +Plugin: Prepared Report
Plugin ->> Scotty: Request Repository configuration
Plugin -x +Scotty: Send Analysis Report
Scotty -->> SCM Provider: Send Check Run
Scotty -->> -ElasticSearch: Store History
- Previous
- Next