leonardowf / baroneza

baroneza is a release train to automate boring tasks
10 stars 0 forks source link
**baroneza**

**A service to automatically start a release train**

codebeat badge

✨ Features

πŸ”¨ Getting started

You will need npm and then you can do npm run start:watch. To run tests you can use jest. You will also need a .env file with the following environment variables:

JIRA_AUTH_TOKEN=
JIRA_USER_NAME=
GITHUB_AUTH_TOKEN=
SLACK_AUTH_TOKEN=

On slack, the app must be able to read reactions and write messages. You can configure many options in the config.json file.

πŸš€ Deploying

SOON

πŸ“– Documentation

You can check the supported endpoints in the swagger page: localhost:3000/swagger

πŸ— Architecture

The idea is to keep it simple with no hard abstractions, but also maintaining flexibility to increase LOC covered. The main components are: Endpoints, UseCases, Workers and Services.

Endpoints

Endpoints are the entry of every request. They exist to keep documented all the supported APIs. They should map 1:1 to a UseCase.

UseCases

UseCases perform the logic of the application. They can have other UseCases as dependencies and also many Workers.

Workers

Workers do only one thing. They can have Services as dependencies.

Services

Services make the bridge of baroneza and external APIs.

Should I create a Worker or a UseCase?

There is no silver bullet and don't waste too much brainpower on this. The rule of thumb used is: