Skip to content

Proposal for allowing @rust-log-analyzer silence to mute failures #73

Closed
@tgross35

Description

@tgross35

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, upsert silence_all for that PR's ID
    • If it contains silence and some specific tests, update silence_all=false and those add those tests to a list in silenced
    • If it contains unsilence, do the opposite and delete the row if empty
  • 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions