Skip to content

Repository files navigation

https://img.shields.io/github/tag/d3flex/oqa.svg?style=flat-square https://img.shields.io/github/license/d3flex/oqa.svg?style=flat-square https://img.shields.io/codecov/c/github/d3flex/oqa.svg?style=flat-square https://github.com/d3flex/oqa/actions/workflows/test.yml/badge.svg

oqa: an OpenQA client for Emacs

oqa is a Magit-style front end for OpenQA. It models OpenQA as a drill-down hierarchy — a stack of read-only tabulated-list buffers (groups → builds → jobs → job) — each with a context-sensitive transient menu that acts on the entry at point. The goal is to run daily review tasks from inside Emacs instead of the OpenQA web UI.

Reads use the public OpenQA REST API with no credentials. Only the state-changing actions (restart / clone / trigger) shell out to your installed openqa-cli / openqa-clone-job, which use the credentials in ~/.config/openqa/client.conf.

Getting started

M-x oqa opens the job-groups view of the active instance (o3, openqa.opensuse.org, by default). From there:

  • RET drills into the entry at point (group → builds → jobs → job).
  • u / ^ go back up, q buries the view, g refreshes.
  • o / ? open the context menu (transient) for the current view.

No configuration is required to browse.

What you can do

Browse (no credentials)

Groups → builds → jobs → a single job’s settings and module results.

Filter jobs

In the jobs view, o opens the filter menu. One-key presets reload the list immediately — R running, F failed, S failed+softfailed, P passed, x clear. For anything else, the -s / -r (multi-value state/result) and -a / -f / -m / -t / -d / -v / -n infixes build a custom query applied with RET. The active filters are shown in the header line.

Act on a job (needs openQA-client + credentials)

With a job at point: r restart with the same settings, c clone into an editable KEY=value buffer (C-c C-c submits, C-c C-k cancels), or T trigger a new build (isos). Each confirms first and reports the CLI’s outcome; if the CLI is missing the action is blocked with a message and nothing is submitted.

Switch instances

o3 is the default. O / D switch to o3 / osd, i chooses any instance configured in oqa-instances. Every view and action then targets the active instance.

Workers

w opens the workers list (host:instance / status / worker class); RET shows a worker’s properties.

Logs

l shows a job’s autoinst-log in a read-only buffer (a not-yet-started job reports “log unavailable” rather than erroring). On a worker, l shows its running job’s log if any, otherwise its status/error with a note that OpenQA exposes no worker-log endpoint.

Configuration

  • oqa-instances — alist of instance label → base URL (defaults: o3, osd).
  • oqa-default-instance — the label used when a buffer has none (o3).
  • oqa-jobs-limit — default job page size (100).
  • oqa-request-timeout — HTTP timeout in seconds (30).
  • oqa-cli-program / oqa-clone-program — the external tools used for mutations (openqa-cli / openqa-clone-job).

License

This package is licensed under GPLv3. See LICENSE.

About

Emacs framework for OpenQA

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages