Store lint warnings in the database
This commit adds the relevant tables and code to store lint warnings in the database. Currently, only lint checkers which don't require access to the network will be run, as this allows the processing to happen without network access. Also, this functionality won't work in older versions of Guix which don't expose the lint warnings in a compatible way.
This commit is contained in:
parent
bf469504eb
commit
6b9977f62e
11 changed files with 487 additions and 48 deletions
41
sqitch/deploy/lint_warnings.sql
Normal file
41
sqitch/deploy/lint_warnings.sql
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
-- Deploy guix-data-service:lint_warnings to pg
|
||||
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE lint_checkers (
|
||||
id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
name varchar NOT NULL,
|
||||
description varchar NOT NULL,
|
||||
network_dependent boolean NOT NULL,
|
||||
UNIQUE (name, description, network_dependent)
|
||||
);
|
||||
|
||||
CREATE TABLE lint_warning_messages (
|
||||
id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
locale varchar NOT NULL,
|
||||
message varchar NOT NULL,
|
||||
UNIQUE (locale, message)
|
||||
);
|
||||
|
||||
CREATE TABLE lint_warning_message_sets (
|
||||
id integer NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
message_ids integer[] NOT NULL,
|
||||
UNIQUE (message_ids)
|
||||
);
|
||||
|
||||
CREATE TABLE lint_warnings (
|
||||
id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
lint_checker_id integer NOT NULL,
|
||||
package_id integer NOT NULL REFERENCES packages (id),
|
||||
location_id integer NOT NULL REFERENCES locations (id),
|
||||
lint_warning_message_set_id integer NOT NULL REFERENCES lint_warning_message_sets (id),
|
||||
UNIQUE (lint_checker_id, package_id, location_id, lint_warning_message_set_id)
|
||||
);
|
||||
|
||||
CREATE TABLE guix_revision_lint_warnings (
|
||||
lint_warning_id integer NOT NULL REFERENCES lint_warnings (id),
|
||||
guix_revision_id integer NOT NULL REFERENCES guix_revisions (id),
|
||||
PRIMARY KEY (lint_warning_id, guix_revision_id)
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
Loading…
Add table
Add a link
Reference in a new issue