Is it working?

No message means nothing changed.

Qoffee only speaks when a tracked job moves between states. If your jobs are sitting in a queue, the correct behaviour is silence, and it can be silent for hours. So the absence of messages is not evidence that anything is wrong.

That is not very satisfying when you are the one waiting, so here are three ways to check, in order of effort.

Look at the Actions tab

Open your fork, go to Actions, and look at Qoffee Watcher. You should see runs appearing, each with a green tick.

A green run that sent nothing is a working run. Open it and the log will say either nothing tagged; no work to do or no state changes; staying quiet. Both of those are Qoffee doing its job.

A red run means something specific went wrong, and the exit code says which. See when things break.

Trigger a run yourself

In the Actions tab, choose Qoffee Watcher and press Run workflow. Manual runs start immediately, with none of the schedule delay.

This works from the GitHub mobile app as well, which means you can check on a job from your phone without opening a laptop.

If you want to see what it would say without sending anything or changing any tags, set the dry run input to true. The decisions and the message contents are written to the log instead.

Run it locally

If you have the repository checked out and your credentials in the environment:

python -m qoffee --check-config   # validates settings, contacts nothing
python -m qoffee --dry-run        # fetches and decides, changes nothing
python -m qoffee --verbose        # same as a normal run, with debug logging

--check-config is the fastest way to find a typo in a secret name, because it fails before IBM is contacted at all.

Nothing arrived and you expected something

Work down this list. It is ordered by how often each one is the answer.

  1. Check the tag is exactly qoffee. Lowercase, no spaces, no trailing characters. Discovery is an exact match, so Qoffee or qoffee is invisible.
  2. Check the job actually changed state. If it was queued last time you were told and is queued now, there is nothing to report.
  3. Check Actions is enabled on your fork. GitHub disables it on new forks until you switch it on once.
  4. Check the three secret names. IBM_TOKEN, IBM_CRN, DISCORD_WEBHOOK. A misspelled name reads as empty, and the run exits with code 1.
  5. Check the webhook still exists. Deleting a Discord channel deletes its webhooks. The run will be red with code 3.

Two things that look wrong and are not

An empty commit called chore: keepalive. GitHub silently disables scheduled workflows after 60 days without commit activity, and that also disables manual dispatch until you turn it back on. The workflow pushes an empty commit every 45 days to prevent that. It changes no files.

Job IDs in the log that do not match your job IDs. The Actions log on a public repository is readable by anyone, so job IDs and instance CRNs are replaced with short hashes like job#3beed3 before anything is written. The full IDs are in your notification, which only you can see. See what the public log shows.

If you have been through all of that and it still looks wrong, open an issue on the repository with the run log attached. Redaction is on by default, so the log is safe to paste.