aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Fandrich <danf@mageia.org>2024-03-14 15:18:20 -0700
committerDan Fandrich <danf@mageia.org>2024-03-14 15:21:41 -0700
commitc9c5444f4f27f0a7375088a1cc0b4594742d8fe8 (patch)
treef10eeb9ec9a1c5403a886e4089bdf7c0a0246a88
parentdcfd914210f70323bdb8c8820cc2eed8f83f4f1f (diff)
downloadmgaadvisories-c9c5444f4f27f0a7375088a1cc0b4594742d8fe8.tar
mgaadvisories-c9c5444f4f27f0a7375088a1cc0b4594742d8fe8.tar.gz
mgaadvisories-c9c5444f4f27f0a7375088a1cc0b4594742d8fe8.tar.bz2
mgaadvisories-c9c5444f4f27f0a7375088a1cc0b4594742d8fe8.tar.xz
mgaadvisories-c9c5444f4f27f0a7375088a1cc0b4594742d8fe8.zip
Write JSON index files for advisories
The JSON schema is simple and compatible with the one published in the Go Vulnerability Database. Security advisories and bugfix advisories each have their own index.
-rw-r--r--lib/MGA/Advisories.pm2
-rw-r--r--tmpl/bugs.json10
-rw-r--r--tmpl/vulns.json10
3 files changed, 22 insertions, 0 deletions
diff --git a/lib/MGA/Advisories.pm b/lib/MGA/Advisories.pm
index 8ce3581..08f5c15 100644
--- a/lib/MGA/Advisories.pm
+++ b/lib/MGA/Advisories.pm
@@ -653,6 +653,8 @@ sub output_pages {
};
process_template($template, 'index', $vars, 'index');
process_template($template, 'advisories', $vars, 'advisories');
+ process_template($template, 'vulns', $vars, 'vulns', 'json');
+ process_template($template, 'bugs', $vars, 'bugs', 'json');
process_template($template, 'infos', $vars, 'infos');
process_template($template, 'CVE', $vars, 'CVE');
}
diff --git a/tmpl/bugs.json b/tmpl/bugs.json
new file mode 100644
index 0000000..375e7f7
--- /dev/null
+++ b/tmpl/bugs.json
@@ -0,0 +1,10 @@
+[
+[%- FOR adv IN advdb.sorted -%]
+[% USE advid = String(basename.ID(adv)) -%]
+[% IF advid.search('^MGAA-') -%]
+[%- "," IF gotone %]
+{"id": "[% basename.ID(adv) %]"}
+[%- SET gotone = 1 %]
+[%- END %]
+[%- END %]
+]
diff --git a/tmpl/vulns.json b/tmpl/vulns.json
new file mode 100644
index 0000000..aadcd05
--- /dev/null
+++ b/tmpl/vulns.json
@@ -0,0 +1,10 @@
+[
+[%- FOR adv IN advdb.sorted -%]
+[% USE advid = String(basename.ID(adv)) -%]
+[% IF advid.search('^MGASA-') -%]
+[%- "," IF gotone %]
+{"id": "[% basename.ID(adv) %]"}
+[%- SET gotone = 1 %]
+[%- END %]
+[%- END %]
+]