Closed
Description
It would be nice to be able to make RLA a bit less annoying when you're actively watching your PR and know it is going to fail.
Proposed usage:
silence all announcements:
@rust-log-analyzer silence silence
silence a announcements about a single test:
@rust-log-analyzer silence mingw-check
silence multiple:
@rust-log-analyzer silence mingw-check, mingw-test-tidy
unsilence takes the same patterns as above:
@rust-log-analyzer silence
It seems like RLA is currently stateless. Doing this would require saving some information, but changes to this would be infrequent enough that a sqlite database could handle it easily;
CREATE TABLE silenced (
pr_id INTEGER PRIMARY KEY,
silence_all INTEGER NOT NULL DEFAULT FALSE,
-- JSON array of specific silenced tests
silenced TEXT
);
Behavior:
- Accept the
issue_comment
webhook event.- If it contains
silence
but nothing else, upsertsilence_all
for that PR's ID - If it contains
silence
and some specific tests, updatesilence_all=false
and those add those tests to a list insilenced
- If it contains
unsilence
, do the opposite and delete the row if empty
- If it contains
- Upon writing a comment, compare the failed test to the silencing rules and don't publish it if that test is silenced
I don't mind doing the work for this, but would appreciate some feedback before starting to make sure this sounds OK.
Metadata
Metadata
Assignees
Labels
No labels