2.3 KiB
Architecture Guide
This guide describes the program architecture.
Contents
Purpose
cautious-journey
exists to manage labels and their workflow.
Label
While cautious-journey
reads issue data, labels are what it cares about.
Flag Label
Flag labels are set individually. While they may depend on or even remove each other, they are not connected directly.
State Label
State labels are set from a group. Only one value from each state may be set at a time, and the highest priority value automatically replaces any others.
State Value
Individual values within the state.
State Changes
State labels may replace one value with another using normal change rules, with the addition of a list of matching labels that must be present for the state change to be resolved.
For example, a state with three values like so:
projects:
- name: foo
flags:
- name: next
states:
- name: status
values:
- name: new
becomes:
- adds: [status/in-progress]
matches: [next]
- name: in-progress
becomes:
- adds: [status/done]
matches: [next]
- name: done
becomes:
- adds: [status/new]
matches: [next]
Each time cautious-journey
evaluates the labels on this project, any issues with the status/new
and next
labels will be promoted to status/in-progress
, and both the status/new
and next
labels will be removed.
Remote
cautious-journey
manipulates issues and labels that exist on some remote service.
Github Remote
Connects to a Github repository.
path
Gitlab Remote
Connects to a Gitlab repository.
path
Sync
Update issue labels or the labels themselves.
Sync Issues
Update issue labels.
Sync Labels
Update project labels.