Settings
Everything you would want to change is in one file, qoffee/settings.py.
It is a block of commented constants. There is no YAML, no JSON, and no config service.
The file has a line in it marked as the end of the user settings. Keeping your edits above that line means you can pull updates without merge conflicts.
The five settings
| Setting | Default | What it does |
|---|---|---|
RESOLVED_TAG | "qoffeed" | The tag applied when tracking stops. Set it to "" to delete Qoffee's tags outright instead of leaving a trail. |
CHANNELS | "discord" | Which channels are active, comma separated, in priority order. See channels. |
REQUIRED_CHANNELS | first channel | Which channels must confirm delivery before any tag changes. Blank means the first entry in CHANNELS. |
FAILURE_AUTOCLEAR_HOURS | 0 | Hours after which a held failure is released even if the batch never went quiet. Zero disables it. A release by this route is silent. |
REDACT_LOGS | True | Replace job IDs and instance CRNs in the Actions log with short hashes. See what the public log shows. |
All except RESOLVED_TAG can also be set by an environment variable of the same name, which is how the workflow injects them if you would rather not edit the file.
On the two defaults worth explaining
REDACT_LOGS is on.
This repository is meant to be public, which means its Actions run logs are readable by anyone.
The full IDs are already in your notification, where only you can see them, so leaving redaction on costs you nothing.
Turn it off only if you are debugging in a private fork.
FAILURE_AUTOCLEAR_HOURS is off.
Failures normally clear themselves once the batch goes quiet, which for most people happens the same day.
The setting only matters if you submit work continuously so that no run ever finds the batch idle.
Turning it on when you do not need it means a failure can be released before you have looked at it.
What is not configurable
TRACKING_TAG, MAX_TAGS_PER_JOB, MAX_TAG_LENGTH, NAME_TAG_PREFIX and STATE_SEPARATOR are below the line and should be left alone.
The tag length in particular is load bearing.
The reason is on the two tags.
Checking a change before it runs
python -m qoffee --check-config
This validates every setting and every credential and then exits, without contacting IBM. A misconfiguration costs a fast red run rather than a slow one that does the work and then finds it cannot report the result.
The parsing and validation is in qoffee/config.py, which resolves everything once at startup and never looks again.